上周的工作有安全验证这一块,但不懂,只知道有几个关键字Oauth、secret-key 、token、签名等。今天就查下资料做笔记。
Oauth是什么
不依靠用户账号和密码就能获得访问资源权限
本质:一种开放的协议
作用:为用户资源的授权提供了一个安全的、开放而又简易的标准(不会使第三方触及到用户的帐号信息)。
特点:
简单:不管是OAUTH服务提供者还是应用开发者,都很易于理解与使用;
安全:没有涉及到用户密钥等信息,更安全更灵活;
开放:任何服务提供商都可以实现OAUTH,任何软件开发商都可以使用OAUTH;
URL:
Request Token URL: 获取未授权的Request Token服务地址;
User Authorization URL: 获取用户授权的Request Token服务地址;
Access Token URL: 用授权的Request Token换取Access Token的服务地址;
参数:
OAUTH_version: OAUTH的版本号
OAUTH_nonce: 随机生成的字符串
OAUTH_timestamp: 发起请求的时间戳(long类型)
OAUTH_signature_method: 请求串的签名方法(签名的方法有:HMAC-SHA1、RSA-SHA1与PLAINTEXT等三种)
OAUTH_signature: 用上面的签名方法对请求的签名
OAUTH_consumer_key: 使用者的ID,OAUTH服务的直接使用者是开发者开发出来的应用
OAUTH_consumer_secret:OAUTH_consumer_key对应的密钥
OAUTH_token:OAUTH进行到最后一步得到的一个“令牌”,通过此“令牌”请求,就可以去拥有资源的网站抓取任意有权限可以被抓取的资源
OAUTH_token_secret:OAUTH_token对应的私钥
授权流程:
1. 获取未授权的Request Token
2. 获取用户授权的Request Token
3. 用授权的Request Token换取Access Token
案例:
当服务B(打印服务)要访问用户的服务A(图片服务)时,通过OAUTH机制,服务B向服务A请求未经用户授权的Request Token后,服务A将引导用户在服务A的网站上登录,并询问用户是否将图片服务授权给服务B。用户同意后,服务B就可以访问用户在服务A上的图片服务。整个过程服务B没有触及到用户在服务A的帐号信息。
转载:http://www.cnblogs.com/lovesong/p/3602788.html