OAuth 安全协docx - Google Code.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
OAuth 安全协docx - Google Code

OAuth 简介 OAuth 是由 Blaine Cook、Chris Messina、Larry Halff 及 David Recordon 共同发起的,目的在于为 API 访问授权提供一个安全、开放的标准。 基于 OAuth 认证授权具有以下特点: ? 安全。OAuth 与别的授权方式不同之处在于:OAuth 的授权不会使消费方(Consumer)触及到用户的帐号信息(如用户名与密码),也是是说,消费方无需使用用户的用户名与密码就可以申请获得该用户资源的授权。 ? 开放。任何消费方都可以使用 OAuth 认证服务,任何服务提供方 (Service Provider) 都可以实现自身的 OAuth 认证服务。 ? 简单。不管是消费方还是服务提供方,都很容易于理解与使用。 OAuth 的解决方案如下图所示。 图 1. OAuth Solution ? 如图 1 所示 OAuth 解决方案中用户、消费方及其服务提供方之间的三角关系:当用户需要 Consumer 为其提供某种服务时,该服务涉及到需要从服务提供方那里获取该用户的保护资源。OAuth 保证:只有在用户显式授权的情况下(步骤 4),消费方才可以获取该用户的资源,并用来服务于该用户。 从宏观层次来看,OAuth 按以下方式工作: 1. 消费方与不同的服务提供方建立了关系。 2. 消费方共享一个密码短语或者是公钥给服务提供方,服务提供方使用该公钥来确认消费方的身份。 3. 消费方根据服务提供方将用户重定向到登录页面。 4. 该用户登录后告诉服务提供方该消费方访问他的保护资源是没问题的。 回页首 OAuth 认证授权流程 在了解 OAuth 认证流程之前,我们先来了解一下 OAuth 协议的一些基本术语定义: ? Consumer Key:消费方对于服务提供方的身份唯一标识。 ? Consumer Secret:用来确认消费方对于 Consumer Key 的拥有关系。 ? Request Token:获得用户授权的请求令牌,用于交换 Access Token。 ? Access Token:用于获得用户在服务提供方的受保护资源。 ? Token Secret:用来确认消费方对于令牌(Request Token 和 Access Token)的拥有关系。 图 2. OAuth 授权流程(摘自 OAuth 规范) ? 对于图 2 具体每一执行步骤,解释如下: A. 消费方向 OAuth 服务提供方请求未授权的 Request Token。 B. OAuth 服务提供方在验证了消费方的合法请求后,向其颁发未经用户授权的 Request Token 及其相对应的 Token Secret。 C. 消费方使用得到的 Request Token,通过 URL 引导用户到服务提供方那里,这一步应该是浏览器的行为。接下来,用户可以通过输入在服务提供方的用户名 / 密码信息,授权该请求。一旦授权成功,转到下一步。 D. 服务提供方通过 URL 引导用户重新回到消费方那里,这一步也是浏览器的行为。 E. 在获得授权的 Request Token 后,消费方使用授权的 Request Token 从服务提供方那里换取 Access Token。 F. OAuth 服务提供方同意消费方的请求,并向其颁发 Access Token 及其对应的 Token Secret。 G. 消费方使用上一步返回的 Access Token 访问用户授权的资源。 总的来讲,在 OAuth 的技术体系里,服务提供方需要提供如下基本的功能: ? 第 1、实现三个 Service endpoints,即:提供用于获取未授权的 Request Token 服务地址,获取用户授权的 Request Token 服务地址,以及使用授权的 Request Token 换取 Access Token 的服务地址。 ? 第 2、提供基于 Form 的用户认证,以便于用户可以登录服务提供方做出授权。 ? 第 3、授权的管理,比如用户可以在任何时候撤销已经做出的授权。 而对于消费方而言,需要如下的基本功能: ? 第 1、从服务提供方获取 Customer Key/Customer Secret。 ? 第 2、提供与服务提供方之间基于 HTTP 的通信机制,以换取相关的令牌。 我们具体来看一个使用 OAuth 认证的例子。 在传统的网站应用中,如果您想在网站 A 导入网站 B 的联系人列表,需要在网站 A 输入您网站 B 的用户名、密码信息。例如,您登陆 Plaxo ( ),一个联系人管理网站,当您想把 GMail 的联系人列表导入到 Plaxo,您需要输入您的 GMail 用户名 / 密码,如图 3 所示: 图 3. 在 Pla

文档评论(0)

zhanci3731 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档