Azure CLI を使用してサインインするSign in with Azure CLI

Azure CLI には、いくつかの認証の種類があります。There are several authentication types for the Azure CLI. Azure Cloud Shell を使用すると自動的にログインできるため、最も簡単に作業を開始できます。The easiest way to get started is with Azure Cloud Shell, which automatically logs you in. ローカルでは、ご使用のブラウザーで az login コマンドを使用して、対話形式でサインインできます。Locally, you can sign in interactively through your browser with the az login command. スクリプトを記述するときは、サービス プリンシパルを使用することをお勧めします。When writing scripts, the recommended approach is to use service principals. サービス プリンシパルに必要とされる適切なアクセス許可だけを付与することによって、自動化をより安全に維持できます。By granting just the appropriate permissions needed to a service principal, you can keep your automation secure.

CLI によってサインイン情報が保存されることは、まったくありません。None of your sign-in information is stored by the CLI. 代わりに、認証更新トークンが Azure によって生成され、保存されます。Instead, an authentication refresh token is generated by Azure and stored. 2018 年 8 月の時点で、このトークンは非アクティブな状態が 90 日続くと取り消されますが、この値は、Microsoft またはテナント管理者が変更できます。As of August 2018 this token is revoked after 90 days of inactivity, but this value can be changed by Microsoft or your tenant administrator. トークンが取り消されると、もう一度サインインする必要があることが CLI からメッセージで通知されます。Once the token is revoked you get a message from the CLI saying you need to sign in again.

サインインすると、CLI コマンドが既定のサブスクリプションに対して実行されます。After signing in, CLI commands are run against your default subscription. 複数のサブスクリプションがある場合は、既定のサブスクリプションを変更できます。If you have multiple subscriptions, you can change your default subscription.

対話操作でサインインするSign in interactively

Azure CLI の既定の認証方法では、サインインに Web ブラウザーとアクセス トークンを使用します。The Azure CLI's default authentication method uses a web browser and access token to sign in.

  1. login コマンドを実行します。Run the login command.

    az login
    

    CLI で既定のブラウザーを開くことができる場合、開いたブラウザにサインイン ページが読み込まれます。If the CLI can open your default browser, it will do so and load a sign-in page.

    それ以外の場合は、ブラウザー ページを開いて、お使いのブラウザーで https://aka.ms/devicelogin に移動した後、コマンド ラインの指示に従って認証コードを入力します。Otherwise, you need to open a browser page and follow the instructions on the command line to enter an authorization code after navigating to https://aka.ms/devicelogin in your browser.

  2. ブラウザーでアカウントの資格情報を使用してサインインします。Sign in with your account credentials in the browser.

コマンド ラインで資格情報を使用してサインインするSign in with credentials on the command line

コマンド ラインで、Azure ユーザー資格情報を指定します。Provide your Azure user credentials on the command line.

注意

この方法は、Microsoft アカウント、または 2 要素認証が有効になっているアカウントでは機能しません。This approach doesn't work with Microsoft accounts or accounts that have two-factor authentication enabled.

az login -u <username> -p <password>

重要

az login を対話形式で使用しているときに、コンソールにパスワードが表示されないようにするには、bash では read -s コマンドを使用します。If you want to avoid displaying your password on console and are using az login interactively, use the read -s command under bash.

read -sp "Azure password: " AZ_PASS && echo && az login -u <username> -p $AZ_PASS

PowerShell では、Get-Credential コマンドレットを使用します。Under PowerShell, use the Get-Credential cmdlet.

$AzCred = Get-Credential -UserName <username>
az login -u $AzCred.UserName -p $AzCred.GetNetworkCredential().Password

サービス プリンシパルを使ってサインインするSign in with a service principal

サービス プリンシパルは、特定のユーザーに関連付けられていないアカウントであり、定義済みのロールによってアクセス許可を割り当てることができます。Service principals are accounts not tied to any particular user, which can have permissions on them assigned through pre-defined roles. サービス プリンシパルを使用した認証は、セキュリティで保護されたスクリプトやプログラムを記述するのに最適な方法で、アクセス許可の制限と、ローカルに保存された静的な資格情報の両方を適用できます。Authenticating with a service principal is the best way to write secure scripts or programs, allowing you to apply both permissions restrictions and locally stored static credential information. サービス プリンシパルの詳細については、Azure CLI を使用した Azure サービス プリンシパルの作成に関するページをご覧ください。To learn more about service principals, see Create an Azure service principal with the Azure CLI.

サービス プリンシパルを使ってサインインするには、以下が必要です。To sign in with a service principal, you need:

  • サービス プリンシパルに関連付けられている URL または名前The URL or name associated with the service principal
  • サービス プリンシパルのパスワード、またはサービス プリンシパルを PEM 形式で作成するために使用する X509 証明書The service principal password, or the X509 certificate used to create the service principal in PEM format
  • .onmicrosoft.com ドメインまたは Azure オブジェクト ID として、サービス プリンシパルに関連付けられているテナントThe tenant associated with the service principal, as either an .onmicrosoft.com domain or Azure object ID

重要

お使いのサービス プリンシパルでは、Key Vault に格納されている証明書が使用されている場合、その証明書の秘密キーは Azure にサインインしなくても使用できる必要があります。If your service principal uses a certificate that is stored in Key Vault, that certificate's private key must be available without signing in to Azure. オフラインで使用する秘密キーを取得するには、az keyvault secret show を使用します。To retrieve a private key for use offline, use az keyvault secret show.

az login --service-principal -u <app-url> -p <password-or-cert> --tenant <tenant>

重要

az login を対話形式で使用しているときに、コンソールにパスワードが表示されないようにするには、bash では read -s コマンドを使用します。If you want to avoid displaying your password on console and are using az login interactively, use the read -s command under bash.

read -sp "Azure password: " AZ_PASS && echo && az login --service-principal -u <app-url> -p $AZ_PASS --tenant <tenant>

PowerShell では、Get-Credential コマンドレットを使用します。Under PowerShell, use the Get-Credential cmdlet.

$AzCred = Get-Credential -UserName <app-url>
az login --service-principal -u $AzCred.UserName -p $AzCred.GetNetworkCredential().Password --tenant <tenant>

別のテナントでサインインするSign in with a different tenant

--tenant 引数を使用すると、サインインするテナントを選択できます。You can select a tenant to sign in under with the --tenant argument. この引数の値として、.onmicrosoft.com ドメインまたはテナントの Azure オブジェクト ID を指定できます。The value of this argument can either be an .onmicrosoft.com domain or the Azure object ID for the tenant. 対話形式のサインイン方法とコマンドラインによるサインイン方法の両方で、--tenant を使用できます。Both interactive and command-line sign in methods work with --tenant.

az login --tenant <tenant>

マネージド ID を使用したサインインSign in with a managed identity

Azure リソースのマネージド ID 用に構成されたリソースでは、マネージド ID を使用してサインインできます。On resources configured for managed identities for Azure resources, you can sign in using the managed identity. リソースの ID を使用したサインインは、--identity フラグを介して行われます。Signing in with the resource's identity is done through the --identity flag.

az login --identity

Azure リソースのマネージド ID の詳細については、Azure リソースのマネージド ID の構成に関するページ、およびAzure リソースのマネージド ID を使用したサインインに関するページをご覧ください。To learn more about managed identities for Azure resources, see Configure managed identities for Azure resources and Use managed identities for Azure resources for sign in.