Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
När du skapar ett huvudnamn för tjänsten väljer du den typ av inloggningsautentisering som används. Det finns två typer av autentisering som är tillgängliga för Azure-tjänstens huvudnamn: lösenordsbaserad autentisering och certifikatbaserad autentisering. Lösenordsbaserad autentisering är bra att använda när du lär dig mer om tjänstens huvudnamn, men vi rekommenderar att du använder certifikatbaserad autentisering för program.
Det här steget i självstudien beskriver hur du använder ett lösenord för tjänstens huvudnamn för att komma åt en Azure-resurs.
Skapa ett huvudnamn för tjänsten som innehåller ett lösenord
Standardbeteende för az ad sp create-for-rbac är att skapa ett tjänstehuvudnamn med ett slumpmässigt lösenord.
az ad sp create-for-rbac --name myServicePrincipalName \
                         --role reader \
                         --scopes /subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName
Utdatakonsol:
{
  "appId": "myServicePrincipalId",
  "displayName": "myServicePrincipalName",
  "password": "myServicePrincipalPassword",
  "tenant": "myOrganizationTenantId"
}
Utdata för en tjänstprincipal med lösenordsautentisering inkluderar password nyckeln. Se till att du kopierar det här värdet – det kan inte hämtas. Om du förlorar lösenordet, återställ tjänstens huvudautentiseringsuppgifter.
Logga in med ett huvudnamn för tjänsten med ett lösenord
Testa det nya service principalens autentiseringsuppgifter och behörigheter genom att logga in. För att logga in med ett tjänstens huvudobjekt behöver du appId (även kallat "tjänstehuvudets ID", "användarnamn" eller "tilldelare"), tenant och password. Här är ett exempel:
az login --service-principal \
         --username myServicePrincipalId \
         --password myServicePrincipalPassword \
         --tenant myOrganizationTenantID
Om du inte känner till din appId eller --tenant, kan du hämta den med hjälp av az ad sp list kommandot.
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
Om du testar i en organisation som kräver tvåfaktorautentisering får du felmeddelandet "... Interaktiv autentisering krävs..." visas. Alternativt kan du använda ett certifikat eller hanterade identiteter.
Viktigt!
Om du vill undvika att visa lösenordet i konsolen och använder az login interaktivt använder du read -s kommandot i bash.
read -sp "Azure password: " AZ_PASS && echo && az login --service-principal -u <app-id> -p $AZ_PASS --tenant <tenant>
Använd cmdleten i Get-Credential PowerShell.
$AzCred = Get-Credential -UserName <app-id>
az login --service-principal -u $AzCred.UserName -p $AzCred.GetNetworkCredential().Password --tenant <tenant>
Nästa steg
Nu när du har lärt dig hur du arbetar med tjänstens huvudnamn med hjälp av ett lösenord går du vidare till nästa steg för att lära dig hur du använder tjänstens huvudnamn med certifikatbaserad autentisering.