共用方式為


MSAL 型 Azure CLI

從 2.30.0 版開始,Azure CLI 會使用 Microsoft 驗證連結庫 (MSAL) 作為基礎驗證連結庫。 MSAL 使用 Azure Active Directory v2.0 驗證流程來提供更多功能,並增加令牌快取的安全性。

警告

Azure CLI 2.30.0 中引進重大變更。 在安裝之前仔細閱讀檔。

accessTokens.json 折舊

舊版的 Azure CLI 會將 Azure AD 驗證 連結庫 (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 ,以取得目前登入帳戶的存取令牌。

另請參閱