跳到主要内容

2. Mutual TLS for OAuth Client Authentication (用于 OAuth 客户端认证的 Mutual TLS)

2. Mutual TLS for OAuth Client Authentication (用于 OAuth 客户端认证的 Mutual TLS)

本节作为 OAuth 2.0 [RFC6749] 第 2.3 节的扩展, 定义两种将 mutual-TLS X.509 客户端证书用作 client credentials (客户端凭据) 的 distinct (不同) 方法. 对客户端认证要求使用 mutual TLS 由授权服务器根据给定客户端的策略或配置决定 (无论该客户端是动态注册, 静态配置还是以其他方式建立).

为了将 TLS 用于 OAuth 客户端认证, 客户端与授权服务器之间的 TLS 连接必须已使用 mutual-TLS X.509 证书认证建立或重新建立 (即在 TLS 握手期间发送客户端 Certificate 与 CertificateVerify 消息).

对于所有使用 mutual-TLS 客户端认证向授权服务器发出的请求, 客户端必须包含 OAuth 2.0 [RFC6749] 第 2.2 节所述的 client_id 参数. client_id 参数的存在使授权服务器能够独立于证书内容轻松识别客户端. 授权服务器可使用客户端标识符定位客户端配置, 并将 TLS 握手中出示的证书与该客户端的预期凭据进行核对. 授权服务器必须强制执行客户端与证书之间的绑定, 如下面第 2.1 节或第 2.2 节所述. 若未出示证书, 或出示的证书与给定 client_id 的预期不符, 授权服务器必须按照 [RFC6749] 第 5.2 节返回常规 OAuth 2.0 错误响应, 错误码为 invalid_client, 表示客户端认证失败.