使用客户端证书进行身份验证
适用于:所有 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 | 客户端证书的指纹。 允许使用策略表达式。 | thumbprint 或 certificate-id 可以存在。 |
空值 |
certificate-id | 证书资源名称。 允许使用策略表达式。 | thumbprint 或 certificate-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" />
相关策略
后续步骤
有关使用策略的详细信息,请参阅:
- 教程:转换和保护 API
- 策略参考,其中提供了策略语句及其设置的完整列表
- 策略表达式
- 设置或编辑策略
- 策略示例