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

Azure通配符域名如何限制仅允许指定子域名访问?

可行方案整理(按你提到的层级分类)

1. App Service层面(最轻量化,无额外服务成本)

  • 用请求Host头校验实现,不需要受500个自定义域名绑定数量限制:
    提前维护合法子域名白名单,所有请求进入业务逻辑前先校验Host请求头的值是否在白名单内,不在白名单的直接返回403状态码或者跳转到统一报错页,避免用户进入到登录等后续流程。
    如果你不想修改业务代码,也可以用App Service运行环境自带的配置规则实现:
    • Windows运行环境可以直接在Web.config里加重写规则,示例如下:
    <rule name="SubdomainWhitelistCheck" stopProcessing="true">
      <match url=".*" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^(允许的子域名1\.oursite\.com|允许的子域名2\.oursite\.com)$" negate="true" />
      </conditions>
      <action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="当前子域名未被授权访问" />
    </rule>
    
    • Linux容器运行环境可以在Nginx/Apache的配置文件里加对应Host校验规则,逻辑和上面一致。
  • 也可以用App Service内置的Easy Auth身份验证组件的前置校验能力,添加自定义HTTP头校验规则,请求到达你的应用之前就会拦截非法子域名的请求。

2. Azure Application Gateway(负载均衡)层面(适合已部署应用网关的场景)

如果你的App Service前端已经配置了Azure应用网关,直接在网关的WAF模块里加自定义拦截规则即可:

  • 新建自定义规则,匹配逻辑设置为当请求Host头不在预设子域名白名单内时,动作为「阻止」,非法请求会直接在网关层被拦截,不会转发到后端App Service,拦截效率比应用层更高。
  • 子域名白名单可以批量维护在WAF规则组里,更新时不需要修改应用配置。

3. Traffic Manager层面(不推荐单独使用)

Traffic Manager属于DNS层面的流量调度服务,本身不支持HTTP Host头校验,只能通过「仅给合法子域名配置解析记录指向Traffic Manager」的方式实现限制,未配置的子域名无法解析到服务IP。但该方案需要给每个合法子域名单独配DNS记录,和你规避500个域名绑定限制的需求冲突,仅适合子域名数量较少的场景使用。

最优方案推荐:子域名数量远大于500的情况下优先选App Service层面的配置/代码校验,无额外成本,配置灵活;如果已经部署了应用网关,优先在WAF层做拦截,性能更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:36:00