Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure Web应用中的三层Web应用_Azure_Azure Web App Service_Azure Api Apps - Fatal编程技术网

Azure Web应用中的三层Web应用

Azure Web应用中的三层Web应用,azure,azure-web-app-service,azure-api-apps,Azure,Azure Web App Service,Azure Api Apps,在典型的三层web应用中,您在公共子网中运行web服务器,而应用层位于私有子网中。是否可以使用Azure Web应用程序和Api应用程序运行类似的体系结构 我想你可以在Azure Web App中运行Asp.NET Core Web App,并将Asp.NET Core Web Api部署到Azure Api App,然后将Api端点设置为私有,以便只有Web App可以与其对话?我认为谷歌、Facebook等都是身份验证提供商。这就是使API私有化所必须做的吗 D.如果您想要达到这种隔离级别,

在典型的三层web应用中,您在公共子网中运行web服务器,而应用层位于私有子网中。是否可以使用Azure Web应用程序和Api应用程序运行类似的体系结构

我想你可以在Azure Web App中运行Asp.NET Core Web App,并将Asp.NET Core Web Api部署到Azure Api App,然后将Api端点设置为私有,以便只有Web App可以与其对话?我认为谷歌、Facebook等都是身份验证提供商。这就是使API私有化所必须做的吗


D.

如果您想要达到这种隔离级别,一个(尽管昂贵)选项是应用程序服务环境(ASE)。链接到文档:

应用程序服务环境非常适合需要以下条件的应用程序工作负载:

  • 非常高的规模

  • 隔离和安全网络访问

默认情况下部署的公共环境是公共的。任何地方的任何人都可以访问您的端点,并且由您的应用程序进行过滤。这可以通过Web.config中的静态IP地址安全设置来实现。问题是,即使这样,您也无法确定前端将使用什么IP地址进行通信。它可能使用多个可能的地址进行出站通信,这些地址可能会发生更改

您可以在此处看到IP限制的示例:

当然,您还应该在API上设置身份验证。文档链接:


与@juunas上面所说的一致,一个微小的变化是在Azure web应用程序和Azure API应用程序之间引入Azure API管理网关。在标准层API网关中,IP地址是且不会更改,并且您可以使用Azure API App web.config中的API网关地址进入白名单

谢谢朱纳斯。ASE是我一直在探索的东西。在我的问题中,我指的是将前端部件映射到Web应用程序和Api应用程序中的Api(两者都是ASE的一部分)。然后使用authN/Z选项之一保护API应用程序。我想知道这是否是常见的模式。或者,是否存在另一种机制来启用Web应用程序和Api应用程序之间的私有通信。我看到一些老帖子和第9频道的视频提到了一些功能。对不起,没有意识到ASE是高级服务。我会复习的。谢谢。我们主要使用Azure AD进行身份验证和授权。我们为每个组件(前端/API)创建一个应用程序,然后为它们提供必要的权限,指定允许它们调用的内容。这将是一个选项。您知道API应用程序是否提供了使用密钥保护API的选项。我相信API GW可以做到这一点,但这也会大大增加成本。