IT技术及科技前沿

中文IT博客,为IT专业技术人员提供最全面的信息传播和服务

首页 新随笔 订阅 管理

OAuth (Open Authorization) is an open standard for authorization. It allows users to share their private resources (e.g. photos, videos, contact lists) stored on one site with another site without having to hand out their credentials, typically username and password.

OAuth allows users to hand out tokens instead of credentials to their data hosted by a given service provider. Each token grants access to a specific site (e.g. a video editing site) for specific resources (e.g. just videos from a specific album) and for a defined duration (e.g. the next 2 hours). This allows a user to grant a third party site access to their information stored with another service provider, without sharing their access permissions or the full extent of their data.

OAuth is a service that is complementary to, but distinct from, OpenID.

OAuth (开放授权) 是一个开放标准,允许用户让第三方网站访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方网站。

OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。这样,OAuth允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要分享他们的访问许可或他们数据的所有内容。

OAuth是OpenID的一个补充,但是完全不同的服务。

在认证和授权的过程中涉及的三方包括:

  • 服务提供方,用户使用服务提供方来存储受保护的资源,如照片,视频,联系人列表。
  • 用户,存放在服务提供方的受保护的资源的拥有者
  • 客户端,要访问服务提供方资源的第三方应用,通常是网站,如提供照片打印服务的网站。在认证过程之前,客户端要向服务提供者申请客户端标识。

使用OAuth进行认证和授权的过程如下所示:

  1. 用户访问客户端的网站,想操作用户存放在服务提供方的资源。
  2. 客户端服务提供方请求一个临时令牌。
  3. 服务提供方验证客户端的身份后,授予一个临时令牌。
  4. 客户端获得临时令牌后,将用户引导至服务提供方的授权页面请求用户授权。在这个过程中将临时令牌和客户端的回调连接发送给服务提供方
  5. 用户服务提供方的网页上输入用户名和密码,然后授权该客户端访问所请求的资源。
  6. 授权成功后,服务提供方引导用户返回客户端的网页。
  7. 客户端根据临时令牌从服务提供方那里获取访问令牌。
  8. 服务提供方根据临时令牌和用户的授权情况授予客户端访问令牌。
  9. 客户端使用获取的访问令牌访问存放在服务提供方上的受保护的资源。

OAuth开始于2006年11月,当时布莱恩·库克Blaine Cook)正在开发TwitterOpenID实现。与此同时,Ma.gnolia需要一个解决方案允许使用OpenID的成员授权Dashboard访问他们的服务。这样库克、克里斯·梅西纳Chris Messina)和来自Ma.gnolia的拉里·哈尔夫(Larry Halff)与戴维·雷科尔顿(David Recordon)会面讨论在Twitter和Ma.gnolia API上使用OpenID进行委托授权。 他们讨论得出没有开发标准完成API访问的委托。

2007年4月,成立了OAuth讨论组,这个由实现者组成的小组撰写了一个开放协议的提议草案。来自Google德维特·克林顿(DeWitt Clinton)获悉OAuth项目后,表示他有兴趣支持这个工作。2007年7月,团队起草了最初的规范。随后,Eran Hammer-Lahav加入团队并协调了许多OAuth的稿件,创建了更为正式的规范。2007年10月3日, OAuth核心 1.0最后的草案发布了。

2008年11月,在明尼阿波利斯举行的互联网工程任务组第73次会议上, 举行了OAuth的BoF[1]讨论将该协议纳入IETF做进一步的规范化工作。 这个会议参加的人很多,关于正式地授权在IETF设立一个OAuth工作组这一议题得到了广泛的支持。

2010年4月,OAuth 1.0协议发表为RFC 5849,一个非正式RFC

posted on 2011-02-18 14:13  孟和2012  阅读(351)  评论(0编辑  收藏  举报