使用客户端证书进行身份验证

适用于:所有 API 管理层级

通过 authentication-certificate 策略使用客户端证书对后端服务进行身份验证。 当证书首先安装到 API 管理时,首先通过其指纹或证书 ID(资源名称)对其进行标识。

注意

如果证书引用存储在 Azure Key Vault 中的证书,请使用证书 ID 来标识它。 轮换密钥保管库证书时,证书在 API 管理中的指纹将会更改,并且如果新证书由指纹标识,则该策略将无法解析新证书。

注意

按照策略声明中提供的顺序设置策略的元素和子元素。 详细了解如何设置或编辑 API 管理策略

策略语句

<authentication-certificate thumbprint="thumbprint" certificate-id="resource name" body="certificate byte array" password="optional password"/>

属性

属性 说明 需要 默认
thumbprint 客户端证书的指纹。 允许使用策略表达式。 thumbprintcertificate-id 可以存在。 空值
certificate-id 证书资源名称。 允许使用策略表达式。 thumbprintcertificate-id 可以存在。 空值
body 字节数组形式的客户端证书。 在未从内置证书存储中检索到证书的情况下使用。 允许使用策略表达式。 空值
password 客户端证书的密码。 允许使用策略表达式。 body 中的指定证书受密码保护的情况下使用。 空值

使用情况

示例

由证书 ID 标识的客户端证书

<authentication-certificate certificate-id="544fe9ddf3b8f30fb490d90f" />  

由指纹标识的客户端证书

<authentication-certificate thumbprint="CA06F56B258B7A0D4F2B05470939478651151984" />

在策略中设置的客户端证书(而不是从内置证书存储中检索到的证书)

<authentication-certificate body="@(context.Variables.GetValueOrDefault<byte[]>("byteCertificate"))" password="optional-certificate-password" />

后续步骤

有关使用策略的详细信息,请参阅: