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

Azure APIM配置IP过滤策略后,如何允许开发者门户请求?

解决Azure APIM启用IP过滤后拦截开发者门户请求的方案

问题原因

开发者门户的API测试功能并非从门户服务器转发请求,而是由用户本地浏览器直接向APIM网关发起请求,所以请求的源IP是你本地设备的公网IP,不是你通过nslookup获取的开发者门户VIP地址,这就是添加VIP后仍被拦截的核心原因。

可行解决方案

1. 直接添加本地公网IP到允许列表(适合测试场景)

查询你本地设备的公网IP,将其加入ip-filter的允许地址中:

<ip-filter action="allow">
    <address>13.**.**.72</address>
    <address>你的本地公网IP</address>
</ip-filter>

2. 通过请求头识别开发者门户测试请求(更灵活)

开发者门户发起的测试请求会携带特定请求头,可结合条件策略放行这类请求:

<choose>
    <!-- 放行带测试标识或来自开发者门户的请求 -->
    <when condition="@(context.Request.Headers.ContainsKey("Ocp-Apim-Test-Key") || (context.Request.Headers.ContainsKey("Referer") && context.Request.Headers.GetValueOrDefault("Referer","").Contains("你的开发者门户域名")))">
        <ip-filter action="allow">
            <address>0.0.0.0/0</address>
        </ip-filter>
    </when>
    <!-- 对其他请求应用原有IP过滤规则 -->
    <otherwise>
        <ip-filter action="allow">
            <address>13.**.**.72</address>
        </ip-filter>
    </otherwise>
</choose>

注意将你的开发者门户域名替换为实际地址,比如xxx.developer.azure-api.net。

3. 添加托管开发者门户的IP段(适合生产环境)

若使用微软托管的开发者门户,可查阅Azure官方发布的APIM托管服务IP范围,将对应门户的IP段批量加入允许列表,避免单个IP维护的麻烦。

验证方法

修改策略并保存后,在开发者门户重新测试API,确认请求不再被拦截。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 12:22:40