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
を呼び出し、現在ログインしているアカウントのアクセス トークンを取得します。
関連項目
- MSAL
- Python
- Python の AzureCliCredential クラス
- .NET
- .NET の AzureCliCredential クラス
- Java
- Java の AzureCliCredential クラス
Azure CLI