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
に設定されます。
ブラウザーでサインインするには、次の手順に従います。
az login
コマンドを実行します。az login
Azure CLI で既定のブラウザーを開くことができる場合は、 承認コード フロー が開始され、既定のブラウザーが開き、Azure サインイン ページが読み込まれます。
それ以外の場合は、 デバイス コード フロー を開始し、 https://aka.ms/deviceloginでブラウザー ページを開くよう指示します。 次に、ご利用のターミナル内に表示されたコードを入力します。
Web ブラウザーが使用できない場合、または Web ブラウザーが開かない場合は、
az login --use-device-code
を使用してデバイス コード フローを強制できます。ブラウザーでアカウントの資格情報を使用してサインインします。
コマンド ラインで資格情報を使用してサインインする
コマンド ラインで、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
パラメーターを使用します。 詳細については、「 別のテナントでサインインする」を参照してください。
次のステップ
- チュートリアル: Azure CLI の使い方を学ぶ
- Azure CLI のサンプルと公開されているドキュメントを見つける
Azure CLI