Přihlášení k Azure pomocí instančního objektu pomocí Azure CLI
Instanční objekty jsou účty, které nejsou vázané na konkrétního uživatele, což může mít oprávnění k nim přiřazená prostřednictvím předdefinovaných rolí. Ověřování pomocí instančního objektu je nejlepší způsob, jak psát bezpečné skripty nebo programy, a umožňuje používat omezení oprávnění i místně uložené statické přihlašovací údaje. Další informace o instančních objektech najdete v tématu Práce s instančními objekty Azure pomocí Azure CLI.
K přihlášení pomocí instančního objektu potřebuje:
- Název nebo identifikátor URL přidružený k instančnímu objektu
- Tajný klíč klienta instančního objektu nebo certifikát X509 použitý k vytvoření instančního objektu ve formátu PEM
- Tenant přidružený k instančnímu objektu jako
.onmicrosoft.com
doména nebo ID tenanta Microsoft Entra
Všimněte si dvou důležitých faktů při práci s instančními objekty a Azure CLI:
Certifikát musí být připojený k privátnímu klíči v rámci souboru PEM. Příklad formátu souboru PEM najdete v tématu Ověřování na základě certifikátu.
Pokud váš instanční objekt používá certifikát uložený ve službě Key Vault, musí být privátní klíč tohoto certifikátu dostupný bez přihlášení k Azure. Informace o načtení certifikátu
az login
najdete v tématu Načtení certifikátu ze služby Key Vault.
Přihlaste se pomocí tajného klíče klienta:
az login --service-principal --username APP_ID --password CLIENT_SECRET --tenant TENANT_ID
Přihlaste se pomocí certifikátu:
az login --service-principal --username APP_ID --certificate /path/to/cert.pem --tenant TENANT_ID
Důležité
Pokud chcete zabránit zobrazování vašeho hesla v konzole a používáte příkaz az login
interaktivně, na příkazovém řádku bash
použijte příkaz read -s
.
read -sp "Azure password: " AZ_PASS && echo && az login --service-principal --username <app-id> --password $AZ_PASS --tenant <tenant>
V PowerShellu použijte rutinu Get-Credential
.
$AzCred = Get-Credential -UserName <app-id>
az login --service-principal --username $AzCred.UserName --password $AzCred.GetNetworkCredential().Password --tenant <tenant>