OAUTH2学习及DOTNETOPENAUTH部分源码研究.doc
上传人:sy****28 上传时间:2024-09-10 格式:DOC 页数:48 大小:91KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

OAUTH2学习及DOTNETOPENAUTH部分源码研究.doc

OAUTH2学习及DOTNETOPENAUTH部分源码研究.doc

预览

免费试读已结束,剩余 38 页请下载文档后查看

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

在上篇文章中我研究了OpenId及DotHYPERLINK"http://www.haogongju.net/tag/net"\o"Net"\t"_blank"NetOpenAuth的相关应用,这一篇继续研究OAuth2.一.什么是OAuth2OAuth是一种开放认证协议,允许HYPERLINK"http://www.haogongju.net/tag/%E7%94%A8%E6%88%B7"\o"用户"\t"_blank"用户让第三方应用访问该用户在某一HYPERLINK"http://www.haogongju.net/tag/%E7%BD%91%E7%AB%99"\o"网站"\t"_blank"网站上存储的私密的HYPERLINK"http://www.haogongju.net/tag/%E8%B5%84%E6%BA%90"\o"资源"\t"_blank"资源(如照片,HYPERLINK"http://www.haogongju.net/tag/%E8%A7%86%E9%A2%91"\o"视频"\t"_blank"视频,联系人列表),而无需将用户名和密码提供给第三方应用.数字2表示现在使用第2代协议.二.OAuth2中的角色OAuth2有四种角色resourceowner资源所有者:比如twitter用户,他在twitter的HYPERLINK"http://www.haogongju.net/tag/%E6%95%B0%E6%8D%AE"\o"数据"\t"_blank"数据就是资源,他自己就是这些资源的所有者。resourceserver资源HYPERLINK"http://www.haogongju.net/tag/%E6%9C%8D%E5%8A%A1%E5%99%A8"\o"服务器"\t"_blank"服务器:保存资源的服务器,别人要访问受限制的资源就要出示AccessToken(访问令牌)。clientHYPERLINK"http://www.haogongju.net/tag/%E5%AE%A2%E6%88%B7%E7%AB%AF"\o"客户端"\t"_blank"客户端:一个经过授权后,可以代表资源所有者访问资源服务器上受限制资源的一方。比如HYPERLINK"http://www.haogongju.net/tag/%E5%BC%80%E5%8F%91%E8%80%85"\o"开发者"\t"_blank"开发者开发的应用。authorizationserver授权服务器:对资源所有者进行认证,认证通过后,向客户端发放AccessToken(访问令牌)。三.认证过程用户访问客户端的网站,想操作自己存放在资源服务提供方的资源。客户端将用户引导至授权服务提供方的授权页面请求用户授权,在这个过程中将客户端的回调连接发送给授权服务提供方。用户在授权服务提供方的网页上输入用户名和密码,然后授权该客户端访问所请求的资源。授权成功后,授权服务提供方对客户端授予一个授权码,网站跳回至客户端。客户端获得授权码后,再次从授权服务提供方请求获取访问令牌。授权服务提供方根据授权码授予客户端访问令牌。客户端使用获取的访问令牌访问存放在资源服务提供方上的受保护的资源。四.获取访问令牌方式从上面可以看到,令牌是串起整个认证流程的核心.OAuth2有四种获取令牌的方式AuthorizationCode授权码方式:这种是推荐使用的,也是最安全的.ImplicitGrant隐式授权:相比授权码授权,隐式授权少了第一步的取AuthorizationCode的过程,而且不会返回refresh_token。主要用于无服务器端的应用,比如HYPERLINK"http://www.haogongju.net/tag/%E6%B5%8F%E8%A7%88%E5%99%A8"\o"浏览器"\t"_blank"浏览器插件。ResourceOwnerPasswordCredentials资源所有者密码证书授权:这种验证主要用于资源所有者对Client有极高的信任度的情况,比如操作HYPERLINK"http://www.haogongju.net/tag/%E7%B3%BB%E7%BB%9F"\o"系统"\t"_blank"系统或高权限程序。只有在不能使用其它授权方式的情况下才使用这种方式。ClientCredentials客户端证书授权:这种情况下Client使用自己的client证书(如client_id及client_secret组成的httpbasicHYPERLINK"http://www.haogongju.net/tag/%E9%A