oauth1.0&1.0a

最近研究了下oauth授权认证协议,先把1.0写了,2.0会在后边在写。

先贴张图吧!网上找了好多流程图,但感觉都不怎么好,看起来不是很清晰就自己画了一个。

然后解释下:

最上两个交互是最开始的前期准备,第三方应用向认真服务器申请一个属于自己的consumer_key,以后授权的时候会用到。(下面是主要参数和返回值,图片里已经有了)

Consumer申请Request Token(/oauth/1.0/request_token):

Service Provider返回Request Token:

Consumer重定向User到Service Provider(/oauth/1.0/authorize):

Service Provider在用户授权后重定向User到Consumer:

Consumer申请Access Token(/oauth/1.0/access_token):

Service Provider返回Access Token:

1.0存在安全漏洞,所以之后又有1.0a。为了修复安全问题修改了以下细节:

Consumer申请Request Token时,必须传递oauth_callback,而Consumer申请Access Token时,不需要传递oauth_callback。通过前置oauth_callback的传递时机,让oauth_callback参与签名,从而避免攻击者假冒oauth_callback。

Service Provider获得User授权后重定向User到Consumer时,返回oauth_verifier,它会被用在Consumer申请Access Token的过程中。攻击者无法猜测它的值。

发表评论