您的位置:首页 > 其它

OAUTH 原理介绍

2012-04-23 11:37 141 查看
转载:http://www.cnblogs.com/louis-kerui/articles/2420566.html

Oauth是一种安全认证的协议,Oauth的授权不会使第三方触及到用户名的账号信息(如用户名,密码)

www.oauth.net。

     Service Provider(服务提供者):通常是网站,在这些网站当中存在着一些限制的资源。例如图片共享

网站,博客或者微博系统,或者SNS类网站等等。这些网站通常使用用户名,密码来确认用户的身份。

     User(用户):用户特有可以登录服务器提供者网站的用户名密码,并且在这些网站上保存了自己的一些

自己的私人信息,用户不希望把这些信息公开,但是用户需要将这些信息共享给其它网站。

   Consumer(客户):客户<我们的应用程序>是希望能够访问用户私人信息的应用程序,可以是Web应用程序,桌

面应用程序或者是手机应用程序。Consumer需要得到授权之后才能访问相应资源。

   Protected Resource(被保护的资源):这些资源可能是照片,文档和联系人等。 

Oauth验证示意图:



Oauth的验证过程:



OAuth认证及授权分为三个步骤,操作过程需要获取各环节所需要的令牌,如下:
获取未授权的Request Token(请求令牌);
获取用户授权的Request Token(授权令牌);
用授权的Request Token换取Access Token(访问令牌);

当应用拿到Access Token后,就可以有权访问用户授权的资源了。上述的三个步骤中,分别请求不同及独立的URI地址,且仅能访问一次。

具体每步执行结果如下:
A. 使用者(第三方站点)向OAuth服务提供商请求未授权的Request Token。向Request Token URI发起请求,请求需要带上的参数见上图;
B. OAuth服务提供商同意使用者的请求,并向其颁发未经用户授权的oauth_token与对应的oauth_token_secret,并返回给使用者;
C. 使用者向OAuth服务提供商请求用户授权的Request Token,即向User Authorization URI发起请求,请求附带上一步拿到的未授权的token(令牌)与其secret(密钥);
D. OAuth服务提供商将引导用户进行授权认证。该过程可能会提示用户,你想将哪些受保护的资源授权给该应用,此步可能会返回授权的Request Token也可能不返回,如Yahoo OAuth就不会返回任何信息给使用者;
E. Request Token 授权后,使用者将向Access Token URI发起请求,把上步授权的Request Token换成Access Token;
F. OAuth服务提供商同意使用者的请求,并向其颁发Access Token与对应的密钥,最后返回给使用者。
G. 使用者以后就可以使用最后获取到的Access Token来访问用户授权的资源。

可以查看:http://wiki.dianboom.com/index.php/OAuth%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息