使用英语阅读

通过


使用 Azure CLI 向 Azure 进行身份验证

Azure CLI 支持多种身份验证方法。 若要保护 Azure 资源安全,请限制用例的登录权限。

使用 Azure CLI 登录到 Azure

使用 Azure CLI 时,有四种身份验证选项:

身份验证方法 优点
Azure Cloud Shell Azure Cloud Shell 会自动登录你,这是最简单的入门方式。
以交互方式登录 在本地学习 Azure CLI 命令和运行 Azure CLI 时,此选项是很好的。 使用 az login 命令,可以通过浏览器登录。 交互式登录还为你提供了自动设置默认订阅的订阅选择器。
使用托管标识登录 托管标识 为应用程序提供 Azure 托管标识,以便在连接到支持Microsoft Entra 身份验证的资源时使用。 使用托管标识无需管理机密、凭据、证书和密钥。
使用服务主体登录 编写脚本时,建议使用 服务主体 的身份验证方法。 只需向服务主体授予适当的权限,使自动化保持安全。

多重身份验证 (MFA)

从 2025 年开始,Microsoft将为 Azure CLI 和其他命令行工具强制实施强制 MFA。 MFA 只会影响Microsoft Entra ID 用户标识。 它不会影响工作负荷标识,例如 服务主体托管标识

如果您使用 az login 通过 Entra ID 和密码对脚本或自动化过程进行身份验证,请现在计划迁移到工作负载身份标识。 有关详细信息,请参阅 自动化方案中多重身份验证对 Azure CLI 的影响

查找或更改当前订阅

登录后,CLI 命令将针对默认订阅运行。 如果有多个订阅,请使用 az account set --subscription 更改默认订阅。

az account set --subscription "<subscription ID or name>"

若要详细了解如何管理 Azure 订阅,请参阅 如何使用 Azure CLI 管理 Azure 订阅

刷新令牌

使用用户帐户登录时,Azure CLI 将生成并存储身份验证刷新令牌。 由于访问令牌的有效期很短,因此在颁发访问令牌的同时也会颁发刷新令牌。 然后,客户端应用程序可以在需要时使用此刷新令牌交换新的访问令牌。 有关令牌生存期和过期的详细信息,请参阅 Microsoft标识平台中的刷新令牌

使用 az account get-access-token 命令检索访问令牌:

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

下面是有关访问令牌过期日期的一些附加信息:

  • 过期日期以 基于 MSAL 的 Azure CLI 支持的格式进行更新。
  • 从 Azure CLI 2.54.0 开始,az account get-access-token 将返回与令牌过期时间有关的 expires_on 属性和 expiresOn 属性。
  • expires_on 属性表示可移植作系统接口 (POSIX) 时间戳,而 expiresOn 该属性表示本地日期时间。
  • 夏令时结束时,该 expiresOn 属性不表示“折叠”。 这可能会导致采用夏令时的国家/地区出现问题。 有关“折叠”的详细信息,请参阅 PEP 495 – 本地时间消歧
  • 我们建议下游应用程序使用该 expires_on 属性,因为它使用世界时代码(UTC)。

示例输出:

{
  "accessToken": "...",
  "expiresOn": "2023-10-31 21:59:10.000000",
  "expires_on": 1698760750,
  "subscription": "...",
  "tenant": "...",
  "tokenType": "Bearer"
}

备注

根据登录方法,租户可能具有 条件访问策略 来限制对某些资源的访问。

另请参阅