Azure CLI を使用して Azure に対する認証を行う

Azure CLI では、複数の認証方法がサポートされています。 ユース ケースに対してサインイン アクセス許可を制限すると、Azure リソースのセキュリティを維持できます。

Azure CLI を使用して Azure にサインインする

Azure CLI を使用する場合、次の 5 つの認証オプションがあります。

認証方法 利点
Azure Cloud Shell Azure Cloud Shell によって自動的にログインが行われ、最も簡単に作業を開始できます。
対話操作でサインインする これは、Azure CLI コマンドを学習する場合、および Azure CLI をローカルで実行する場合に適したオプションです。 az login コマンドを使用してブラウザーから ログイン します。
対話形式でサインインする (プレビュー) このオプションを選択すると、az login コマンドを使用するときにサブスクリプションを選択するように求められます。
サービス プリンシパルを使用してサインインする スクリプトを作成する場合、サービス プリンシパルを使用することをお勧めします。 サービス プリンシパルで自動化の安全性を維持するために必要とされる適切なアクセス許可のみを付与します。
マネージド ID を使用してサインインする サービス間の通信をセキュリティで保護するために使用されるシークレット、資格情報、証明書、キーの管理は、開発者にとって共通の課題です。 マネージド ID を使用すると、開発者はこれらの資格情報を管理する必要がなくなります。
Web アカウント マネージャー (WAM) を使用してサインインする WAM は、認証ブローカーとして機能する Windows 10 以降のコンポーネントです。 WAM を使用すると、セキュリティが強化されます。また、拡張機能が Windows に付属して提供されます。

現在のサブスクリプションを検索または変更する

サインインすると、CLI コマンドが既定のサブスクリプションに対して実行されます。 複数のサブスクリプションがある場合は、次を使用して既定のサブスクリプションを az account set --subscription変更します。

az account set --subscription "<subscription ID or name>"

もう 1 つのオプションは、Azure CLI 2.59.0 の認証プレビューを使用することです。 認証プレビューでは、ログイン時にテナントとサブスクリプションの一覧が提供され、既定のサブスクリプションを選択するように求められます。

Azure サブスクリプションの管理の詳細については、「Azure CLI を使用して Azure サブスクリプションを管理する方法」を参照してください。

リフレッシュ トークン

ユーザー アカウントでサインインすると、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"
}

Note

サインイン方法によっては、テナントに、特定のリソースへのアクセスを制限する条件付きアクセス ポリシーが設定されている場合があります。

関連項目