Azure CLI を使用して対話形式で Azure にサインインする
Azure への対話的なログインにより、より直感的で柔軟なユーザー エクスペリエンスが得られます。 Azure CLI を使用すると、az login コマンドを使用して Azure に対して直接認証を行うことができます。 このコマンドは、アドホック管理タスクや、多要素認証 (MFA) を使用する場合など、手動サインインを必要とする環境に役立ちます。 この手法ではサービス プリンシパルやその他の非対話型の認証方法を事前構成する必要がないため、スクリプトのテスト、学習、臨機応変な管理のためのアクセスが簡素化されます。
重要
2025 年から、Microsoft は Azure CLI やその他のコマンド ライン ツールに必須の MFA を適用します。 この要件の詳細については、ブログ記事を参照してください。
MFA は、Microsoft Entra ID ユーザー IDにのみ影響します。 サービス プリンシパルの やマネージド ID など、ワークロード ID には影響しません。
entra ID とパスワード az login を使用してスクリプトまたは自動化されたプロセスを認証する場合は、ワークロード ID への移行を今すぐ計画してください。 この変更を行う際に役立つ役立つリンクを次に示します。
- Azure およびその他の管理ポータルの必須多要素認証の計画。
- ユーザーが必須の Microsoft Entra 多要素認証 (MFA) 用に設定されていることを確認する方法
- Microsoft Entra 多要素認証 の展開に関する考慮事項
- フェデレーション を使用した Microsoft Entra 多要素認証への移行
- MFA Server Migration Utility を使用して Microsoft Entra 多要素認証 に移行する方法
前提条件
対話型ログイン
対話形式でサインインするには、 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 problem, please 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) が Mac または Linux であるか、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 を使用します。
この方法は、Microsoft アカウント、または 2 要素認証が有効になっているアカウントでは機能しません。 "対話型認証が必要です" というメッセージが表示されます。
az login --user <username> --password <password>
重要
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
Logout
Azure へのアクセスを削除するには、 az logout コマンドを使用します。
az logout
サブスクリプション キャッシュをクリアする
サブスクリプションの一覧を更新するには、 az アカウントの clear コマンドを使用します。 更新された一覧を表示するには、もう一度サインインする必要があります。
az account clear
az login
サブスクリプション キャッシュのクリアは、技術的には Azure からログアウトするプロセスと同じではありません。 ただし、サブスクリプション キャッシュをクリアすると、もう一度サインインするまで、az account set
を含む Azure CLI コマンドを実行することはできません。
リフレッシュ トークン
ユーザー アカウントでサインインすると、Azure CLI によって、認証更新トークンが生成されて格納されます。 アクセス トークンは有効期間が短いため、アクセス トークンが発行されると同時に更新トークンが発行されます。 クライアント アプリケーションでは、必要に応じて、このリフレッシュトークンを新しいアクセス トークンに交換できます。 トークンの有効期間と期限切れの詳細については、「Microsoft ID プラットフォームの更新トークン」を参照してください。
az アカウント 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 Disaiguationを参照してください。 - ダウンストリーム アプリケーションでは、ユニバーサルタイム コード (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
を追加し、[削除] をクリックします。
関連項目
- Azure CLI オンボード チート シート
- Azure CLI のサンプルと公開されているドキュメントを見つける
Azure CLI