Sdílet prostřednictvím


Použití principálu služby Azure s ověřováním založeným na heslech

Při vytváření služebního principálu zvolíte typ autentifikace přihlašování, který používá. Pro instanční objekty Azure jsou k dispozici dva typy ověřování: ověřování založené na heslech a ověřování na základě certifikátů. Ověřování založené na heslech je vhodné použít při učení o instančních objektech, ale pro aplikace doporučujeme používat ověřování založené na certifikátech .

Tento krok kurzu vysvětluje, jak použít heslo služebního objektu pro přístup k prostředku Azure.

Vytvořte služební principál obsahující heslo

Výchozí chování příkazu az ad sp create-for-rbac je vytvoření služebního účtu s náhodným heslem.

az ad sp create-for-rbac --name myServicePrincipalName \
                         --role reader \
                         --scopes /subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName

Výstupní konzola:

{
  "appId": "myServicePrincipalId",
  "displayName": "myServicePrincipalName",
  "password": "myServicePrincipalPassword",
  "tenant": "myOrganizationTenantId"
}

Výstup principálu služby s ověřováním hesla zahrnuje password klíč. Ujistěte se, že tuto hodnotu zkopírujete – následně ji nelze získat. Pokud heslo ztratíte, resetujte přihlašovací údaje aplikační identity.

Přihlášení pomocí instančního objektu pomocí hesla

Otestujte přihlašovací údaje a oprávnění nového služebního principálu tím, že se přihlásíte. Pokud se chcete přihlásit pomocí služebního principálu, potřebujete appId (také označovaný jako "ID služebního principálu", "uživatelské jméno" nebo "assignee"), tenant a password. Tady je příklad:

az login --service-principal \
         --username myServicePrincipalId \
         --password myServicePrincipalPassword \
         --tenant myOrganizationTenantID

Pokud neznáte appId nebo --tenant, načtěte ho pomocí příkazu az ad sp list.

spID=$(az ad sp list --display-name myServicePrincipalName --query "[].{spID:appId}" --output tsv)
tenantID=$(az ad sp list --display-name myServicePrincipalName --query "[].{tenant:appOwnerOrganizationId}" --output tsv)
echo "Using appId $spID in tenant $tenantID"

az login --service-principal \
         --username $spID \
         --password {paste your password here} \
         --tenant $tenantID

Pokud testujete v organizaci, která vyžaduje dvoufaktorové ověřování, chybová zpráva ... Vyžaduje se interaktivní ověřování..." se zobrazí. Jako alternativu použijte certifikát nebo spravované identity.

Důležité

Pokud se chcete vyhnout zobrazení hesla v konzole a používáte az login interaktivně, použijte read -s příkaz v bashsouboru .

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

V PowerShellu použijte rutinu Get-Credential .

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

Další kroky

Teď, když jste se naučili pracovat s instančními objekty pomocí hesla, přejděte k dalšímu kroku a zjistěte, jak používat instanční objekty s ověřováním pomocí certifikátů.