您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn.

迁移到 Azure 标识

Azure CLI beta 版本内部将 Azure Active Directory 身份验证库 (ADAL) 替换为 Azure 标识和 Microsoft 身份验证库 (MSAL)。 执行任何需要凭据的命令时,会将现有 ADAL 令牌缓存 (~/.azure/accessToken.json) 自动迁移到 MSAL 加密的令牌缓存。

本文详细介绍了此中断性变更,并举例说明了如何在 Azure CLI beta 版本中获取访问令牌。

beta 版本中断性变更

当前 Azure CLI 将 ADAL 刷新令牌和访问令牌保存到 ~/.azure/accessToken.json。 成功登录后,Azure CLI beta 版本使用 MSAL,且不再生成 accessTokens.json。 令牌将保存到名为 msal.cache 的 MSAL 共享令牌缓存。 若要获取访问令牌,请改用 az account get-access-token

将在 Windows、macOS 和 Linux 上通过桌面环境加密 MSAL 令牌缓存;因此,直接访问 MSAL 令牌缓存将不起作用。 依赖于 accessTokens.json 的任何现有工作流都将停止工作。

要考虑的替代方式

调用 az account get-access-token

可在终端中手动调用 az account get-access-token,或使用子进程由另一种编程语言调用它。 默认情况下,返回的令牌适用于 az account show 中显示的默认订阅/租户。

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

# get access token for the default subscription
az account get-access-token

# get access token for a specific subscription
az account get-access-token --subscription "mySubscriptionName"
使用 AzureCliCredential

AzureCliCredential 是所有现有语言 SDK 中的凭据类型。 它在内部使用子过程调用 az account get-access-token 来从当前已登录的 CLI 帐户获取访问令牌。

访问共享的 MSAL 缓存

第一方应用可以使用来自 Azure 标识 SDK 的 SharedTokenCacheCredential 直接访问共享的 MSAL 缓存。

请参阅