azure-front-door - Azure Front Door - 403 Forbidden if there are IP Allow entries in the web app Network Restrictions List
问题描述
我一直在与 Azure 支持工程师一起尝试解决这个问题,但他无法确定问题所在,所以我希望这里有人遇到过这种情况:
我们已经设置了我们的第一个 Azure 前门 - 此阶段的配置非常简单 - 后端池仅包含我们的一个 Web 应用程序(Azure 应用程序服务)和一个仅转发来自前门 URL 的所有请求的路由到 Web 应用程序 URL。
问题:我们发送的每个请求都提供了 403 禁止错误。
我所做并确定的:
Azure Web 应用具有网络安全限制,仅允许某些 IP 地址访问 URL。我的 IP 地址是列表的一部分,如果我直接访问 Web 应用程序 URL ,一切都会按预期工作。如果我尝试访问 Front Door URL,我会收到 403 Forbidden 错误。
作为测试,我设置了第二个没有 IP 限制的 Azure Web 应用程序,并将其添加到 Front Door 的后端池中。我可以毫无问题地通过前门访问该站点。但是,只要我在网络限制列表中添加了一个允许条目(在本例中为我的 IP 地址),我在转到 Front Door URL 时就会收到 403 错误。
作为另一项测试,我什至将 0.0.0.0 添加到 IP 限制列表以允许全部 - 即使这样,在尝试访问前门 URL 时仍然会收到 403 错误。在所有测试用例中,我都可以直接访问 Web 应用程序 URL 而不会出现任何错误。
我还完全禁用了 Front Door WAF,以确保其中没有任何内容导致 403 错误。同样的事情 - 403 无论如何点击前门 URL。
最后 - 我在每次测试之间对 Front Door 缓存进行清除,以确保没有任何东西被捕获。
这似乎是 Front Door 和在 IP 限制中有任何条目的 Web 应用程序可能存在的错误?这对我来说会非常令人困惑,因为我们不能期望我们在没有 IP 限制的情况下让我们的非面向公众的网络应用程序 URL 对网络开放?有没有人经历过并解决了这个问题?
编辑 1:Azure 支持工程师为我提供了 Front Door 服务的 IP 地址,以添加到 Web 应用程序的允许列表中。我添加了,但仍然没有运气 - 只有 403。似乎如果该网络限制列表中有任何内容,前门无法按预期工作。
编辑 2:似乎我的 Allow All 条目不正确 - 我将其设置为 0.0.0.0/32。将其更改为 0.0.0.0/0 后,我可以通过 Front Door 访问 Web 应用程序。因此,我对列表中的任何条目(包括 Allow All 导致 403 错误)的初步评估是不正确的。正确的评估是列表中除 0.0.0.0 以外的任何条目(甚至是我自己的 IP 地址)都会导致 403 错误。所以主要问题仍然存在 - 我们如何通过 IP 限制保护我们的 Web 应用程序并仍然使用 Azure Front Door?
解决方案
Azure Frontdoor 将充当反向代理,这意味着世界各地的 POP 服务器 IP 需要在您的 Web 应用网络限制中列入白名单。
它记录在此处的常见问题解答部分中。
由于有多个POP服务器,需要将所有POP服务器的IP加入白名单,然后尝试访问测试。
您还可以分享我的 SR #,以便我可以查看您提出的支持票。
推荐阅读
- angular - 如何读取子组件数组的变量(Angular)
- javascript - 如何从 mongoDB 取回数据并正确显示?
- python - 如何在 Python 中将文本转换为 svg 路径
- kubernetes - 仅将 POST 重定向到 nginx 入口
- c# - 如何在仅使用 3 个 for 循环时优化此问题?
- python - 如何在不获取 ValueError 的情况下访问类的根属性
- ado - 如何禁用 ODBC 连接向导
- r - 从 r 数据帧生成加权矩阵
- sql - 如何在只有所有子查询都为真的情况下返回匹配的列值
- java - 将给定数组的所有子数组存储在 ArrayList 的 ArrayList 中,并显示 ArrayList 的内容