さまざまな理由から、Azure's App Service
静的ファイルを提供するために を使用しています。このアクセスを安全に保護したいのですが、Http Basic Authentication
これで十分です。どうすればいいでしょうか? アップロードを試みました.htpasswd
が、うまくいかないようです。
私は ASP.NET を使用していないので、コードでそれを実行する方法はありません。Azure のポータルでは、App Service -> 認証/承認の下に Google、Facebook、Twitter ログインなどのオプションが表示されますが、私にとっては大きなオーバーヘッドです。
答え1
現時点では、それは不可能です。Azure Web アプリはこれをサポートしていません。
これを確認してくださいフィードバック。
答え2
Azure Web Appsの基本認証は、以下の設定で有効にすることができます。アプリケーションホスト.xdtWeb アプリの起動時に、このファイル内のいくつかのモジュールを読み込むことができます。
手順:
- AzureポータルでWebAppに移動します
- 左のメニューでヘッダーを検索開発ツール選ばれた高度なツール(クーズー)
- 使用デバッグコンソール > CMDツールを使用して、WebApp ディレクトリに移動します。\ホーム\サイト
- 次の名前のファイルを作成します:アプリケーションホスト.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>
- 好みに応じて基本認証を変更します(この例ではデフォルトは「user:password」です)
- web.configの書き換えルールに以下が含まれていないことを確認してください。
<clear />
これにより、applicationHost.xdtファイルからの影響が削除されます。 - ファイルを保存し、WebAppを停止して起動します(簡単な再起動意思ない十分です)
ノート:
- Linux ベースの Web アプリでこれが動作するかどうかはわかりません。
- FTPを使用して、このステップをデプロイメントパイプラインに追加できます。
- アップデート:セカンダリ Web アプリ スロットで applicationHost.xdt を使用しているときに問題が発生していることに気付きました。プライマリ スロットのみが機能しているようです。
答え3
現在、Azure Portal 経由の Azure Web Apps では基本認証はサポートされていません。
ただし、DevBridge は、基本認証を有効にできるモジュールを提供します。
https://www.alexlindgren.com/posts/password-protect-azure-website-with-basic-authentication/
https://www.alexlindgren.com/posts/password-protecting-azure-websites-revisited/
https://www.devbridge.com/articles/basic-authentication-for-windows-azure-websites/
ソースコード https://github.com/devbridge/AzurePowerTools/tree/master/Devbridge.BasicAuthentication