OAuth和OpenID的区别

OAuth关注的是authorization;而OpenID侧重的是authentication。从表面上看,这两个英文单词很容易混淆,但实际上,它们的含义有本质的区别:ide

  • authorization: n. 受权,承认;批准,委任
  • authentication: n. 证实;鉴定;证明

OAuth关注的是受权,即:“用户能作什么”;而OpenID关注的是证实,即:“用户是谁”。下面就分别来讲二者的功能。网站

OpenIDurl

  1. 用户但愿访问其在example.com的帐户
  2. example.com (在OpenID的黑话里面被称为“Relying Party”) 提示用户输入他/她/它的OpenID
  3. 用户给出了他的OpenID,好比说”http://user.myopenid.com”
  4. example.com 跳转到了用户的OpenID提供商“mypopenid.com”
  5. 用户在”myopenid.com”(OpenID provider)提示的界面上输入用户名密码登陆
  6. “myopenid.com” (OpenID provider) 问用户是否要登陆到example.com
  7. 用户赞成后,”myopenid.com” (OpenID provider) 跳转回example.com
  8. example.com 容许用户访问其账号

OAuth插件

  1. 用户在使用example.com时但愿从mycontacts.com导入他的联系人
  2. example.com (在OAuth的黑话里面叫“Consumer”)把用户送往mycontacts.com (黑话是“Service Provider”)
  3. 用户在mycontacts.com 登陆(可能也可能不用了他的OpenID)
  4. mycontacts.com问用户是否是但愿受权example.com访问他在mycontact.com的联系人
  5. 用户肯定
  6. mycontacts.com 把用户送回example.com
  7. example.com 从mycontacts.com拿到联系人
  8. example.com 告诉用户导入成功

OpenID是用来验证的,就是说能够用一个url来惟一代表身份(不用挨个记每一个网站的用户密码)。OAuth是用来受权的(俺能够受权一个网站访问俺在另一个网站的数据,而俺不用把俺的密码给第一个网站。blog

不少人如今错误的把OAuth当作OpenID使用。可是其实也不会照成什么影响。如水煮鱼开发的WordPress插件:开发

WordPress的评论只要求身份认证便可,无需权限认证。it

相关文章
相关标签/搜索