You need to enable JavaScript to run this app. 如何限制Azure APIM托管的API仅被同租户Web App访问?除CORS外还有哪些方案?
优惠活动
大模型
产品
解决方案
定价
更多

如何限制Azure APIM托管的API仅被同租户Web App访问?除CORS外还有哪些方案?

Azure APIM限制仅租户内Web App访问的更优实现方案

首先需要明确:你目前用的CORS规则仅作用于浏览器层面的跨域请求限制,无法拦截服务端直接发起的调用,本身不能作为访问控制的安全措施,仅可作为辅助配置。以下是安全性更高的实现方案:

1. 私有端点+虚拟网络集成(推荐)

  • 给APIM实例配置私有端点,关闭APIM的公网访问入口,此时APIM仅能被同一租户下、和私有端点处于同一/已对等互联的虚拟网络内的资源访问
  • 将你的Web App、Front Door实例集成到上述虚拟网络中,确保这些服务的出站流量可以路由到APIM的私有端点
  • 可额外配置网络安全组(NSG)规则,仅允许Web App、Front Door的IP段访问APIM的私有端点,进一步缩小访问范围

2. IP白名单+请求头校验

如果暂不使用虚拟网络,可通过IP层面的限制做访问控制:

  • 在APIM全局策略或单API策略中配置IP过滤规则,仅放行Web App的所有出站IP、Front Door的服务IP段的访问请求,Web App的出站IP可直接在Azure门户Web App的属性页查询
  • 如果使用Front Door作为入口,可额外添加APIM策略,校验请求头的X-Azure-FDID字段是否和你的Front Door实例ID一致,防止攻击者绕过Front Door直接访问APIM公网地址

3. Azure AD OAuth2.0 授权验证

  • 在你的Azure AD租户中为APIM注册应用身份,配置APIM的OAuth2.0授权策略,要求所有调用请求必须携带有效Azure AD令牌才能放行
  • 给Web App的托管标识授予APIM应用的调用权限,Web App调用时直接用托管身份申请访问令牌即可,无需手动维护密钥
  • 该方案支持细粒度的权限控制,可针对不同Web App分配不同API的调用权限,即使APIM临时暴露公网,无有效令牌也无法完成调用

4. 客户端证书认证

  • 配置APIM要求所有调用请求必须携带指定的客户端证书,APIM端校验证书的指纹、颁发者等信息匹配后才放行请求
  • 将客户端证书部署到Web App的证书存储中,Web App调用APIM时携带该证书即可完成身份校验,适合不方便对接Azure AD的场景

以上方案可组合使用实现多层防护,比如「私有端点+Azure AD认证」的组合可以同时实现网络层面和身份层面的双重访问控制,安全性远高于单独使用CORS规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 16:15:04