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 --tenant
niet 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.