我正在尝试解决问题。我必须从Azure托管的Web API访问本地服务器(本地)上托管的API。
问题是我的本地服务器仅允许列出白名单的IP。我知道我们可以从我们的Web应用程序(Azure托管)中获取出站IP。但是我不确定它们是静态的还是会根据缩放比例而变化。
另一个解决方案是创建VNET并将该Web应用程序添加到该VNET中。但我希望有人提出更好的解决方案。
答案 0 :(得分:1)
您有几种选择。
首先,您可以查看应用服务的possibleOutboundIpAddress
并将此IP列入白名单。但是,这也为您的应用服务未真正使用的IP打开了大门。
az webapp show --resource-group <group_name> --name <app_name> --query possibleOutboundIpAddresses --output tsv
其次,您可以将NAT网关置于App Service的前面。但是,这需要支持虚拟网络集成的App Service Plan。
如果您还想使用静态入站IP,则可以找到更多信息here
答案 1 :(得分:0)
Azure App服务的出站IP通常是静态的,并且在扩展时不会更改。通常有4个出站IP,并且只有在更改SKU或MS端需要增加其数据中心的容量时才更改(很少或在不久的将来可能不会发生)。
我建议创建一个VNET,因为它比在本地服务中将IP列入白名单更安全。但是,如果要列出出站IP,我建议在Azure中为您的本地API创建包装,并在本地防火墙中为这些IP创建IP白名单。这样可以确保您不必每次都要在Azure中创建需要访问内部API的API时都将其列入白名单。
答案 2 :(得分:0)
不幸的是,在Azure for App Services中没有直接的方法可以做到这一点,最近我也遇到了这个问题。 到目前为止,唯一的解决方案是将App Service的出站IP列表添加到您的允许规则中。
请注意在各层之间进行扩展,因为这会更改出站IP地址。 (https://docs.microsoft.com/en-us/azure/app-service/overview-inbound-outbound-ips#when-outbound-ips-change)
最简单的方法是使用带有静态公共IP的Azure VM,该IP用于入站和出站。 山姆·科根(Sam Cogan)的博客文章不错,他确实做了几个选择。 (https://samcogan.com/obtaining-a-static-outbound-ip-from-an-azure-virtual-network/)
答案 3 :(得分:0)
混合连接 https://docs.microsoft.com/en-us/azure/app-service/app-service-hybrid-connections 怎么样?我认为它们是为访问本地服务而设计的。