You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让同一X.509证书同时用于Azure APIM与IoT DPS认证?

解决方案:修改APIM策略适配DPS兼容的X.509证书

核心思路

APIM默认会强制验证客户端证书链中所有证书的CN与请求域名一致,但我们可以通过自定义策略跳过CN匹配检查,转而聚焦证书本身的合法性(签名链完整有效、来自信任CA),同时可按需添加额外验证规则,以此兼容DPS要求的「CN为设备唯一ID」的证书格式。

具体策略修改步骤

1. 禁用默认的CN匹配检查

在APIM的入站策略中添加<validate-client-certificate>元素,开启证书链有效性验证的同时,关闭CN与域名的匹配校验。

2. 可选:添加业务层面的验证规则

根据需求补充额外校验,比如限制证书必须来自指定信任CA、验证证书CN(即DPS的registration_id)在允许列表内,或者校验证书指纹,确保只有授权设备能访问。

完整策略示例

<policies>
    <inbound>
        <base />
        <!-- 验证证书链有效性,跳过CN与域名的匹配检查 -->
        <validate-client-certificate validateCertificateChain="true" validateCertificateName="false" />
        
        <!-- 可选:校验证书签发方是否为信任CA -->
        <choose>
            <when condition="@(context.Request.Certificate.Issuer != "CN=你的信任根CA, O=你的组织, L=城市, S=省份, C=国家")">
                <return-response>
                    <set-status code="403" reason="Forbidden" />
                    <set-body>证书签发方未授权</set-body>
                </return-response>
            </when>
        </choose>
        
        <!-- 可选:校验设备CN(DPS的registration_id)是否在允许列表 -->
        <choose>
            <when condition="@(!new[] {"device-001", "device-002", "device-003"}.Contains(context.Request.Certificate.SubjectName.Name))">
                <return-response>
                    <set-status code="403" reason="Forbidden" />
                    <set-body>设备未授权</set-body>
                </return-response>
            </when>
        </choose>
    </inbound>
    <backend>
        <base />
    </backend>
    <outbound>
        <base />
    </outbound>
    <on-error>
        <base />
    </on-error>
</policies>

关键说明

  • validateCertificateChain="true":必须保留,确保证书由信任CA签发、链完整且未过期,这是安全基础,不要设置为false。
  • validateCertificateName="false":核心修改项,跳过APIM默认的CN与域名匹配要求,让客户端证书的CN可以是DPS所需的设备唯一ID。
  • 额外验证规则:按需添加,避免未授权的任意证书访问APIM资源。

验证步骤

  1. 将修改后的策略应用到目标API或产品。
  2. 使用DPS预配的设备证书(CN为设备registration_id)发送请求到APIM。
  3. 确认请求能通过验证,同时符合你添加的额外校验规则。

内容的提问来源于stack exchange,提问作者Navin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 16:52:11