OpenID 和 OAuth 的区别

2022-08-03 14:54:29 浏览数 (1)

OpenID是Authentication(认证) OAuth是Authorization(授权)

对比

OpenID

  1. 用户希望访问其在example.com的账户。
  2. example.com (在OpenID的黑话里面被称为“Relying Party”) 提示用户输入他/她/它的OpenID。
  3. 用户给出了他的OpenID,比如说 http://user.myopenid.com
  4. example.com 跳转到了用户的OpenID提供商 mypopenid.com,example.commyopenid.com请求凭证)
  5. 用户在myopenid.com(OpenID provider)提示的界面上输入用户名密码登录,(myopenid.com验证用户身份)
  6. "myopenid.com" (OpenID provider) 问用户是否要登录到example.com,(向用户确认是否向example.com提供凭证)
  7. 用户同意后,myopenid.com (OpenID provider) 跳转回example.com,(example.com验证myopenid.com的凭证)
  8. example.com 允许用户访问其帐号。

OAuth

  1. 用户在使用example.com时希望从mycontacts.com导入他的联系人。
  2. example.com (在OAuth的黑话里面叫“Consumer”)把用户送往mycontacts.com (黑话是“Service Provider”),(向mycontact.com发送授权请求)
  3. 用户在mycontacts.com 登录(可能也可能不用他的OpenID),(验证用户身份)
  4. mycontacts.com问用户是不是希望授权example.com访问他在mycontact.com的联系人,(mycontact.com向用户确认是否授权)
  5. 用户确定,(用户确认授权)
  6. mycontacts.com 把用户送回example.com ,(mycontacts.com向example.com授权)
  7. example.com 从mycontacts.com拿到联系人,(通常,拿到用户信息就意味着证明了用户身份)
  8. example.com 告诉用户导入成功。

总结

认证不一定授权,但授权必然包含了认证。

0 人点赞