次の方法で共有


Azure App Service のデプロイ資格情報を管理する

ローカル Git デプロイまたは FTP/S デプロイを使用して、ローカルアプリを Azure App Service にデプロイできます。 この記事では、ローカル Git または FTP/S デプロイのデプロイ資格情報を作成および管理する方法について説明します。

デプロイ資格情報は、Azure サブスクリプションの資格情報とは異なります。 App Service では、セキュリティで保護されたローカル アプリのデプロイ用に、 ユーザー スコープ とアプリ スコープの資格情報の 2 種類 資格情報がサポートされています。

  • ユーザー スコープ またはユーザー レベルの資格情報は、ユーザーの Azure アカウント全体に対して 1 セットのデプロイ資格情報を提供します。 ロールベースのアクセス制御 (RBAC) または共同管理者のアクセス許可を介してアプリへのアクセスが許可されているユーザーは、それらのアクセス許可を持っている限り、ユーザー レベルの資格情報を使用できます。

    ユーザー スコープの資格情報を使用して、Azure アカウントにアクセス許可がある任意のサブスクリプションで、ローカル Git または FTP/S を介して App Service にアプリをデプロイできます。 これらの資格情報は、他の Azure ユーザーと共有しません。 ユーザー スコープの資格情報はいつでもリセットできます。

  • アプリ スコープ またはアプリケーション レベルの資格情報は、アプリごとに 1 セットの資格情報であり、そのアプリのデプロイにのみ使用できます。 これらの資格情報は作成時にアプリごとに自動的に生成され、手動で構成することはできませんが、パスワードはいつでもリセットできます。

    RBAC を介してアプリ レベルの資格情報へのアクセスを許可するには、ユーザーには、組み込みの Web サイト共同作成者ロールを含むアプリに対する少なくとも共同作成者レベルのアクセス許可が必要です。 閲覧者 ロールは発行できないので、これらの資格情報にアクセスできません。

[前提条件]

デプロイ資格情報を設定、リセット、アクセス、または使用するには、App Service アプリに対する 共同作成者レベルのアクセス許可が必要です。

基本認証の要件

ローカル Git または FTP/S 経由で App Service アプリを発行するには、基本認証を有効にする必要があります。 SCM Basic Auth Publishing CredentialsFTP Basic Auth Publishing Credentials の両方が、Azure portal のアプリの [構成] ページで [オン] に設定されている必要があります。

基本認証は他の認証方法よりも安全性が低く、新しいアプリでは既定で無効になっています。 基本認証が無効になっている場合、アプリの 展開センター で展開資格情報を表示または設定したり、発行にこれらの資格情報を使用したりすることはできません。 詳細については、「 Azure App Service デプロイでの基本認証の無効化」を参照してください。

ユーザー スコープの資格情報を設定する

FTP/S デプロイでは、ユーザー名とパスワードの両方が必要です。 ローカル Git デプロイでは、ユーザー名のみが必要です。 ユーザー名は Azure 内で一意になっている必要があります。

ローカル Git デプロイの場合、ユーザー名に @ 文字を含めることはできません。

FTP/S デプロイの場合:

  • ユーザー名は、 <app-name>\<user-name>の形式に従う必要があります。 ユーザー スコープの資格情報はアプリではなくユーザーにリンクされるため、この形式では、サインイン アクションがアプリの適切な FTP/S エンドポイントに転送されます。

  • パスワードは 8 文字以上で、大文字、小文字、数字、および記号を含める必要があります。 Azure portal にはユーザー スコープのパスワードが表示されておらず、JSON 出力には nullとして表示されます。 パスワードを紛失または忘れた場合は、 資格情報をリセット して新しい資格情報を取得できます。

ユーザー スコープの資格情報は、Azure CLI または Azure portal を使用して構成できます。

Azure CLI を使用してユーザー スコープの資格情報を作成するには、 az webapp deployment user set コマンドを実行し、 <username><password> を選択した値に置き換えます。

az webapp deployment user set --user-name <username> --password <password>

ユーザー スコープの資格情報を設定すると、Azure portal のアプリの [概要 ] ページにデプロイ ユーザー名が表示されます。 ローカル Git デプロイが構成されている場合、ラベルは Git/Deployment ユーザー名です。 それ以外の場合、ラベルは FTP/Deployment ユーザー名です

アプリの [概要] ページの Git デプロイ ユーザー名を示すスクリーンショット。

アプリケーション スコープの資格情報を取得する

アプリケーション スコープの資格情報は、アプリの作成時に自動的に作成されます。 FTP/S アプリ スコープのユーザー名は、常に app-name\$app-nameの形式に従います。 ローカル Git アプリ スコープのユーザー名は、 $app-name形式を使用します。

Bash などの変数補間にドル記号を使用するシェルで git remote add を使用する場合は、認証エラーを回避するために、 \$ を使用してユーザー名またはパスワードのドル記号をエスケープする必要があります。

アプリ スコープの資格情報は、Azure CLI、Azure PowerShell、または Azure portal を使用して取得できます。

Azure CLI で、 az webapp deployment list-publishing-profiles コマンドを使用してアプリケーション スコープの資格情報を取得します。 次に例を示します。

az webapp deployment list-publishing-profiles --resource-group myResourceGroup --name myApp

ローカル Git デプロイでは、az webapp deployment list-publishing-credentials コマンドを使用することもできます。 次の例では、アプリのアプリケーション スコープ資格情報が既に埋め込まれている Git リモート URI を返します。

az webapp deployment list-publishing-credentials --resource-group myResourceGroup --name myApp --query scmUri

返された Git リモート URI の末尾に /<app-name>.git がありません。 URI を使用してリモートを追加する場合は、/<app-name>.gitを URI に追加して、git-http-pushでのエラー22を回避します。

資格情報をリセットする

Azure CLI、Azure PowerShell、または Azure portal を使用して、アプリケーション スコープのデプロイ資格情報をリセットし、新しいパスワードを取得できます。 アプリ スコープのユーザー名は、自動生成された値を保持します。

Azure CLI と Azure portal では、新しい資格情報を作成することで、ユーザー スコープの資格情報をリセットすることもできます。 このアクションは、ユーザー スコープの資格情報を使用するアカウント内のすべてのアプリに影響します。

デプロイ資格情報をリセットすると、発行プロファイルを介した外部統合と自動化が機能しなくなります。新しい値で再構成する必要があります。

Azure CLI で、newpassword アクションで az resource invoke-action コマンドを使用して、アプリケーション スコープのパスワードをリセットします。

az resource invoke-action --action newpassword --resource-group <group-name> --name <app-name> --resource-type Microsoft.Web/sites

az webapp deployment user set コマンドを再実行してユーザー スコープの資格情報をリセットし、新しいユーザー名とパスワードの値を作成します。

az webapp deployment user set --user-name <new-username> --password <new-password>