【问题标题】:Azure App Service behind Azure Application GatewayAzure 应用程序网关背后的 Azure 应用服务
【发布时间】:2020-08-02 23:01:20
【问题描述】:

我正在尝试在应用程序网关后面提供多个 Azure 应用服务。这些服务应该只能通过应用程序网关端点访问。为此,我做了以下工作:

  • 添加了 VNet
  • 添加了一个子网,并向其中添加了所有应用服务
  • 添加了一个应用程序网关,其中包含指向应用服务的适当规则
  • 增加了对应用服务的访问限制,只允许应用网关的子网,以及应用网关的公网IP

应用程序网关的健康探测表明服务是健康的(因此可以访问),但是当我尝试使用 Postman 通过网关向服务发出请求时,我收到 403 IP forbidden 错误。但是,当我将本地 IP 作为允许的 IP 地址添加到应用服务时,请求就可以通过了

根据我在网上阅读的内容,添加网关的公共 IP 应该足以允许通过网关进行访问,但似乎来自我本地计算机的请求被阻止了。我这里有什么根本错误吗?

编辑:我还尝试为网关分配一个前端私有 IP 地址,并在应用服务中为其添加访问权限,但这也不起作用

编辑 2:我的配置

应用服务的访问限制: access restrictions

后端池: Backend pool

HTTP 设置: HTTP settings

听众: Listener

规则: Rule

【问题讨论】:

  • 不完全是一个答案,但尝试使用 Azure Front Door,更容易并提供相同的功能。

标签: azure azure-web-app-service azure-application-gateway


【解决方案1】:

根据您的描述“添加了一个子网,并向其中添加了所有应用程序服务”,我假设您的意思是 integrating app with Azure VNetenable the service endpoint with Microsoft.Web for the subnet。如果是这样,您可以删除它们。在这种情况下,两者都无用。

要限制通过网关的访问,只需将前端 IP 地址添加到 Azure 应用服务访问限制。更多详情可以参考这篇博客https://www.cloudmanav.com/azure/restricting-appservice-accessible-via-appgateway/#

如果您将 NSG 与子网关联,则可以在此处遵循先决条件 https://docs.microsoft.com/en-us/azure/application-gateway/configuration-overview#network-security-groups-on-the-application-gateway-subnet

编辑

您可能在您的应用服务上配置了重定向或有 Azure Active Directory 身份验证,这会导致重定向。因此,当重定向发生时,客户端直接向应用服务 URL 路径 contoso.azurewebsites.net/xxx 发出请求,而不是通过应用程序网关 URL 路径 contoso.com/xxx

要修复它,您可以使用自定义域名将应用程序网关接收到的主机名也传递给应用程序服务,而不是进行主机覆盖。获取有关此解决方案的更多详细信息here

【讨论】:

  • 首先,感谢您的帮助。我跟着你的脚步;从子网中删除了应用服务,只添加了应用网关的前端 IP 作为允许的 IP。但是,现在运行状况探测也失败了。是否需要为应用网关的子网添加访问权限?我确实启用了“从后端设置中选择主机名”,据我了解是应用服务所必需的
  • Hearth 探针应该匹配 http 设置。后端健康状况如何?
  • 似乎确实是一个健康探测设置,所以现在已修复。但是,原来的问题仍然存在。我的怀疑是,不知何故,实际请求不是由网关发出的,而是直接从我机器的 IP 路由到应用程序服务,这就是它被拒绝的原因
  • 如果把应用服务限制中的规则全部去掉,是不是通过网关起作用?
  • 能否显示应用网关配置和应用服务限制配置,我明天检查一下
猜你喜欢
  • 1970-01-01
  • 2017-03-29
  • 1970-01-01
  • 2018-08-10
  • 2018-12-30
  • 2018-04-22
  • 2021-05-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多