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

使用 Azure CLI 通过服务主体登录到 Azure

服务主体是未绑定到任何特定用户的帐户,可以通过预定义角色分配权限。 使用服务主体进行身份验证是编写安全脚本或程序的最佳方式。 它允许应用权限限制和本地存储的静态凭据信息。 若要了解有关服务主体的详细信息,请参阅通过 Azure CLI 使用 Azure 服务主体

若要使用服务主体登录,需要:

  • 与服务主体关联的 URL 或名称。
  • 服务主体的客户端密钥或用于以 PEM 格式创建服务主体的 X509 证书。
  • 与服务主体关联的租户,作为 .onmicrosoft.com 域或Microsoft Entra 租户 ID。

使用服务主体和 Azure CLI 时,请注意两个重要事实:

  • 必须将证书附加到 PEM 文件中的私钥中。 如需 PEM 文件格式的示例,请参阅基于证书的身份验证

  • 如果服务主体使用存储在 Key Vault 中的证书,则必须使用该证书的私钥,而无需登录到 Azure。 如果要为 az login 检索证书,请参阅从 Key Vault 检索证书

若要使用客户端密码登录,请使用以下命令:

az login --service-principal --username APP_ID --password CLIENT_SECRET --tenant TENANT_ID

若要使用证书登录,请使用以下命令:

az login --service-principal --username APP_ID --certificate /path/to/cert.pem --tenant TENANT_ID

重要

若要避免在以交互方式使用 az login 控制台中显示密码,请使用 read -s 下面的 bash命令。

read -sp "Azure password: " AZ_PASS && echo && az login --service-principal --username <app-id> --password $AZ_PASS --tenant <tenant>

在 PowerShell 下,请使用 Get-Credential cmdlet。

$AzCred = Get-Credential -UserName <app-id>
az login --service-principal --username $AzCred.UserName --password $AzCred.GetNetworkCredential().Password --tenant <tenant>

另请参阅