Azure APIM自定义域下能否仅为单个API开启Negotiate Client Certificate?
可行,但需通过APIM策略实现差异化控制
Negotiate Client Certificate是绑定在自定义域(主机名)层级的设置,无法直接在单个API级别单独开启/关闭,但可以通过APIM的策略配置达成你的需求,具体操作如下:
- 先在自定义域层级开启Negotiate Client Certificate,让所有走该主机名的请求都触发证书协商流程。
- 给需要强制验证客户端证书的目标API,在其入站策略中添加
<validate-client-certificate require="true" />,确保这个API会严格校验证书有效性,无有效证书的请求将被拒绝。 - 给其余三个不需要验证证书的API,分别在各自的入站策略中添加
<validate-client-certificate require="false" />,这样即使客户端未提供证书或证书无效,这些API的请求也能正常通过(APIM会跳过证书验证步骤)。
本质就是通过域层级统一开启证书协商,再利用API级别的策略区分哪些需要执行证书验证,哪些不需要。
内容的提问来源于stack exchange,提问作者Fakhar Ahmad Rasul
相关产品推荐
相关产品推荐

