OpenID是Authentication(认证) OAuth是Authorization(授权)
对比
OpenID
- 用户希望访问其在
example.com
的账户。 example.com
(在OpenID的黑话里面被称为“Relying Party”) 提示用户输入他/她/它的OpenID。- 用户给出了他的OpenID,比如说
http://user.myopenid.com
。 example.com
跳转到了用户的OpenID提供商mypopenid.com
,(example.com
向myopenid.com
请求凭证)。- 用户在
myopenid.com
(OpenID provider)提示的界面上输入用户名密码登录,(myopenid.com验证用户身份)。 - "myopenid.com" (OpenID provider) 问用户是否要登录到
example.com
,(向用户确认是否向example.com提供凭证)。 - 用户同意后,
myopenid.com
(OpenID provider) 跳转回example.com
,(example.com验证myopenid.com的凭证)。 example.com
允许用户访问其帐号。
OAuth
- 用户在使用
example.com
时希望从mycontacts.com
导入他的联系人。 - example.com (在OAuth的黑话里面叫“Consumer”)把用户送往
mycontacts.com
(黑话是“Service Provider”),(向mycontact.com
发送授权请求)。 - 用户在
mycontacts.com
登录(可能也可能不用他的OpenID),(验证用户身份)。 mycontacts.com
问用户是不是希望授权example.com
访问他在mycontact.com
的联系人,(mycontact.com
向用户确认是否授权)。- 用户确定,(用户确认授权)。
mycontacts.com
把用户送回example.com
,(mycontacts.com向example.com授权)。example.com
从mycontacts.com拿到联系人,(通常,拿到用户信息就意味着证明了用户身份)。example.com
告诉用户导入成功。
总结
认证不一定授权,但授权必然包含了认证。