OpenID Connect 相互 TLS 客户机认证和证书绑定访问令牌

OpenID Connect for Open Banking 应用程序可以配置为使用相互 TLS (MTLS) 客户机证书进行客户机认证。 注册客户机证书的详细信息,以便可以使用该证书执行客户机认证,而不需要存储和使用客户机密钥。

可以将访问令牌和刷新令牌绑定到证书,该证书用于在 https://{{tenant}}/oauth2/token 端点上与 IBM® Verify 建立相互 TLS 连接。 资源服务器需要验证令牌并强制必须存在相同的证书才能使用该特定访问令牌时,此连接用作“所有权证明”。 此“所有权证明”可以防止使用被盗的访问令牌来访问受保护的资源。 自省此令牌会返回“cnf”确认方法声明,其中包含证书指纹。
{
	"iss": "https://server.example.com",
	"sub": "ty.webb@example.com",
	"exp": 1493726400,
	"nbf": 1493722800,
	"cnf": {
		"x5t#S256": "bwcK0esc3ACC3DB2Y5_lESsXE8o9ltc05O89jdN-dg2"
	}
}
注意: MTLS 客户端身份验证并非证书绑定访问令牌的先决条件。 另一种客户机认证方法(例如,私钥 JWT)可用于客户机认证,生成的访问令牌仍然可以绑定到证书。

先决条件

  • 配置租户的定制域名以及已注册的 CA 捆绑包。 这通常是在创建或更新 Verify 租户时提供的。
  • 配置依赖方客户机以使用相互 TLS 客户机认证。
  • 配置资源服务器或资源 API 网关以验证证书绑定的访问令牌。

过程

  1. 创建启用了“管理联合”权利的 API 客户机。 请参阅 “创建 API 客户端 ”。
  2. 使用 API 客户机凭证来获取令牌。 请参阅 “管理 OIDC 令牌 ”。
  3. 使用该令牌来访问端点以配置联合。 使用 mtlsEndpointBaseURI 的新值来更新 OpenID Connect 联合。 此配置参数的值是包含 HTTPS 模式和定制域名称的 URL。 例如,https://customdomain.jke.com。 请参阅 OpenID Connect 联合端点的 API 文档。
  4. 要创建或修改 OpenID Connect for Open Banking 应用程序,请确保配置了以下设置。
    • 将客户机认证方法设置为 Mutual TLS
    • 将 TLS 客户机认证属性设置为受支持属性之一。 例如,主体备用名称电子邮件地址 SAN email address。 此属性是执行 TLS 客户机认证时与之匹配的证书属性。
    • 将 TLS 客户机认证属性值设置为要匹配的值。 例如,如果选择了 SAN email address 属性,那么此属性是电子邮件地址。
    • 启用 certificate-bound access tokens