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

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

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

使用 Azure CLI 登录到 Azure

使用 Azure CIL 时有五个身份验证选项:

身份验证方法 优点
Azure Cloud Shell Azure Cloud Shell 会自动登录,是入门的最简单方法。
以交互方式登录 在学习 Azure CLI 命令并在本地运行 Azure CLI 时,这是一个不错的选择。 使用 az login 命令通过浏览器登录 。 交互式登录还为你提供了自动设置默认订阅的订阅选择器。
使用服务主体登录 编写脚本时,建议的方法是使用服务主体。 授予服务主体所需的最低适当权限,确保自动化的安全性。
使用托管标识登录 开发人员面临着一个共同的挑战,那就是如何管理用于保护服务之间通信安全的机密、凭据、证书和密钥。 使用托管标识无需管理这些凭据。

查找或更改当前订阅

当你登录后,将针对默认订阅运行 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"
}

注意

租户可能具有限制你访问某些资源的条件访问策略,具体取决于你的登录方法。

另请参阅