1

在典型的三層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.

回答

1

如果你想要隔離的那個水平,一個(雖然昂貴)的選項是一個應用程序服務環境(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

1

在符合上面說什麼和@juunas輕微的變化是推出Azure的API管理網關在Azure中的Web應用程序和Azure的應用阿比之間。在標準層API網關中,IP地址爲fixed且不會更改,您可以使用Azure API應用程序web.config中的API網關地址將其列入白名單。

+0

您是否知道API應用程序是否提供了使用密鑰來保護API的選項。我相信API GW會這樣做,但這也增加了很多成本。 – user3573411