OAuth协议简介

转载 2012年03月21日 16:44:16
 
维基百科,自由的百科全书
跳转到: 导航, 搜索
OAuth的标志

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

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

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

目录

 [隐藏

[编辑] 认证和授权过程

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

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

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

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

[编辑] OAuth 2.0

OAuth 2.0是OAuth协议的下一版本,但不向后兼容OAuth 1.0。 OAuth 2.0关注客户端开发者的简易性,同时为Web应用,桌面应用和手机,和起居室设备提供专门的认证流程。规范还在IETF OAuth工作组的开发中[2] ,按照Eran Hammer-Lahav的说法,OAuth将于2010年末完成[3]

Facebook的新的Graph API只支持OAuth 2.0[4],Google在2011年3月亦宣布Google API对OAuth 2.0的支援[5],Windows Live 亦支援 OAuth 2.0[6]

OAUTH协议简介 .

form:http://blog.csdn.net/hereweare2009/article/details/3968582 摘要:OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准...
  • huangleijay
  • huangleijay
  • 2013年09月11日 16:00
  • 333

OAUTH协议简介

OAUTH认证,跨网站认证,登陆
  • wyqlxy
  • wyqlxy
  • 2011年03月09日 16:50
  • 629

OAUTH协议简介

摘要:OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密...
  • woshishuoshuoa
  • woshishuoshuoa
  • 2013年08月26日 23:35
  • 343

Oauth认证协议原理分析及使用方法

Oauth认证协议原理分析及使用方法
  • xiaojianpitt
  • xiaojianpitt
  • 2011年05月14日 21:56
  • 6617

OAuth 协议简介

OAUTH协议简介                分类:            Open API2009-03-08 12:0057784人阅读评论(60)收藏举报 tokenauthoriz...
  • luyaran
  • luyaran
  • 2016年12月30日 16:39
  • 75

关于OAuth协议

今天了解了一下什么是OAuth协议,开了一下眼界,下面这个图可以很好地概括整个过程: 来源:http://www.tuicool.com/articles/qqeuE3,感觉这上面讲得也比较...
  • shenzhonglaoxu
  • shenzhonglaoxu
  • 2014年01月08日 23:15
  • 734

OAuth2.0协议 - OAuth授权流程详解

三个重要步骤 1、慕课网向腾讯QQ OAuth请求OAuth登录页 2、用户在这个页面中输入QQ号和密码 3、最后腾讯QQ OAuth把登录结果返回给慕课网步骤一:请求OAuth登陆页Reque...
  • github_26672553
  • github_26672553
  • 2017年02月20日 21:10
  • 3352

OAuth协议

目前很多开放平台如新浪微博开放平台都在使用提供开放API接口供开发者使用,随之带来了第三方应用要到开放平台进行授权的问题,OAuth就是干这个的,OAuth2是OAuth协议的下一个版本,相比OAut...
  • Ethan_Fu
  • Ethan_Fu
  • 2015年05月29日 11:11
  • 1216

php第三方登录 Oauth2.0协议

OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。 允许用户提供一个令牌,而不是用...
  • ghostyusheng
  • ghostyusheng
  • 2016年03月19日 20:12
  • 1073

微信OAuth总结

当用户从微信中打开网页时,基于微信提供的OAuth机制,可以获取到当前用户的基本信息,如昵称,头像等。这一能力是现在很多基于微信传播的网页的基础。本文总结这方面的一些心得技巧...
  • kyfxbl
  • kyfxbl
  • 2015年08月19日 21:02
  • 836
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OAuth协议简介
举报原因:
原因补充:

(最多只允许输入30个字)