Azure Web应用程序中的三层Web应用程序

问题描述:

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

我猜你可以在Azure Web App中运行Asp.NET Core Web App,并将AspNet Core Web Api部署到Azure Api App,然后使Api端点专用,这样只有Web应用程序可以与它通话?我看到像谷歌,Facebook等选项。作为auth提供者。这是你必须做什么来使API私密?

D.

如果你想要隔离的那个水平,一个(虽然昂贵)的选项是一个应用程序服务环境(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。文档链接:

+0

谢谢Junnas。 ASE是我一直在探索的东西。在我的问题中,我指的是将前端部分映射到API应用程序中的Web Apps和Api(都是ASE的一部分)。然后使用其中一个authN/Z选项来保护API应用程序。 我想了解这是否是常见模式。或者如果有另一种机制来启用Web App和Api App之间的私人通信。我看到一些较旧的帖子和9频道视频提到了某些功能。 – user3573411

+0

对不起,没有意识到ASE是优质服务。我会审查它。谢谢。 – user3573411

+0

我们主要使用Azure AD进行身份验证和授权。我们为每个组件创建一个应用程序(前端/ API),然后为它们提供必要的权限,以指定它们允许调用的内容。这将是一种选择。 – juunas

在符合上面说什么和@juunas轻微的变化是推出Azure的API管理网关在Azure中的Web应用程序和Azure的应用阿比之间。在标准层API网关中,IP地址为fixed且不会更改,您可以使用Azure API应用程序web.config中的API网关地址将其列入白名单。

+0

您是否知道API应用程序是否提供了使用密钥来保护API的选项。我相信API GW会这样做,但这也增加了很多成本。 – user3573411