Použití instančního objektu Azure s ověřováním založeným na heslech

Při vytváření instančního objektu zvolíte typ ověřování při přihlašování, který bude používat. 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 v tomto kurzu vysvětluje, jak použít heslo instančního objektu pro přístup k prostředku Azure.

Vytvoření instančního objektu obsahujícího heslo

Výchozím chováním příkazu az ad sp create-for-rbac je vytvoření instančního objektu 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 instančního objektu s ověřováním hesla zahrnuje password klíč. Ujistěte se, že tuto hodnotu zkopírujete – nedá se načíst. Pokud heslo ztratíte, resetujte přihlašovací údaje instančního objektu.

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

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

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

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

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ů.