OAuth 2.0
OAuth 2.0
OAuth 2.0简介
OAuth是一种开放协议, 允许用户让第三方应用以安全且标准的方式获取该用户在某一网站,移动或者桌面应用上存储的秘密的资源(如用户个人信息,照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。
OAuth 2.0角色
- Resource Owner: 资源所有者
- Resource Server: 资源服务器
- Client: 客户端
- Authorization Server: 授权服务器
OAuth 2.0流程图
+--------+ +---------------+
| |--(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 ---| |
+--------+ +---------------+
(A) 客户端向资源所有者请求授权。
(B) 客户端收到授权许可,资源所有者给客户端颁发授权许可(比如授权码code)。
(C) 客户端与授权服务器进行身份认证并出示授权许可(比如授权码code)请求访问令牌。
(D) 授权服务器验证客户端身份并验证授权许可,若有效则颁发访问令牌(accept token)。
(E) 客户端从资源服务器请求受保护资源并出示访问令牌(accept token)进行身份验证。
(F) 资源服务器验证访问令牌(accept token),若有效则满足该请求。