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

Azure APIM未强制校验Subscription Key,如何限制访问?

强制Azure API Management校验订阅密钥的配置方案

1. 确认API及操作的订阅要求设置

  • 登录APIM控制台,定位到目标API:
    • 再次验证API级别的“Subscription Required”已开启;
    • 逐一检查该API下的所有操作,进入单个操作的“设置”页面,确保“Subscription Required”选项勾选为“是”。部分场景下会单独为操作关闭该设置,导致绕过校验。

2. 限制Azure Function的直接访问

  • 若Function允许直接通过自身URL访问,用户会绕开APIM的密钥校验,需配置访问限制:
    • 进入Azure Function实例,依次打开“网络” > “访问限制”;
    • 添加允许规则:将APIM实例的所有出站IP地址(可在APIM“概述”页面获取)加入允许列表;
    • 添加拒绝规则:设置“拒绝所有其他IP”,确保所有请求必须经过APIM。

3. 验证并添加订阅密钥校验策略

  • 默认开启“Subscription Required”会自动注入校验策略,但可手动确认或补充:
    • 进入目标API的“设计”页面,查看“入站处理”环节的策略代码;
    • 确保存在<check-subscription-key>策略,示例代码如下:
      <check-subscription-key header-name="Ocp-Apim-Subscription-Key" query-param-name="subscription-key" />
      
    • 若策略缺失,手动添加并保存,确保策略作用于API级别(所有操作继承)或指定操作。

4. 确认订阅密钥的作用域关联

  • 检查订阅的作用域是否覆盖目标API:
    • 进入APIM的“订阅”页面,找到对应订阅;
    • 查看“作用域”字段,确保其包含目标API(支持API级别、产品级别或全局级别);
    • 若作用域不匹配,编辑订阅调整作用域范围。

5. 确保使用APIM的合法调用URL

  • 测试时必须使用APIM提供的API入口URL(格式:https://<apim实例名>.azure-api.net/<API路径>),而非Azure Function的原生URL(https://<函数名>.azurewebsites.net/api/<函数路径>)。直接访问Function URL不会触发APIM的密钥校验。

6. 等待配置生效并重新测试

  • APIM配置变更可能存在5-10分钟的生效延迟,修改设置后等待一段时间,再使用携带订阅密钥的请求测试,确认校验生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 19:27:31