oauth2开放证协议原理及案例分析.docxVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
之前翻译过一篇?OAuth认证协议原理分析及使用方法,虽然 OAuth2还没有正式发布,但是国内外的OAuth2的采用情况几乎要完全替代掉OAuth1.1了。像淘宝、腾讯、人人网、百度开放平台就已经采用Oauth2,新浪微博也发来邮件说是要很快上马OAuth2,彻底替换掉OAuth1.1。目前OAuth2到了v20草稿阶段,最新的版本是 2011年7月25号发布的,协议变化还是很快的,所以看到国内的一些已经实现的实例,再比照官方的 oauth2,会有些出入的。为何要 OAUTH2来替换OAUTH1.1?一、OAuth2大大简化了认证流程,OAuth1版本,我都感觉有些流程设计不是为安全性而存在,有些东西很难想一个理由,他们为何要弄得如此复杂。复杂可能是增加安全性的一个要素,但是也极大增加了开发者的开发难度。二、增加了对多种不同方式的认证,原来的认证只能直接或间接通过浏览器,现在有专门的标准来给客户端程序、移动应用、浏览器应用提供认证的方法。OAUTH2的四种角色resource owner资源所有者:比如twitter用户,他在twitter的数据就是资源,他自己就是这些资源的所有者。resource server资源服务器:保存资源的服务器,别人要访问受限制的资源就要出示 Access Token(访问另牌)。client客户端:一个经过授权后,可以代表资源所有者访问资源服务器上受限制资源的一方。比如开发者开发的应用。authorization server授权服务器:对资源所有者进行认证,认证通过后,向客户端发放 Access Token(访问另牌)。OAUTH2取得ACCESS TOKEN的四种方式一、Authorization Code授权码方式:这种是推荐使用的,也是最安全的,也是替换OAuth1.1的一种授权方式。流程:1、引导用户访问授权服务器,比如地址:?123GET /authorize?response_type=codeclient_id=s6BhdRkqt3state=xyz????redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb HTTP/1.1Host: ,其中response_type值固定为 code,client_id就是客户端申请开发者的时候取得的appkey,state是一个可选参数,可以用于保存客户端在引导用户转向前的一些状态,当回到redirect_uri的时候会原封不动的传回来,redirect_uri是当用户确认授权应用访问的时候跳转回来的地址。2,用户同意授权后跳转回来的的地址如:?123HTTP/1.1 302 FoundLocation: /cb?code=SplxlOBeZQQYbYS6WxSbIA??????????state=xyzstate=xyz ,其中 code就是 Authorization Code,state就是上面所说的可选参数。3,使用取得的 Authorization Code去换取Access Token:?1234567POST /token HTTP/1.1Host: Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JWContent-Type: application/x-www-form-urlencoded;charset=UTF-8?=authorization_codecode=SplxlOBeZQQYbYS6WxSbIAredirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb其中 Authorization是由Client id(app key)及Client password(app secret)组合成的 http basic 验证字符串,grant_type必须为authorization_code,code是上一步取得的 Authorization Code,redirect_uri是完成后跳转回来的网址。如果Client不能发送 Authorization信息,则可以使用下面的方式,/token这个地址必须是 https连接的,不然就有泄露 client secret的可能性:?123456POST /token HTTP/1.1Host: Content-Type: application/x-www-form-urlencoded;charset=UTF-8?grant_type=refresh_tokenrefresh_token=tGzv3JOkF0XG5Qx2TlKWIAclient_id=s6BhdRkqt3client_secret=7Fjfp0ZBr1K

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档