次の方法で共有


Azure CLI を使用した対話形式でのサインイン

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

前提条件

対話型ログイン

対話形式でサインインするには、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設定されます。

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

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

    az login
    

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

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

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

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

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

コマンド ラインで、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 以降では、最初に構成プロパティを 〗にoff設定してサブスクリプション セレクターをcore.login_experience_v2無効にする必要があります。

# 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 account clear コマンドを使用します。 更新された一覧を表示するには、もう一度サインインする必要があります。

az account clear

az login

サブスクリプション キャッシュのクリアは、技術的には Azure からログアウトするプロセスと同じではありません。 ただし、サブスクリプション キャッシュをクリアすると、再びサインインするまで、Azure CLI コマンドを実行できません (例 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トークンの有効期限のプロパティと共にexpiresOnプロパティが返expires_onされます。
  • このプロパティは 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 loginAzure にサインインしようとすると、次のエラーが発生する可能性があります。この問題を解決するには、Microsoft の edge://net-internals/#hsts にアクセスしてください

エッジ。 [ドメイン セキュリティ ポリシーの削除] の下に localhost を追加し、[削除] をクリックします。

関連項目