Azure CLI では、いくつかの認証方法がサポートされています。 Azure リソースをセキュリティで保護するには、ユース ケースのサインインアクセス許可を制限します。
Azure CLI を使用して Azure にサインインする
Azure CLI を使用する場合、次の 4 つの認証オプションがあります。
認証方法 | 長所 |
---|---|
Azure Cloud Shell | Azure Cloud Shell によって自動的にログインされます。これは、最も簡単に開始する方法です。 |
対話形式でサインインする | このオプションは、Azure CLI コマンドを学習し、Azure CLI をローカルで実行する場合に適しています。 az login コマンドを使用すると、ブラウザーからログインします。 対話型ログインでは、既定のサブスクリプションを自動的に設定するためのサブスクリプション セレクターも提供されます。 |
マネージド ID でサインインする | マネージド ID は、 Microsoft Entra 認証をサポートするリソースに接続するときにアプリケーションが使用する Azure マネージド ID を提供します。 マネージド ID を使用すると、シークレット、資格情報、証明書、キーを管理する必要がなくなります。 |
サービス プリンシパルを使用してサインインする | スクリプトを記述する場合は、サービス プリンシパル を使用することが推奨されます。 サービス プリンシパルに必要な適切なアクセス許可のみを付与し、自動化をセキュリティで保護します。 |
多要素認証 (MFA)
2025 年から、Microsoft は Azure CLI やその他のコマンド ライン ツールに必須の MFA を適用します。 MFA は Microsoft Entra ID ユーザー ID にのみ影響します。 サービス プリンシパルやマネージド ID などのワークロード ID には影響しません。
Entra ID とパスワードを使用して az login を使用してスクリプトまたは自動化されたプロセスを認証する場合は、ワークロード ID への移行を今すぐ計画してください。 詳細については、 自動化シナリオでの Azure CLI での多要素認証の影響に関するページを参照してください。
現在のサブスクリプションを検索または変更する
サインインすると、CLI コマンドは既定のサブスクリプションに対して実行されます。 複数のサブスクリプションがある場合は、 az account set --subscription
を使用して既定のサブスクリプションを変更します。
az account set --subscription "<subscription ID or name>"
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
はトークンの有効期限の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"
}
こちらも参照ください
Azure CLI