次の方法で共有


Azure CLI を使用して対話形式で Azure にサインインする

Azure への対話型ログインは、より直感的で柔軟なユーザー エクスペリエンスを提供します。 Azure CLI を使用すると、 az login コマンドを使用して Azure に対して直接認証を行うことができます。 このコマンドは、アドホック管理タスクや、多要素認証 (MFA) を使用するシナリオなど、手動サインインを必要とする環境に役立ちます。 この手法ではサービス プリンシパルやその他の非対話型の認証方法を事前構成する必要がないため、スクリプトのテスト、学習、臨機応変な管理のためのアクセスが簡素化されます。

Von Bedeutung

2025 年から、Microsoft は Azure CLI やその他のコマンド ライン ツールに必須の MFA を適用します。 MFA は Microsoft Entra ID ユーザー ID にのみ影響します。 サービス プリンシパルやマネージド ID などのワークロード ID には影響しません。

Entra ID とパスワードを使用して az login を使用してスクリプトまたは自動化されたプロセスを認証する場合は、ワークロード ID への移行を今すぐ計画してください。 詳細については、 自動化シナリオでの Azure CLI での多要素認証の影響に関するページを参照してください

[前提条件]

対話型ログイン

対話形式でサインインするには、 az login コマンドを使用します。 Azure CLI バージョン 2.61.0 以降では、Azure CLI では Windows 上の Web アカウント マネージャー (WAM) と Linux および macOS でのブラウザー ベースのログインが既定で使用されます。

az login

サブスクリプション セレクター

Azure CLI バージョン 2.61.0 以降では、複数のサブスクリプションにアクセスできる場合は、次の例に示すように、ログイン時に Azure サブスクリプションを選択するように求められます。

Retrieving subscriptions for the selection...

[Tenant and subscription selection]

No    Subscription name                     Subscription ID                           Tenant name
----  ------------------------------------  ----------------------------------------  --------------
[1]   Facility Services Subscription        00000000-0000-0000-0000-000000000000      Contoso
[2]   Finance Department Subscription       00000000-0000-0000-0000-000000000000      Contoso
[3]   Human Resources Subscription          00000000-0000-0000-0000-000000000000      Contoso
[4] * Information Technology Subscription   00000000-0000-0000-0000-000000000000      Contoso

The default is marked with an *; the default tenant is 'Contoso' and subscription is
'Information Technology Subscription' (00000000-0000-0000-0000-000000000000).

Select a subscription and tenant (Type a number or Enter for no changes): 2

Tenant: Contoso
Subscription: Finance Department Subscription (00000000-0000-0000-0000-000000000000)

[Announcements] With the new Azure CLI login experience, you can select the subscription you want to
use more easily. Learn more about it and its configuration at
https://go.microsoft.com/fwlink/?linkid=2271236

If you encounter any problems, open an issue at https://aka.ms/azclibug

次回サインインすると、以前に選択したテナントとサブスクリプションが既定値としてマークされ、その番号の横にアスタリスク (*) が付きます。 このマーキングを使用すると、Enter キーを押して既定のサブスクリプションを選択できます。

既定では、コマンドは選択したサブスクリプションに対して実行されます。 az account setを使用して、いつでもコマンド ラインからサブスクリプションを変更できます。 詳細については、「 Azure CLI を使用して Azure サブスクリプションを管理する方法」を参照してください。

注意すべきサブスクリプション セレクターに関するいくつかのガイドラインを次に示します。

  • サブスクリプション セレクターは、64 ビット Windows、Linux、または macOS でのみ使用できます。
  • サブスクリプション セレクターは、 az login コマンドを使用する場合にのみ使用できます。
  • サービス プリンシパルまたはマネージド ID を使用してログインするときに、サブスクリプションの選択を求めるメッセージは表示されません。

サブスクリプション セレクター機能を無効にする場合は、 core.login_experience_v2 構成プロパティを off に設定します。

az config set core.login_experience_v2=off
az login

Windows で Web アカウント マネージャー (WAM) を使用してサインインする

Azure CLI バージョン 2.61.0以降では、Web アカウント マネージャー (WAM) が Windows の既定の認証方法です。 WAM は、認証ブローカーとして機能する Windows 10 以降のコンポーネントです。 認証ブローカーは、ユーザーのコンピューター上で実行されるアプリケーションです。 接続されているアカウントの認証ハンドシェイクとトークンのメンテナンスを管理します。

WAM を使用すると、いくつかの利点があります。

  • セキュリティの強化。 「条件付きアクセス: トークン保護 (プレビュー)」を参照してください。
  • Windows Hello、条件付きアクセス ポリシー、および FIDO キーのサポート。
  • 簡易なシングルサインオン。
  • バグ修正と機能強化が Windows に付属して提供される。

問題が発生し、前のブラウザー ベースの認証方法に戻す場合は、 core.enable_broker_on_windows 構成プロパティを false に設定します。

az account clear
az config set core.enable_broker_on_windows=false
az login

WAM は Windows 10 以降と Windows Server 2019 以降で使用できます。

ブラウザーでサインインする

Azure CLI では、次のいずれかの条件に該当する場合、ブラウザー ベースの認証方法が既定で使用されます。

  • オペレーティング システム (OS) が Linux、macOS、または Windows OS が Windows 10 または Windows Server 2019 より前である。
  • core.enable_broker_on_windows構成プロパティは、falseに設定されます。

ブラウザーでサインインするには、次の手順に従います。

  1. az login コマンドを実行します。

    az login
    

    Azure CLI で既定のブラウザーを開くことができる場合は、 承認コード フロー が開始され、既定のブラウザーが開き、Azure サインイン ページが読み込まれます。

    それ以外の場合は、 デバイス コード フロー を開始し、 https://aka.ms/deviceloginでブラウザー ページを開くよう指示します。 次に、ご利用のターミナル内に表示されたコードを入力します。

    Web ブラウザーが使用できない場合、または Web ブラウザーが開かない場合は、 az login --use-device-codeを使用してデバイス コード フローを強制できます。

  2. ブラウザーでアカウントの資格情報を使用してサインインします。

コマンド ラインで資格情報を使用してサインインする

コマンド ラインで、Azure ユーザー資格情報を指定します。 この認証方法は、Azure CLI を対話形式で操作する場合にのみ使用してください。 運用レベルのアプリケーションでは、サービス プリンシパルまたはマネージド ID を使用します。

この方法は、多要素認証 (MFA) が有効になっている Microsoft アカウントまたはアカウントでは機能しません。 "対話型認証が必要です" というメッセージが表示されます。

az login --user <username> --password <password>

Von Bedeutung

az loginを対話形式で使用するときにターミナルにパスワードが表示されないようにするには、Bash で read -s コマンドを使用します。

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

PowerShell で、Get-Credential コマンドレットを使用します。

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

別のテナントでサインインする

--tenant 引数を使用してサインインするテナントを選択できます。 この引数の値には、 .onmicrosoft.com ドメインまたはテナントの Azure オブジェクト ID を指定できます。 対話形式によるサインイン方法とコマンドラインによるサインイン方法は両方とも、--tenant で機能します。

一部の環境で、Azure CLI バージョン 2.61.0 以降では、まず、 core.login_experience_v2 構成プロパティを off に設定して、サブスクリプション セレクターを無効にする必要があります。

# disable the subscription selector (v. 2.61.0 and up)
az config set core.login_experience_v2=off

# login with a tenant ID
az login --tenant 00000000-0000-0000-0000-000000000000

サブスクリプション セレクターを再度適用するには、 az config set core.login_experience_v2=onを実行します。 サブスクリプション セレクターの詳細については、「 対話型ログイン」を参照してください。

サインイン後、アクティブなテナントを変更する場合は、「アクティブな テナントを変更する方法」を参照してください

--scope を使用してサインインする

az login --scope https://management.core.windows.net//.default

サインアウト

Azure からサインアウトするには、 az logout コマンドを使用します。

az logout

サブスクリプション キャッシュをクリアする

サブスクリプションの一覧を更新するには、 az account clear コマンドを使用します。 更新された一覧を表示するには、もう一度サインインする必要があります。

az account clear

az login

サブスクリプション キャッシュのクリアは、技術的には Azure からログアウトするプロセスと同じではありません。 ただし、サブスクリプション キャッシュをクリアすると、もう一度サインインするまで、az account setを含む Azure CLI コマンドを実行することはできません。

更新トークン

ユーザー アカウントでサインインすると、Azure CLI によって、認証更新トークンが生成されて格納されます。 アクセス トークンは短時間だけ有効であるため、更新トークンはアクセス トークンの発行と同時に発行されます。 クライアント アプリケーションでは、必要に応じて、このリフレッシュトークンを新しいアクセス トークンに交換できます。 トークンの有効期間と期限切れの詳細については、「Microsoft ID プラットフォームの更新トークン」を参照してください。

az account get-access-token コマンドを使用して、アクセス トークンを取得します。

# get access token for the active subscription
az account get-access-token

# get access token for a specific subscription
az account get-access-token --subscription "<subscription ID or name>"

アクセス トークンの有効期限に関する追加情報を次に示します。

  • 有効期限は、 MSAL ベースの Azure CLI でサポートされている形式で更新されます。
  • Azure CLI 2.54.0 以降、az account get-access-tokenはトークンの有効期限のexpires_on プロパティと共にexpiresOn プロパティを返します。
  • expires_on プロパティはポータブル オペレーティング システム インターフェイス (POSIX) タイムスタンプを表し、expiresOn プロパティはローカル日時を表します。
  • expiresOnプロパティは、夏時間の終了時に "fold" を表しません。 これにより、夏時間が採用されている国または地域で問題が発生する可能性があります。 "fold" の詳細については、「 PEP 495 – Local Time Disambiguation」を参照してください。
  • ダウンストリーム アプリケーションでは、ユニバーサルタイム コード (UTC) を使用するため、 expires_on プロパティを使用することをお勧めします。

出力例:

{
  "accessToken": "...",
  "expiresOn": "2023-10-31 21:59:10.000000",
  "expires_on": 1698760750,
  "subscription": "...",
  "tenant": "...",
  "tokenType": "Bearer"
}

トラブルシューティング

このサイトの接続がセキュリティで保護されていない

既定のブラウザーが Microsoft Edge の場合、az loginを使用して Azure に対話形式でサインインしようとすると、次のエラーが発生する可能性があります: "このサイトの接続はセキュリティで保護されていません。" この問題を解決するには、Microsoft Edge の edge://net-internals/#hsts にアクセスしてください。 [ドメイン セキュリティ ポリシーの削除] の下に localhost を追加し、[削除] をクリックします。

対話型認証が必要です

このメッセージは、ユーザー ID を使用して Azure に対する認証を行うときに受信します。多要素認証が必要です。 ソリューションは、サービス プリンシパルやマネージド ID などのワークロード ID使用して Azure に対する認証を行います。

テナントに対する認証に失敗しました

このエラーは、1 つの Entra ユーザー ID が複数の Azure テナントに属している場合に発生します。 Azure CLI は、アクセス権を持つテナントをループして認証を試みます。 選択したテナントでログインするには、 --tenant パラメーターを使用します。 詳細については、「 別のテナントでサインインする」を参照してください。

次のステップ