MSAL ベースの Azure CLI

バージョン 2.30.0 以降の Azure CLI は、基になる認証ライブラリとして Microsoft Authentication Library (MSAL) が使用されます。 MSAL では、Azure Active Directory (Azure AD) v2.0 認証フローを使用してより多くの機能が提供され、トークン キャッシュのセキュリティが強化されます。

警告

Azure CLI 2.30.0 では、破壊的変更が導入されています。 インストールする前に、ドキュメントをよく読んでください。

accessTokens.json の非推奨

以前のバージョンの Azure CLI では、Azure AD Authentication ライブラリ (ADAL) トークンとサービス プリンシパル エントリが に ~/.azure/accessToken.json 保存されていました。 最新バージョンの Azure CLI では、MSAL が使用され、accessTokens.json は生成されなくなりました。 accessTokens.json に依存する既存のワークフローは動作しなくなります。

MSAL トークン キャッシュとサービス プリンシパルのエントリは、Windows 上では暗号化されたファイルとして、Linux および macOS 上ではプレーンテキスト ファイルとして保存されます。

重要

Azure DevOps などのパイプラインで Azure CLI を使用する場合は、すべてのタスクまたはステージで、MSAL ベースの Azure CLI に v2.30.0 より後のバージョンの Azure CLI を使用する必要があります。 Azure CLI 2.30.0 は以前のバージョンとの下位互換性がないので、2.30.0 未満のバージョンを使用すると、エラーが発生します。

考慮すべき選択肢

安定性について検討できる代替手段は次のとおりです:

az account get-access-token を呼び出す

ターミナルで手動で呼び出 az account get-access-token すか、サブプロセスを使用して別のプログラミング言語から呼び出すことができます。 既定では、返されるアクセス トークンは Azure Resource Manager (ARM) 用であり、az account show に表示される既定のサブスクリプションまたはテナントです。

# get the active subscription
az account show --output table

# 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>"

アクセス トークンの詳細については、「Azure CLI を使用したサインイン」を参照してください

AzureCliCredential の使用

AzureCliCredential は、既存のすべての言語 SDK の資格情報の種類です。 サブプロセスを使用して az account get-access-token を呼び出し、現在ログインしているアカウントのアクセス トークンを取得します。

関連項目