你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

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

适用于:所有 API 管理层级

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

注意

最大程度地减少配置此策略时凭据暴露的风险。 Microsoft 建议在受后端支持的情况下使用更安全的身份验证方法,例如托管标识身份验证凭据管理器。 如果在策略定义中配置敏感信息,我们建议使用命名值并在 Azure Key Vault 中存储机密。

注意

如果证书引用存储在 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" />

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