我在同一 Azure 区域中有 2 个应用服务计划,每个计划运行 1 个应用程序 - 一个是 Web 前端,另一个是 API。
我想对 API 使用访问限制,仅允许来自前端应用程序的访问。
我使用与前端应用程序关联的所有传出 IP 地址设置访问限制规则(我注意到这些也与 API 应用程序上的传出 IP 地址完全相同),但是当前端应用程序尝试联系 API 时我收到错误:
403 禁止“您尝试访问的网络应用程序已阻止您的访问。”
当访问限制被移除后,这两个应用程序可以正常通信。
最佳答案
我打开了诊断设置,并对应用程序的 IP 阻止运行了查询。
事实证明,FE 应用程序使用的是 IPv6 地址,而不是应用程序属性中列出的 v4 地址。
这是因为应用程序设置了 vnet 集成,连接到委托(delegate)给 Webservice/serverfarm 的子网。
Azure 并没有明确表明使用委派子网会强制集成应用程序使用 IPv6,并且似乎没有办法发现可能正在使用哪些 v6 地址。 MS 论坛响应建议,附加到委托(delegate)子网的 Web 应用程序的任何防火墙规则都应允许所有 IPv6 地址 (!!) 作为解决该问题的一种方法。
关于应用程序之间的 Azure Web 应用程序访问限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69473599/