共用方式為


使用 Azure CLI 透過服務主體登入 Azure

服務主體不是系結至任何特定使用者的帳戶,這些帳戶可以具有透過預先定義角色指派的許可權。 使用服務主體進行驗證是撰寫安全腳本或程式的最佳方式,可讓您同時套用許可權限制和本機儲存的靜態認證資訊。 若要深入瞭解服務主體,請參閱 使用 Azure CLI 使用 Azure 服務主體。

若要使用服務主體登入,您需要:

  • 與服務主體相關聯的 URL 或名稱
  • 服務主體客戶端密碼,或用來以 PEM 格式建立服務主體的 X509 憑證
  • 與服務主體相關聯的租用戶,作為 .onmicrosoft.com 網域或Microsoft Entra 租使用者標識符

使用服務主體和 Azure CLI 時,請注意兩個重要事實:

  • 憑證必須附加至 PEM 檔案內的私鑰。 如需 PEM 檔格式的範例,請參閱 憑證式驗證

  • 如果您的服務主體使用儲存在 金鑰保存庫 中的憑證,則必須使用該憑證的私鑰,而不需登入 Azure。 若要擷az login取的憑證,請參閱從 金鑰保存庫 擷取憑證。

使用用戶端密碼登入:

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>

另請參閱