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 告诉用户导入成功
认证不一定授权,但授权必然包含了认证。
转载请注明:旅途@KryptosX » OpenID 和 OAuth 的区别