你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 Azure CLI 登录
Azure 命令行接口 (CLI) 具有多种身份验证类型,那么应如何登录? 最简单的入门方法是使用 Azure Cloud Shell,这样可以自动登录。 在本地,可以通过浏览器使用 az login 命令以交互方式登录。 编写脚本时,建议的方法是使用服务主体。 通过授予服务主体所需的最低适当权限,可以确保自动化的安全性。
使用用户帐户登录时,Azure CLI 会生成身份验证刷新令牌并将其存储下来。 有关刷新和会话令牌配置的详细信息,请参阅刷新和会话令牌生存期策略属性。
当你登录后,将针对默认订阅运行 CLI 命令。 如果你有多个订阅,可以更改默认订阅。
注意
租户可能具有限制你访问某些资源的条件访问策略,具体取决于你的登录方法。
以交互方式登录
Azure CLI 的默认登录身份验证方法是使用 Web 浏览器和访问令牌进行登录。
运行
login
命令。az login
如果 CLI 可以打开默认浏览器,则它会初始化授权代码流,并打开默认浏览器来加载 Azure 登录页面。
否则,它会启动设备代码流,并指示你打开浏览器页面 (https://aka.ms/devicelogin) 和输入终端中显示的代码。
如果没有可用的 Web 浏览器或 Web 浏览器无法打开,可通过 az login --use-device-code 强制使用设备代码流。
在浏览器中使用帐户凭据登录。
在命令行中使用凭据登录。
在命令行中提供 Azure 用户凭据。
注意
此方法不适用于 Microsoft 帐户或已启用双重身份验证的帐户。
az login -u <username> -p <password>
重要
如果想要避免在控制台中显示自己的密码并以交互方式使用 az login
,请在 bash
下面使用 read -s
命令。
read -sp "Azure password: " AZ_PASS && echo && az login -u <username> -p $AZ_PASS
在 PowerShell 下,请使用 Get-Credential
cmdlet。
$AzCred = Get-Credential -UserName <username>
az login -u $AzCred.UserName -p $AzCred.GetNetworkCredential().Password
使用服务主体进行登录
服务主体是未绑定到任何特定用户的帐户,这些帐户具有通过预定义角色分配的权限。 使用服务主体进行身份验证是编写安全脚本或程序的最佳方法,因为这样可以同时应用权限限制和本地存储的静态凭据信息。 若要了解有关服务主体的详细信息,请参阅通过 Azure CLI 使用 Azure 服务主体。
若要使用服务主体登录,需要:
- 与该服务主体关联的 URL 或名称
- 该服务主体的密码,或用于创建该服务主体的 X509 证书(PEM 格式)
- 与该服务主体关联的租户(
.onmicrosoft.com
域或 Azure 对象 ID)
注意
必须将证书追加到 PEM 文件中的私钥之后。 如需 PEM 文件格式的示例,请参阅基于证书的身份验证。
重要
如果服务主体使用 Key Vault 中存储的证书,则该证书的私钥必须在未登录到 Azure 的情况下可用。 如果要为 az login
检索证书,请参阅从 Key Vault 检索证书。
az login --service-principal -u <app-id> -p <password-or-cert> --tenant <tenant>
重要
如果想要避免在控制台中显示自己的密码并以交互方式使用 az login
,请在 bash
下面使用 read -s
命令。
read -sp "Azure password: " AZ_PASS && echo && az login --service-principal -u <app-id> -p $AZ_PASS --tenant <tenant>
在 PowerShell 下,请使用 Get-Credential
cmdlet。
$AzCred = Get-Credential -UserName <app-id>
az login --service-principal -u $AzCred.UserName -p $AzCred.GetNetworkCredential().Password --tenant <tenant>
有关 PEM 文件格式的详细信息,请参阅使用服务主体。
使用其他租户登录
可以使用 --tenant
参数选择用于登录的租户。 此参数的值可以是 .onmicrosoft.com
域或租户的 Azure 对象 ID。 交互式登录方法和命令行登录方法都可以配合 --tenant
来使用。
az login --tenant <tenant>
使用托管标识登录
在已针对 Azure 资源托管标识进行了配置的资源上,可以使用托管标识进行登录。 使用资源的标识登录是通过 --identity
标志执行的。
az login --identity
如果资源具有多个用户分配的托管标识,但没有系统分配的标识,则你必须使用 --username
指定用户分配的托管标识的客户端 ID、对象 ID 或资源 ID 来进行登录。
az login --identity --username <client_id|object_id|resource_id>
若要了解有关 Azure 资源托管标识的详细信息,请参阅配置 Azure 资源的托管标识和使用 Azure 资源的托管标识进行登录。
使用 Web 帐户管理器 (WAM) 登录
Azure CLI 现在提供对 Web 帐户管理器 (WAM) 的预览支持。 WAM 是充当身份验证代理的 Windows 10+ 组件。 (身份验证代理是在用户计算机上运行的应用程序,用于管理已连接帐户的身份验证握手和令牌维护。)
使用 WAM 具有以下几个好处:
- 安全性增强。 请参阅条件访问:令牌保护(预览版)。
- 支持 Windows Hello、条件访问策略和 FIDO 密钥。
- 简化的单一登录。
- Windows 附带的 Bug 修复和增强功能。
使用 WAM 登录是一项选择加入的预览功能。 启用后,以前基于浏览器的用户界面将被替换。
az config set core.allow_broker=true
az account clear
az login
在目前的开发阶段,WAM 还存在一些已知的局限性:
- WAM 适用于 Windows 10 及更高版本,以及 Windows Server 2019 及更高版本。 在 Mac、Linux 和早期版本的 Windows 上,我们会自动回退到浏览器。
- 目前不支持 Microsoft 帐户(例如,@outlook.com 或 @live.com))。 我们正在与 Microsoft 标识团队合作,以在未来提供支持。