共用方式為


基於 MSAL 的 Azure CLI

從 2.30.0 版本開始,Azure CLI 使用 Microsoft 認證函式庫 (MSAL) 作為底層認證函式庫。 MSAL 使用 Azure Active Directory v2.0 驗證流程來提供增強的功能,並增加令牌快取的安全性。

Warning

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 上。

Important

在管線中使用 Azure CLI 時,例如 Azure DevOps,請確定所有工作和階段都針對 MSAL 型 Azure CLI 使用 Azure CLI v2.30.0 版或更高版本。 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 來擷取目前登入帳戶的存取令牌。

另請參閱