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

公共Azure服务端Blazor Web应用私有API端点访问限制方法

Azure平台层面限制Blazor Server特定API端点仅允许指定Azure Web应用访问的可行方案

不需要拆分现有应用部署,.NET 6环境无额外代码改造即可实现,以下是两种落地成本最低的方案:

方案1:基于App Service访问限制做网络层管控(最便捷)

Azure App Service原生支持按请求路径配置访问规则,可单独对受保护API端点做IP/网络白名单,其余页面保持公开访问:

  • 先获取调用方Web App的所有出站IP:进入调用方Web App的「属性」面板,复制全部Outbound IP Addresses和Possible Outbound IP Addresses字段值
  • 进入你的Blazor应用所在App Service的「网络」-「访问限制」配置页:
    • 根路径(/*)保留默认「允许所有访问」规则,保证普通用户可正常访问Blazor页面
    • 新增一条高优先级允许规则,路径匹配栏填写你要保护的API路径(例如/api/your-target-endpoint/*),允许的IP地址栏填入上一步复制的所有调用方出站IP
    • 针对同一路径再新增一条优先级低于上述允许规则的「拒绝所有访问」规则
  • 配置完成后,所有非调用方IP发来的针对该API端点的请求,会直接在Azure平台层被拦截,不会进入你的应用运行时。如果两个Web应用都配置了VNet集成/私有端点,直接配置对应子网/私有IP范围的允许规则即可,稳定性比公网IP白名单更高。

方案2:基于Azure AD托管身份+App Service Easy Auth做身份层管控(可靠性更高)

该方案不依赖IP,不会因为调用方出站IP变动导致规则失效,和你现有Bearer认证逻辑完全兼容:

  • 给调用方Web App开启系统分配托管标识,记录该标识对应的对象ID
  • 给你的Blazor应用开启App Service身份验证(Easy Auth),选择Azure AD作为身份提供方,关闭全局强制认证开关,保证普通Blazor页面可匿名访问
  • 针对受保护的API路径配置专属授权规则,仅允许上一步记录的调用方托管标识对应的服务主体访问。配置完成后,就算其他请求携带了格式合法的Bearer令牌,只要签发主体不是指定的调用方Web App,平台层会直接返回403拒绝。

以上两种方案均为Azure平台侧生效,不需要修改现有.NET 6项目的代码,也不需要拆分Blazor应用和API的部署单元,和你已实现的Bearer认证属于多层防护关系,不会产生冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 01:39:19