解释
优点和缺点
OAuth2.0
主要有4种授权模式,最全面的是授权码模式。见下图
改进1:去掉签名,改用SSL(HTTPS)确保安全性。
改进2:所有的token不再有对应的secret存在,签名过程简洁,这也直接导致OAuth2.0不兼容老版本。
改进3:能更好地支持不是基于浏览器的应用。
改进4:OAuth2.0的访问令牌是“短命的”,且有刷新令牌(OAuth1.0可以存储一年及以上)
OAuth1.0a
1.向服务器端请求未授权的request token,入参:
oauth_consumer_key oauth_signature_method oauth_signature oauth_timestamp oauth_nonce oauth_version oauth_callback
2.服务器返回未授权request token
oauth_token oauth_token_secret oauth_callback_confirmed
3.传参未授权request token请求资源存储服务器的授权页
oauth_token
4.授权成功,返回授权后的request token
oauth_token oauth_verifier
5.使用授权的request token换取access token
oauth_consumer_key oauth_token oauth_signature_method oauth_signature oauth_timestamp oauth_nonce oauth_version oauth_verifier
6.返回access token与access token secret换取资源。
oauth_token oauth_token_secret
总结:OAuth1.0a和OAuth1.0的过程看起来一样,但是改进了每一步骤里面的入参和返回值,仔细一看是不一样的。
具体改进1:将oauth_callback回调时机提前,参与签名过程。下一步将没办法伪造回调地址。
具体改进2:用户授权后,返回oauth_verifier,它会被用Consumer申请Access Token的过程中。攻击者无法猜测它的值。
缺点:
1.使用的是http协议
2.签名过程复杂而实用性不高。
OAuth1.0
1.客户端向资源服务器请求未授权Request Token,传入以下参数
oauth_consumer_key oauth_signature_method oauth_signature oauth_timestamp oauth_nonce oauth_version
2.服务器返回未授权Request Token和secret,返回参数如下:
oauth_token oauth_token_secret
3.客户端入参oauth_token oauth_callback请求服务器,调起授权页面
oauth_token oauth_callback
4.等用户授权后,回到客户端,返回授权Request Token
oauth_token
5.获取到授权Request Token,再向资源服务器换取票据accessToken,传入参数:
oauth_consumer_key oauth_token oauth_signature_method oauth_signature oauth_timestamp oauth_nonce oauth_version
6.返回oauth_token oauth_token_secret
优点:步骤1是签名过程
缺点:
1.用的是http协议,申请RequestToken过程中,容易被攻击者调包。
2.攻击者调包后的目的就是伪造回调地址,拿到用户的accessToken。
那么OAuth1.0a的产生主要是为了修复以上的问题。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/12302.html