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

身份验证方法

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

使用 Azure CLI 登录到 Azure

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

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

查找或更改当前订阅

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

注意

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

另请参阅