OAuth关注的是authorization;而OpenID侧重的是authentication。从表面上看,这两个英文单词很容易混淆,但实际上,它们的含义有本质的区别:ide
- authorization: n. 受权,承认;批准,委任
- authentication: n. 证实;鉴定;证明
OAuth关注的是受权,即:“用户能作什么”;而OpenID关注的是证实,即:“用户是谁”。下面就分别来讲二者的功能。网站
OpenIDurl
- 用户但愿访问其在example.com的帐户
- example.com (在OpenID的黑话里面被称为“Relying Party”) 提示用户输入他/她/它的OpenID
- 用户给出了他的OpenID,好比说”http://user.myopenid.com”
- example.com 跳转到了用户的OpenID提供商“mypopenid.com”
- 用户在”myopenid.com”(OpenID provider)提示的界面上输入用户名密码登陆
- “myopenid.com” (OpenID provider) 问用户是否要登陆到example.com
- 用户赞成后,”myopenid.com” (OpenID provider) 跳转回example.com
- example.com 容许用户访问其账号
OAuth插件
- 用户在使用example.com时但愿从mycontacts.com导入他的联系人
- example.com (在OAuth的黑话里面叫“Consumer”)把用户送往mycontacts.com (黑话是“Service Provider”)
- 用户在mycontacts.com 登陆(可能也可能不用了他的OpenID)
- mycontacts.com问用户是否是但愿受权example.com访问他在mycontact.com的联系人
- 用户肯定
- mycontacts.com 把用户送回example.com
- example.com 从mycontacts.com拿到联系人
- example.com 告诉用户导入成功
OpenID是用来验证的,就是说能够用一个url来惟一代表身份(不用挨个记每一个网站的用户密码)。OAuth是用来受权的(俺能够受权一个网站访问俺在另一个网站的数据,而俺不用把俺的密码给第一个网站。blog
不少人如今错误的把OAuth当作OpenID使用。可是其实也不会照成什么影响。如水煮鱼开发的WordPress插件:开发

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