云计算引出了大量的开放平台,各种第三方应用建立在开放平台之上,出于安全性的要求便出现了oauth协议,2007年发布了Oauth1.0协议,2.0的草案与2011年发布。
1、2.0的用户授权过程(过程可参考流程图)
- 引导用户到授权服务器,请求用户授权,用户授权后返回 授权码(Authorization Code)
- 客户端由授权码到授权服务器换取访问令牌(Access Token)
- 用访问令牌去访问得到授权的资源
(Client指第三方应用,Resource Owner指用户,Authorization Server是我们的授权服务器,Resource Server是API服务器。)
2、1.0的用户授权过程
- 客户端到授权服务器请求一个授权令牌(Request Token&Secret)
- 引导用户到授权服务器请求授权
- 用访问令牌到授权服务器换取访问令牌(Access Token&Secret)
- 用访问令牌去访问得到授权的资源
3、两者的对比:
OAuth1.0协议每个Token都有一个加密,2.0则不需要。这样来看1.0似乎更加安全,但是2.0要求使用https协议,安全性也更高一筹。
OAuth2.0充分考虑了客户端的各种子态,因而提供了多种途径获取访问令牌
a)授权码
b)客户端私有证书
c)资源拥有者密码证书
d)刷新令牌
e)断言证书
OAuth1.0只有一个用户授权流程。
OAuth2.0较1.0相比,整个授权验证流程更简单更安全,也是未来最主要的用户身份验证和授权方式。
时间: 2024-10-10 00:24:46