Azure
在 Azure 的應用服務上配置基本身份驗證
出於不同的原因,我使用
Azure's App Service
它來提供靜態文件。我想確保此訪問權限Http Basic Authentication
足以滿足我的目的。我怎樣才能做到這一點?我嘗試上傳.htpasswd
,但似乎不起作用。我沒有使用 ASP.NET,所以無法在程式碼中執行此操作。在 Azure 的門戶中,我在 App Service -> Authentication/Authorization 下看到了 Google、Facebook、Twitter 登錄等選項,但這對我來說是巨大的成本。
目前,這是不可能的。Azure webapp 不支持此功能。
您可以查看此回饋。
可以使用applicationHost.xdt中的一些設置為 Azure Web Apps 啟用基本身份驗證。您可以在 Web 應用程序啟動時在此文件中載入一些模組。
腳步:
- 在 Azure 門戶中導航到您的 WebApp
- 在左側菜單中,搜尋標題Development Tools並選擇Advanced Tools (Kudu)
- 使用調試控制台 > CMD工具導航到 WebApp 目錄:\home\site
- 創建一個名為:applicationHost.xdt的文件
- 粘貼以下內容:
<?xml version="1.0"?> <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> <location path="%XDT_SITENAME%" xdt:Locator="Match(path)"> <system.webServer> <rewrite xdt:Transform="InsertIfMissing"> <allowedServerVariables xdt:Transform="InsertIfMissing"> <add name="RESPONSE_WWW_AUTHENTICATE" xdt:Locator="Match(name)" xdt:Transform="InsertIfMissing" /> </allowedServerVariables> <rules xdt:Transform="InsertIfMissing"> <rule name="BasicAuthentication" stopProcessing="true" xdt:Transform="InsertIfMissing" xdt:Locator="Match(name)"> <match url=".*" /> <conditions> <add input="{HTTP_AUTHORIZATION}" pattern="^Basic dXNlcjpwYXNzd29yZA==" ignoreCase="false" negate="true" /> </conditions> <action type="CustomResponse" statusCode="401" statusReason="Unauthorized" statusDescription="Unauthorized" /> <serverVariables> <set name="RESPONSE_WWW_AUTHENTICATE" value="Basic realm=Project" /> </serverVariables> </rule> </rules> </rewrite> </system.webServer> </location> </configuration>
- 根據您的喜好更改基本身份驗證(範例中的預設值為:使用者:密碼)
- 確保不包含 web.config 重寫規則,
<clear />
因為這會從 applicationHost.xdt 文件中刪除效果- 保存文件並停止和啟動您的 WebApp(簡單的重啟是不夠的)
筆記:
- 不確定這是否適用於基於 Linux 的 WebApps..
- 您可以使用 FTP 將此步驟添加到您的部署管道中
- **更新:**我注意到在輔助 Web 應用程序插槽上使用 applicationHost.xdt 時存在問題。只有主插槽似乎工作。