OAuth介绍

来源:互联网 发布:淘宝店铺头像图片免费 编辑:程序博客网 时间:2024/04/30 21:22
OAuth (开放授权) 是一个开放标准,允许用户让第三方网站访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方网站。

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

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


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

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


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

  • 用户访问客户端的网站,想操作用户存放在服务提供方的资源。
  • 客户端向服务提供方请求一个临时令牌。
  • 服务提供方验证客户端的身份后,授予一个临时令牌。
  • 客户端获得临时令牌后,将用户引导至服务提供方的授权页面请求用户授权。在这个过程中将临时令牌和客户端的回调连接发送给服务提供方。
  • 用户在服务提供方的网页上输入用户名和密码,然后授权该客户端访问所请求的资源。
  • 授权成功后,服务提供方引导用户返回客户端的网页。
  • 客户端根据临时令牌从服务提供方那里获取访问令牌。
  • 服务提供方根据临时令牌和用户的授权情况授予客户端访问令牌。
  • 客户端使用获取的访问令牌访问存放在服务提供方上的受保护的资源。
目前采用OAuth的API
  • Facebook的新的Graph API只支持OAuth 2.0,是这一新兴标准的最大实现:http://developers.facebook.com/docs/reference/api/(Facebook SDK for Android 协同 Facebook Platform 一起,隐藏了 OAuth 身份认证的复杂性:Facebook API 简介)
  • Twitter API Wiki:http://apiwiki.twitter.com/w/browse/#view=ViewFolder&param=OAuth
  • 新浪微博API:http://open.t.sina.com.cn/wiki/index.php/OAuth
  • 豆瓣API:http://www.douban.com/service/apidoc/auth
  • 目前有6个Google Apps API支持OAuth登录机制:
Provisioning API
Email Migration API
Admin Settings API
Calendar Resource API
Email Settings API
Audit API

转自:http://www.cnblogs.com/wangkewei/archive/2011/01/14/1935849.html

0 0
原创粉丝点击