深入理解OAuth2.0.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
深入理解OAuth2.0

帮你深入理解OAuth2.0协议1.?引言如果你开车去酒店赴宴,你经常会苦于找不到停车位而耽误很多时间。是否有好办法可以避免这个问题呢?有的,听说有一些豪车的车主就不担心这个问题。豪车一般配备两种钥匙:主钥匙和泊车钥匙。当你到酒店后,只需要将泊车钥匙交给服务生,停车的事情就由服务生去处理。与主钥匙相比,这种泊车钥匙的使用功能是受限制的:它只能启动发动机并让车行驶一段有限的距离,可以锁车,但无法打开后备箱,无法使用车内其他设备。这里就体现了一种简单的“开放授权”思想:通过一把泊车钥匙,车主便能将汽车的部分使用功能(如启动发动机、行驶一段有限的距离)授权给服务生。授权是一个古老的概念,它是一个多用户系统必须支持的功能特性。比如,Alice和Bob都是Google的用户,那么Alice应该可以将自己的照片授权给Bob访问。但请注意到,这种授权是一种封闭授权,它只支持系统内部用户之间的相互授权,而不能支持与其他外部系统或用户之间的授权。比如说,Alice想使用“网易印像服务”将她的部分照片冲印出来,她怎么能做到呢?肯定有人会说,Alice可以将自己的Google用户名和密码告诉网易印像服务,事情不就解决了吗?是的,但只有毫不关注安全和隐私的同学才会出此“绝招”。那么我们就来想一想,这一“绝招”存在哪些问题?(1)?网易印像服务可能会缓存Alice的用户名和密码,而且可能没有加密保护。它一旦遭到攻击,Alice就会躺着中枪。(2)?网易印像服务可以访问Alice在Google上的所有资源,Alice无法对他们进行最小的权限控制,比如只允许访问某一张照片,1小时内访问有效。(3)?Alice无法撤消她的单个授权,除非Alice更新密码。在以Web服务为核心的云计算时代,像用户Alice的这种授权需求变得日益迫切与兴盛,“开放授权(Open?Authorization)”也正因此而生,意在帮助Alice将她的资源授权给第三方应用,支持细粒度的权限控制,并且不会泄漏Alice的密码或其它认证凭据。根据应用场景的不同,目前实现开放授权的方法分为两种:一种是使用OAuth协议[1];另一种是使用IAM服务[2]。OAuth协议主要适用于针对个人用户对资源的开放授权,比如Google的用户Alice。OAuth的特点是“现场授权”或“在线授权”:客户端主要通过浏览器去访问资源,授权时需要认证Alice的资源所有者身份,并且需要Alice现场审批。OAuth一般在SNS服务中广泛使用,如微博。IAM服务则不同,它的特点是“预先授权”或“离线授权”:客户端主要通过REST?API方式去访问资源,资源所有者可以预先知道第三方应用所需要的资源请求,一次授权之后,很少会变更。IAM服务一般在云计算服务中使用,如AWS服务、阿里云计算服务。本文主要介绍OAuth开放授权。关于以IAM服务提供的开放授权,我将在另一篇博文中介绍。下面我来介绍OAuth?2.0协议、协议的实例化描述、安全性分析。2.?OAuth?2.0?协议OAuth?2.0?是目前比较流行的做法,它率先被Google,?Yahoo,?Microsoft,?Facebook等使用。之所以标注为?2.0,是因为最初有一个1.0协议,但这个1.0协议被弄得太复杂,易用性差,所以没有得到普及。2.0是一个新的设计,协议简单清晰,但它并不兼容1.0,可以说与1.0没什么关系。所以,我就只介绍2.0。2.1?协议的参与者从引言部分的描述我们可以看出,OAuth的参与实体至少有如下三个:·?RO?(resource?owner):?资源所有者,对资源具有授权能力的人。如上文中的用户Alice。·?RS?(resource?server):?资源服务器,它存储资源,并处理对资源的访问请求。如Google资源服务器,它所保管的资源就是用户Alice的照片。·?Client:?第三方应用,它获得RO的授权后便可以去访问RO的资源。如网易印像服务。此外,为了支持开放授权功能以及更好地描述开放授权协议,OAuth引入了第四个参与实体:·?AS?(authorization?server):?授权服务器,它认证RO的身份,为RO提供授权审批流程,并最终颁发授权令牌(Access?Token)。读者请注意,为了便于协议的描述,这里只是在逻辑上把AS与RS区分开来;在物理上,AS与RS的功能可以由同一个服务器来提供服务。2.2?授权类型在开放授权中,第三方应用(Client)可能是一个Web站点,也可能是在浏览器中运行的一段JavaScript代码,还可能是安装在本地的一个应用程序。这些第三方应用都有各自的安全特性。对于Web站点来说,它与RO浏览器是分离的,它可以自己保存协议中的敏感数据,这些密钥可以不暴露给RO;对于Ja

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档