你当前正在访问 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 和密码对脚本或自动化过程进行身份验证,请计划立即迁移到工作负荷标识。 下面是一些有用的链接,可帮助你进行此更改:
- 关于 Azure 和其他管理门户的强制性多重身份验证的规划。
- 如何验证用户是否已设置为必备Microsoft Entra多重身份验证 (MFA)
- Microsoft Entra 多重身份验证 的部署注意事项
- 迁移到使用联合身份验证的 Microsoft Entra 多重身份验证
- 如何使用 MFA 服务器迁移实用工具迁移到 Microsoft Entra 多重身份验证
查找或更改当前订阅
登录后,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"
}
注意
根据登录方法,租户可能 条件访问策略 限制对某些资源的访问。
另请参阅
- Azure CLI 载入备忘单
- 使用 Azure CLI 管理 Azure 订阅
- 查找 Azure CLI 和 示例及 已发布的文章。