Oauth2.0简介
一个针对第三方的授权协议。为用户资源的授权提供了一个安全的、开放而简易的标准。
术语
- Third-party application
- HTTP service
- Resource Owner:一般指用户
- User Agent:可能是浏览器
- Authorization server:认证服务器
- Resource server:资源服务器
- 三个URL:
Request Token URL: 获取未授权的Request Token服务地址;
User Authorization URL: 获取用户授权的Request Token服务地址;
Access Token URL: 用授权的Request Token换取Access Token的服务地址;
OAuth原理
在客户端与服务提供商之间,设置认证服务,客户端不能直接登陆服务提供商,只能登陆授权层,以此将用户与客户端区分开。
客户端登陆使用token。用户可以在登陆的时候,指定token的权限和有效期。
登陆后,服务提供商根据token的权限范围和有效期,向客户端开放资料。
+--------+ +---------------+
| |--(A)- Authorization Request ->| Resource |
| | | Owner |
| |<-(B)-- Authorization Grant ---| |
| | +---------------+
| |
| | +---------------+
| |--(C)-- Authorization Grant -->| Authorization |
| Client | | Server |
| |<-(D)----- Access Token -------| |
| | +---------------+
| |
| | +---------------+
| |--(E)----- Access Token ------>| Resource |
| | | Server |
| |<-(F)--- Protected Resource ---| |
+--------+ +---------------+
Figure 1: Abstract Protocol Flow
参考资料:
https://tools.ietf.org/html/rfc6749
http://baike.baidu.com/link?url=sO2q-jYGvW7zEm50ESHgPkpN8jAKIuxJsuMjBFLDgveiI6S4djfeeEOGG9FMPNhTxgYDFQQedS6ImxSzm3Xgl_