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") tenant
a password
. Tady je příklad:
az login --service-principal \
--username myServicePrincipalId \
--password myServicePrincipalPassword \
--tenant myOrganizationTenantID
Pokud ho neznáte appId
nebo --tenant
ho 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 bash
souboru .
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ů.