事象
Visual Studio から Azure App Service へアプリケーションをデプロイしようとした際に ERROR_USER_UNAUTHORIZED エラーが発生した
やったこと
Azure App Service を試してみた。
クイックスタート: ASP.NET Web アプリをデプロイする
つまずいたところ
しかし、
13.[公開] ページで [公開] を選択します。 警告メッセージが表示される場合は、[続行] を選択します。
というステップでエラーが出てしまった。
エラーが発生しました。
詳細
公開でエラーが発生しました。
ビルドに失敗しました。詳細については、出力ウィンドウを確認してください。
診断ログは次の場所に書き込まれました:
エラー Web 配置タスクが失敗しました。(Web 管理サービスを使用してリモート コンピューター ("[appname].scm.azurewebsites.net") に接続しましたが、承認されませんでした。正しいユーザー名とパスワードを使用していること、接続先のサイトが存在すること、および資格情報がそのサイトへのアクセス許可のあるユーザーを表していることを確認してください。 詳細情報の参照先: https://go.microsoft.com/fwlink/?LinkId=221672#ERROR_USER_UNAUTHORIZED)
サイト名、ユーザー名、パスワードが正しいことを確認してください。問題が解決されない場合は、ローカルまたはサーバーの管理者にお問い合わせください。
エラーの詳細:
Web 管理サービスを使用してリモート コンピューター ("[appname].scm.azurewebsites.net") に接続しましたが、承認されませんでした。正しいユーザー名とパスワードを使用していること、接続先のサイトが存在すること、および資格情報がそのサイトへのアクセス許可のあるユーザーを表していることを確認してください。 詳細情報の参照先: https://go.microsoft.com/fwlink/?LinkId=221672#ERROR_USER_UNAUTHORIZED
リモート サーバーがエラーを返しました: (401) 許可されていません
解決方法
ログファイルを見ても分からなかったので、検索したところ下記の記事があった。
Visual Studio よりAzure App Service へ Web アプリケーションを発行した際に発生したエラー ERROR_USER_UNAUTHORIZED
デフォルトで、Azure App Service の [設定 -> 構成 -> 全般設定]内の [基本認証の発行資格情報] が オフ(defalt)となっていた。
そのため、[基本認証の発行資格情報]をオンにすれば解消した。
チュートリアルでも書かれてないしで、エラーメッセージがもう少し分かりやすいといいんだけれど。
メモ
上記でつまずいた 「基本認証」は 「ユーザー名とパスワードの認証」とのこと。
App Service デプロイで基本認証を無効にする
- FTP および WebDeploy クライアントが App Service に接続するための基本認証が提供されます。
- ただし多くの場合、企業では Microsoft Entra ID 認証など、基本認証よりも安全なデプロイ方法が必要とされます
ということなので、基本認証はセキュリティ面では無効にするのが良いらしい。
基本認証を使用しないデプロイ
基本認証を無効にすると、FTP やローカル Git デプロイなどの基本認証に基づいたデプロイ方法は機能しなくなります。 別のデプロイ方法については、「Azure App Service でのデプロイ方法別の認証の種類」をご参照ください。
とのこと。
ドキュメントを見る限りでは、
FTP\FTPS、Visual Studio は基本認証しか対応してないらしい。