OAuth协议致力于使网站和应用程序(统称为消费方)能够在无须用户透露其认证证书的情况下,通过API访问某个web服务(统称为服务提供方)的受保护资源。更一般地说,OAuth为API认证提供了一个可自由实现且通用的方法。
一个典型的例子是某打印服务提供商printer.example.com(消费方),希望在无须用户提供其照片存储站点密码的情况下,访问用户储存在photos.example.net(服务提供方)上的个人照片。很像linux里的sudo,在某些时候root只要赋予普通用户适当的权利,就可完成需要root权限才能做的某项特定工作而不需要告诉其root密码:)
国内的
douban.com的api就是使用的该认证。OAuth入门指南:
http://menglimengwai.javaeye.com/blog/496300
OAuth协议:
1.0 (或)
以下来自
===========================
这篇文章不错,通过两个用例解释了OpenID和OAuth的区别:
先来OpenID的
- 用户希望访问其在example.com的账户
- example.com (在OpenID的黑话里面被称为“Relying Party”) 提示用户输入他/她/它的OpenID
- 用户给出了他的OpenID,比如说""
- 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是用
来授权的(俺可以授权一个网站访问俺在另外一个网站的数据,而俺不用把俺的密码给第一个网站。想想现在开心网让你通过msn联系人导入好有时候干的事儿
吧,反正俺不愿意把俺的msn密码给开心网)
I hope this helps to keep apart those two standards :) 这句就不翻译了。
阅读(2442) | 评论(0) | 转发(0) |