你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 Azure CLI 登录服务主体
服务主体是未绑定到任何特定用户的帐户,这些帐户具有通过预定义角色分配的权限。 使用服务主体进行身份验证是编写安全脚本或程序的最佳方法,因为这样可以同时应用权限限制和本地存储的静态凭据信息。 若要了解有关服务主体的详细信息,请参阅通过 Azure CLI 使用 Azure 服务主体。
若要使用服务主体登录,需要:
- 与该服务主体关联的 URL 或名称
- 该服务主体的密码,或用于创建该服务主体的 X509 证书(PEM 格式)
- 与该服务主体关联的租户(
.onmicrosoft.com
域或 Azure 对象 ID)
使用服务主体和 Azure CLI 时,请注意两个重要事实:
必须将证书追加到 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>