Authentication 什么';OpenID和OAuth的区别是什么?

Authentication 什么';OpenID和OAuth的区别是什么?,authentication,oauth,openid,Authentication,Oauth,Openid,我真的想了解OpenID和OAuth之间的区别?也许它们是两个完全不同的东西?OpenID(主要)用于识别/认证,因此stackoverflow.com知道我拥有chris.boyle.name(或其他任何地方),因此我可能就是昨天拥有chris.boyle.name并获得一些声誉积分的同一个人 OAuth是为授权您代表您采取行动而设计的,因此,stackoverflow.com(或任何地方)可以在不知道您的Twitter密码的情况下请求权限,例如,自动为您发送Tweet。是关于身份验证(即证明

我真的想了解OpenID和OAuth之间的区别?也许它们是两个完全不同的东西?

OpenID(主要)用于识别/认证,因此
stackoverflow.com
知道我拥有
chris.boyle.name
(或其他任何地方),因此我可能就是昨天拥有
chris.boyle.name
并获得一些声誉积分的同一个人

OAuth是为授权您代表您采取行动而设计的,因此,
stackoverflow.com
(或任何地方)可以在不知道您的Twitter密码的情况下请求权限,例如,自动为您发送Tweet。

是关于身份验证(即证明您是谁),是关于授权(即授予对功能/数据等的访问权,而无需处理原始身份验证)

OAuth可用于外部合作伙伴站点,以允许访问受保护的数据,而无需对用户重新进行身份验证


博客文章“”从用户的角度对两者进行了简单的比较,“”提供了更多信息。

OAuth

仅用于委托的
授权
——意味着您正在授权第三方服务访问使用个人数据,而无需提供密码。此外,OAuth“会话”通常比用户会话寿命更长。这意味着OAuth旨在允许授权

i、 e.Flickr使用OAuth允许第三方服务代表他们发布和编辑个人图片,而无需他们给出闪烁的用户名和密码

OpenID

用于验证单点登录身份。OpenID所要做的就是允许OpenID提供商证明您所说的是。然而,许多网站使用身份验证来提供授权(但两者可以分开)


i、 e.在机场出示护照进行身份验证(或证明)他们使用的票据上的姓名就是他们。

OpenID和OAuth都是用于身份验证和/或授权的基于HTTP的协议。这两种协议都旨在允许用户执行操作,而无需向客户端或第三方提供身份验证凭据或全面权限。虽然它们相似,但有为了将两者结合使用,它们是独立的协议

OpenID用于联邦身份验证。客户端接受来自任何提供者的身份断言(尽管客户端可以自由访问白名单或黑名单提供者)

OAuth用于委托授权。客户端向提供者注册,提供者提供授权令牌,它将接受这些令牌以代表用户执行操作


OAuth目前更适合用于授权,因为认证后的进一步交互被内置到协议中,但这两个协议都在不断发展。OpenID及其扩展可用于授权,OAuth可用于认证,这可以被认为是无操作授权。

更多的是对问题比答案更重要,但它可能会为上述伟大的技术答案增加一些视角。我在许多领域都是一名经验丰富的程序员,但完全不擅长为web编程。现在,我正在尝试使用Zend Framework构建一个基于web的应用程序

肯定会实现一个特定于应用程序的基本用户名/密码认证界面,但要认识到,对于越来越多的用户来说,想到另一个用户名和密码是一种威慑。虽然不完全是社交网络,但我知道,该应用程序的潜在用户中有很大一部分已经拥有facebook或twitter帐户。应用程序并不真正希望或需要从这些站点访问有关用户帐户的信息,它只是想提供方便,如果用户不想,它不需要用户设置新的帐户凭据。从功能的角度来看,这似乎是OpenID的海报子项。但它似乎不是尽管facebook和twitter都支持OAuth身份验证来访问用户数据,但它们本身都不是OpenID提供商

在我读过的所有关于这两个方面以及它们的区别的文章中,直到我看到上面Karl Anderson的观察,“OAuth可以用于身份验证,这可以被认为是不可操作的授权”,我才看到任何明确的确认,即OAuth对于我想要做的事情来说已经足够好了

事实上,当我发布这个“答案”时,当时我不是会员,我在这页的底部仔细地看了很久,看了看身份识别的选项。使用OpenID登录或者如果我没有的话获取一个,但是关于twitter或facebook的任何内容都没有,这似乎表明OAuth不适合这份工作。但后来我打开了另一个窗口,寻找stackoverflow的一般注册过程——瞧,有很多第三方身份验证选项,包括facebook和twitter。最后我决定使用我的google id(这是一个OpenID)正是因为这个原因,我不想授予stackoverflow访问我的好友列表和facebook喜欢分享的关于其用户的任何其他内容的权限——但至少这是一个证据,证明OAuth对于我心目中的使用是足够的

如果有人可以发布信息或指向支持这种多第三方授权设置的信息,以及如何处理撤销授权或无法访问其第三方网站的用户,那将非常棒。我还得到这样的印象,我的用户名在这里标识了一个唯一的stackoverflow帐户,我可以如果我想设置基本身份验证,请使用基本身份验证进行访问,并通过其他第三方身份验证程序访问同一帐户(例如,如果我