1.2. 协议流程
+--------+ +---------------+
| |--(1)- Authorization Request ->| Resource |
| | | Owner |
| |<-(2)-- Authorization Grant ---| |
| | +---------------+
| |
| | +---------------+
| |--(3)-- Authorization Grant -->| Authorization |
| Client | | Server |
| |<-(4)----- Access Token -------| |
| | +---------------+
| |
| | +---------------+
| |--(5)----- Access Token ------>| Resource |
| | | Server |
| |<-(6)--- Protected Resource ---| |
+--------+ +---------------+图 1:协议流程概要
OAuth 2.1 的流程概要如图 1 所示。它描述了四种角色之间的交互,包括以下步骤:
- 客户端征求资源所有者的授权。这一授权请求可以直接发送给资源所有者(如图所示);或者更好的做法是,通过授权服务器的中介间接发送。
- 客户端拿到授权许可。这种凭据代表了资源所有者的授权,可以表示为本规范定义的授权许可类型之一,或者是某一扩展许可类型。授权许可的类型一方面取决于客户端征求授权的方法,另一方面也取决于授权服务器支持的类型。
- 客户端与授权服务器进行认证,并展示授权许可,以请求访问令牌。
- 授权服务器认证客户端,并验证其授权许可。如果授权许可有效,就颁发访问令牌。
- 客户端展示访问令牌,与资源服务器进行认证,来请求资源服务器上的受保护资源。
- 资源服务器验证访问令牌。如果访问令牌有效,就为其提供服务。
客户端从资源所有者处获取授权许可(如步骤(1)和(2)所示)的最好方法,是使用授权服务器作为中介,如第 4.1 节的图 3 所示。