OAuth 2实战宝典
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2.3 授信客户端密码模式

1.授权请求示例

授信客户端密码(Password Credentials Grant)模式一般用于共享用户账号体系的第三方应用进行授权的场景。例如,母公司和子公司所开发的第三方应用共享用户账号体系。在该模式下,用户在第三方应用中输入用户名和密码后,第三方应用会直接使用用户名和密码信息获取授权信息。

步骤1 用户直接在第三方应用登录,第三方应用在获取用户的用户名和密码后,创建如示例1.8所示的获取授权信息请求,从而获取access_token。

示例1.8 获取授权信息请求

示例1.8中各参数的含义如下。

• client_id:第三方应用在开放平台注册完成后获取的唯一标识。

• client_secret:第三方应用在开放平台注册完成后获取的密码。

• username:用户的用户名。

• password:用户的密码。

• grant_type:OAuth 2规定在授信客户端密码模式下,该字段的值为password,授权系统会根据该字段进行必要参数的校验,并在校验通过后执行该场景下的授权流程。

步骤2 授权系统在收到如示例1.8所示的请求后,会在系统的后端通道中调用认证服务器进行用户认证,并在认证成功后直接返回如示例1.6所示的授权信息。

2.系统交互流程

图1-3所示为授信客户端密码模式的授权流程。

图1-3 授信客户端密码模式的授权流程

步骤1 用户访问第三方应用,并输入用户名和密码。

步骤2 第三方应用从后台向授权系统发起授权请求。

步骤3 授权系统通过后台接口(一般是内部的RPC接口)验证用户信息。

步骤4 认证系统校验成功后会返回用户的相关信息。

步骤5 授权系统向第三方应用返回access_token信息。

经验

授信客户端密码模式会将用户的认证信息(用户名和密码)直接暴露给第三方应用,这意味着开放平台必须对该第三方应用完全信任,同时第三方应用需要有能力保障用户的信息安全。所以在实际工作中,该模式的使用场景一般为信任的第三方应用(包括子公司、KA客户等),应用场景较少。