在典型的3层Web应用程序中,您在公有子网中运行Web服务器,而应用层则位于私有子网中。是否可以使用Azure Web应用程序和Api应用程序运行类似的体系结构?
我猜你可以在Azure Web App中运行Asp.NET Core Web App并将AspNet Core Web Api部署到Azure Api应用程序,然后将Api端点设为私有,这样只有Web应用可以与它通信?我看到谷歌,Facebook等选项。作为auth提供者。这就是你要使API私有化吗?
d
答案 0 :(得分:1)
如果您想要这种级别的隔离,一个(虽然很昂贵)选项是App Service Environment(ASE)。链接到文档:https://docs.microsoft.com/en-us/azure/app-service-web/app-service-app-service-environment-intro
应用服务环境非常适合需要以下的应用工作负载:
非常高的比例
隔离并保护网络访问
默认情况下,您部署的公共环境是 public 。任何地方的任何人都可以访问您的终端,您的应用程序可以进行过滤。这可以完成,例如通过Web.config中的静态IP地址安全设置。问题在于,即使这样,您也无法确定您的前端将用于通信的IP地址。它可以用于出站流量的多个可能的地址,并且这些地址可能会发生变化。
您可以在此处查看IP限制示例:restricting IP security
当然,您还应该在API上设置身份验证。文档链接:
答案 1 :(得分:1)
与@juunas上面所述的内容一致,稍微改变的是在Azure Web应用程序和Azure Api应用程序之间引入Azure API Management Gateway。在标准层API网关中,IP地址为fixed且无法更改,您可以使用Azure API App web.config中的API网关地址进行白名单。