Azure PowerShell に対話的にサインインする

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

前提条件

対話型ログイン

対話形式でサインインするには、Connect-AzAccount コマンドレットを使用します。 Az PowerShell モジュール バージョン 12.0.0 以降、Windows システムでは Web アカウント マネージャー (WAM) が使用され、Linux および macOS システムでは既定でブラウザーベースのログインが使用されます。

Connect-AzAccount

ログイン エクスペリエンス

Az PowerShell モジュール バージョン 12.0.0 以降では、ユーザーが複数のサブスクリプションへのアクセス権を持っている場合、次の例に示すように、ログインする Azure サブスクリプションを選択するように求められます。

Please select the account you want to login with.

Retrieving subscriptions for the selection...
WARNING: To override which subscription Connect-AzAccount selects by default, use
`Update-AzConfig -DefaultSubscriptionForLogin 00000000-0000-0000-0000-000000000000`.
Go to https://go.microsoft.com/fwlink/?linkid=2200610 for more information.
[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

Select a tenant and subscription: 2

Subscription name                       Tenant name
------------------------------------    --------------------------
Finance Department Subscription         Contoso

[Announcements]
With the new Azure PowerShell 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.
Share your feedback regarding your experience with `Connect-AzAccount` at: https://aka.ms/azloginfeedback

If you encounter any problem, please open an issue at: https://aka.ms/azpsissue

Subscription name                      Tenant
-----------------                      ------
Finance Department Subscription        Contoso

次回のログイン時には、以前に選択したテナントとサブスクリプションが既定値として番号の横のアスタリスク (*) によってマークされ、シアン ブルー色で強調表示されます。 これにより、Enter キーを押して既定値を選択するか、別のテナントとサブスクリプションを選択するための番号を入力することができます。

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
'Finance Department Subscription (00000000-0000-0000-0000-000000000000)'.

Select a tenant and subscription (type a number or Enter to accept default): 4

Subscription name                       Tenant name
------------------------------------    --------------------------
Information Technology Subscription     Contoso

既定では、このサブスクリプションに対してコマンドが実行されます。 アクティブなサブスクリプションを変更するには、Set-AzContext コマンドレットを使用します。 詳しくは、「Azure PowerShell コンテキスト オブジェクト」をご覧ください。

ログインの既定のサブスクリプションを構成する

対話形式でログインするたびにサブスクリプションの選択を求められることを回避するには、次の例に示すように、Update-AzConfig コマンドレットを使用して既定のサブスクリプションを設定します。

Update-AzConfig -DefaultSubscriptionForLogin '<subscription name or id>'

新しいログイン エクスペリエンスを無効にする

新しいログイン エクスペリエンスを無効にするには、次の例に示すように Update-AzConfig コマンドレットを使用します。

Update-AzConfig -LoginExperienceV2 Off

新しいログイン エクスペリエンスが無効であり、ユーザーが複数のサブスクリプションへのアクセス権を持っている場合、ユーザーは Azure が返す最初のサブスクリプションにサインインされます。 既定では、このサブスクリプションに対してコマンドが実行されます。 セッションのアクティブ サブスクリプションを変更するには、Set-AzContext コマンドレットを使用します。 アクティブなサブスクリプションを変更し、同じシステム上のセッション間で永続化するには、Select-AzContext コマンドレットを使用します。

Web アカウント マネージャー (WAM)

Az PowerShell モジュール バージョン 12.0.0 以降では、Windows ベースのシステムでの Azure PowerShell の既定のログイン認証方法は Web アカウント マネージャー (WAM) です。

WAM は、認証ブローカーとして機能する Windows 10 以降のコンポーネントです。 認証ブローカーとは、接続されたアカウントの認証ハンドシェイクとトークン メンテナンスを管理するユーザーのマシン上で実行されるアプリケーションです。

WAM の利点

WAM を使用すると、次のような利点があります。

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

WAM の制限事項

開発の現段階では、WAM にはいくつかの既知の制限があります。

  • WAM は Windows 10 以降と Windows Server 2019 以降で利用できます。 Linux、macOS、およびそれ以前のバージョンの Windows では、Azure PowerShell は既定値がブラウザーベースのログインに自動的に設定されます。

  • WAM を使用したナショナル クラウドへのログインは現在サポートされていません。

  • Microsoft アカウント (たとえば、@outlook.com や @live.com) を MFA と共に使用する場合は、テナントを指定する必要があります。

    Connect-AzAccount -Tenant 00000000-0000-0000-0000-000000000000
    

WAM を無効にする

Windows 10 以降または Windows Server 2019 以降の Az 12.0.0 以上でブラウザーベースのログインを使用するには、Azure PowerShell での WAM の使用を無効にする必要があります。 次のコマンドを使用して WAM を無効にし、Az 12.0.0 より前における既定値であるブラウザーベースのログインに戻します。

Update-AzConfig -EnableLoginByWam $false

ブラウザーベースのログイン

ブラウザーベースのログインは、Linux、macOS、および Windows 10 または Windows Server 2019 より古い Windows システムでの既定の対話型ログインです。 Az PowerShell モジュール バージョン 12.0.0 以降、Windows ベースのシステムでは、Az 12.0.0 より前の既定値であったブラウザーベースのログインを使用するには、Azure PowerShell の WAM を無効にする必要があります。

Connect-AzAccount コマンドレットを使用して対話形式でサインインすると、ブラウザーベースのログインは、既定の Web ブラウザーを開いて Azure サインイン ページを読み込みます。 ブラウザーで Azure アカウントの資格情報を使用してサインインします。

Azure PowerShell で既定のブラウザーを開くことができる場合は、認可コード フローが開始され、既定のブラウザーが開いて Azure サインイン ページが読み込まれます。 それ以外の場合は、ブラウザー ページを microsoft.com/devicelogin で開き、PowerShell セッション内に表示されたコードを入力するようにユーザーに指示するデバイス コード フローを開きます。

デバイス コード認証

Web アカウント マネージャーまたは Web ブラウザーが利用できない、または開かない場合は、UseDeviceAuthentication パラメーターを指定することでデバイス コード フローを強制することができます。

Connect-AzAccount -UseDeviceAuthentication

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

アカウントが複数のテナントに関連付けられている場合は、サインインで、接続時に Tenant パラメーターを指定する必要があります。 このパラメーターは、どのサインイン方法でも機能します。 ログイン時、テナントの Azure オブジェクト ID (テナント ID) またはテナントの完全修飾ドメイン名がこのパラメーター値になります。

Connect-AzAccount -Tenant 00000000-0000-0000-0000-000000000000

各国のクラウドにサインインする

各国のクラウド (ソブリン クラウドとも呼ばれる) は、地理的な境界線内でデータ所在地、主権、コンプライアンス要件が尊重されるように設計された、物理的に隔離された Azure のインスタンスです。 各国のクラウド内のアカウントの場合は、サインインするときに Environment パラメーターで環境を設定します。 このパラメーターは、どのサインイン方法でも機能します。 たとえば、ご自身のアカウントが Azure China 21Vianet にある場合は、次のコマンドを使用します。

Connect-AzAccount -Environment AzureChinaCloud

次のコマンドを実行することで、利用可能なナショナル クラウド環境の一覧を取得できます。

Get-AzEnvironment | Select-Object -Property Name

関連項目