Een Azure-service-principal gebruiken met verificatie op basis van een wachtwoord

Wanneer u een service-principal maakt, kiest u het type verificatie dat voor aanmelding wordt gebruikt. Er zijn twee typen verificatie beschikbaar voor Azure-service-principals: verificatie op basis van wachtwoorden en verificatie op basis van certificaten. Verificatie op basis van een wachtwoord is handig om te gebruiken bij het leren over service-principals, maar we raden u aan om verificatie op basis van certificaten te gebruiken voor toepassingen.

In deze stap in de zelfstudie wordt uitgelegd hoe u een service-principalwachtwoord gebruikt voor toegang tot een Azure-resource.

Een service-principal met een wachtwoord maken

Het standaardgedrag van az ad sp create-for-rbac is het maken van een service-principal met een willekeurig wachtwoord.

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

Uitvoerconsole:

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

De uitvoer voor een service-principal met wachtwoordverificatie bevat de password sleutel. Zorg ervoor dat u deze waarde kopieert. Deze kan niet worden opgehaald. Als u het wachtwoord kwijtraakt, kunt u de referenties voor de service-principal opnieuw instellen.

Aanmelden met behulp van een service-principal met een wachtwoord

Test de referenties van de nieuwe service-principal en de machtigingen door u met deze referenties aan te melden. Als u zich wilt aanmelden met een service-principal, hebt u de appId (ook wel 'service-principal-id', 'gebruikersnaam' of 'assignee tenant' genoemd) en password. Hier volgt een voorbeeld:

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

Als u uw appId of --tenantniet weet, haalt u deze op met behulp van de az ad sp list opdracht.

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

Als u test in een organisatie waarvoor tweeledige verificatie is vereist, wordt het foutbericht '... Interactieve verificatie is vereist... wordt weergegeven. Als alternatief kunt u een certificaat of beheerde identiteiten gebruiken.

Belangrijk

Als u wilt voorkomen dat uw wachtwoord op de console wordt weergegeven en interactief wordt gebruikt az login , gebruikt u de read -s opdracht in bash.

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

Gebruik de Get-Credential cmdlet in PowerShell.

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

Volgende stappenĀ 

Nu u hebt geleerd hoe u met service-principals kunt werken met behulp van een wachtwoord, gaat u verder met de volgende stap om te leren hoe u service-principals gebruikt met verificatie op basis van certificaten.