你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 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 和密码对脚本或自动化过程进行身份验证,请计划立即迁移到工作负荷标识。 下面是一些有用的链接,可帮助你进行此更改:

查找或更改当前订阅

登录后,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"
}

注意

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

另请参阅