使用 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>
另請參閱
- Azure CLI 上線速查表
- 使用 Azure CLI 管理 Azure 訂用帳戶
- 使用 Azure CLI 建立 Azure 服務主體
- 尋找 Azure CLI 範例 和 已發佈的檔