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.
Automatiserade verktyg som använder Azure-tjänster bör alltid ha begränsade behörigheter för att säkerställa att Azure-resurser är säkra. I stället för att låta program logga in som en fullständigt privilegierad användare erbjuder Azure därför serviceprincipaler. En Azure-tjänstprincip är en identitet skapad för att användas med applikationer, värdtjänster och automatiserade verktyg. Den här identiteten används för att komma åt resurser.
I den här tutorialen lär du dig följande:
- Skapa ett huvudnamn för tjänsten
- Logga in med tjänstens huvudnamn och lösenord
- Logga in med tjänstens huvudnamn och certifikat
- Hantera tjänstens huvudidentitetroller
- Skapa en Azure-resurs med hjälp av tjänstens huvudnamn
- Återställa autentiseringsuppgifter för tjänstens huvudnamn
Förutsättningar
- I en prenumeration måste du ha
User Access Administrator
- ellerRole Based Access Control Administrator
-behörighet, eller högre, för att skapa en tjänstehuvudman. En lista över roller som är tillgängliga för rollbaserad åtkomstkontroll i Azure (Azure RBAC) finns i Inbyggda Roller i Azure.
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Kom igång med Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör på Windows eller macOS, överväg att köra Azure CLI i en Docker-container. För mer information, se Hur man kör Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. För att slutföra autentiseringsprocessen, följ stegen som visas i din terminal. Andra inloggningsalternativ finns i Autentisera till Azure med Azure CLI.
När du blir uppmanad, installera Azure CLI-tillägget vid första användning. Mer information om tillägg finns i Använda och hantera tillägg med Azure CLI.
Kör az version för att ta reda på versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
Skapa ett huvudnamn för tjänsten
Använd azure CLI-referenskommandot az ad sp create-for-rbac för att skapa ett huvudnamn för tjänsten.
Det här exemplet anger --name
ingen parameter, så ett namn som innehåller en tidsstämpel skapas automatiskt.
az ad sp create-for-rbac
Utdatakonsol:
{
"appId": "myAppId",
"displayName": "myServicePrincipalName",
"password": "myServicePrincipalPassword",
"tenant": "myTentantId"
}
Om du inte följer namngivningskonventionerna för resurser och planerar att skapa en roll och omfång för det nya tjänstens az ad sp create-for-rbac
huvudnamn senare är kommandot utan parametrar en acceptabel lösning. Men utan en roll och omfattning kan den nya tjänstehuvudmannen inte få åtkomst till resurser. Den finns bara.
När du skapar ett huvudnamn för tjänsten utan parametrar utför du även följande steg:
- Registrera ditt systemtilldelade lösenord eftersom du inte kan hämta det igen. Om du förlorar lösenordet kan du återställa det med hjälp av az ad sp credential reset enligt förklaringen i Återställ tjänstens huvudnamn-uppgifter.
- Ange rolltilldelningen för det nya tjänstens huvudnamn med hjälp av az role assignment create enligt beskrivningen i Hantera roller för tjänstens huvudnamn.
Anmärkning
Om ditt konto inte har behörighet att skapa ett tjänstehuvudnamn, returnerar az ad sp create-for-rbac
ett felmeddelande som innehåller "Otillräckliga behörigheter för att slutföra åtgärden". Kontakta din Microsoft Entra-administratör för att skapa ett tjänstehuvudkonto.
I en Microsoft Entra-ID-katalog där användarinställningen Användare kan registrera program har angetts till Nej, måste du vara medlem i någon av följande inbyggda Microsoft Entra-ID-roller (som har åtgärden: microsoft.directory/applications/createAsOwner
eller microsoft.directory/applications/create
):
- Programutvecklare
- Programadministratör
- Applikationsadministratör för molnet
- Global Administratör
- Hybrididentitetsadministratör
Mer information om användarinställningar i Microsoft Entra-ID finns i Begränsa vem som kan skapa program.
Skapa ett huvudnamn för tjänsten med roll och omfång
Vi rekommenderar att du alltid tilldelar en specifik --role
och --scopes
när du skapar ett huvudnamn för tjänsten. Följ dessa steg:
Fastställ rätt roll.
När du bestämmer rollen ska du alltid använda principen om minsta behörighet. Ge till exempel inte tjänstens huvudnamn
contributor
behörighet till en prenumeration om tjänstens huvudnamn bara behöver komma åt Azure Storage i en resursgrupp. Överväg en specialiserad roll som datamedarbetare för lagringsblobbar. En fullständig lista över tillgängliga roller i Azure RBAC finns i Inbyggda Azure-roller.Hämta ett värde för parametern scopes.
Hitta och kopiera resurs-ID:t för den Azure-resurs som den nya tjänstehuvudmannen behöver åtkomst till. Den här informationen finns vanligtvis på sidan egenskaper eller slutpunkter för varje resurs i Azure Portal. Här är vanliga
--scopes
exempel, men förlita dig på ditt resurs-ID för ett faktiskt format och värde.Omfång Exempel Prenumeration /subscriptions/mySubscriptionID
Resursgrupp /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName
Virtuell dator /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myVMname
Lagringskontoens filservice /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Storage/storageAccounts/myStorageAccountName/fileServices/default
Datafabrik /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.DataFactory/factories/myDataFactoryName
Fler omfångsexempel finns i Förstå omfång för Azure RBAC.
Skapa tjänstens huvudnamn.
I det här exemplet skapas ett nytt tjänsthuvudnamn med namnet myServicePrincipalName1 med läsbehörighet till alla resurser i resursgruppen RG1.
# Bash script az ad sp create-for-rbac --name myServicePrincipalName1 \ --role reader \ --scopes /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG1
Parametern
--scopes
accepterar en utrymmesavgränsad lista med omfång. I det här exemplet skapas ett nytt huvudnamn för tjänsten myServicePrincipalName2 med läsbehörighet till alla resurser i resursgruppen myRG1. Tjänstens principal ges också läsbehörighet till myVM som finns i myRG2.# Bash script az ad sp create-for-rbac --name myServicePrincipalName2 \ --role reader \ --scopes /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG2/providers/Microsoft.Compute/virtualMachines/myVM
Om du bestämmer dig för att du har beviljat för få eller för många behörigheter till det nya tjänstens huvudnamn ändrar du behörigheterna genom att hantera tjänstens huvudnamnsroller.
Skapa ett huvudnamn för tjänsten med hjälp av variabler
Du kan också skapa ett huvudnamn för tjänsten med hjälp av variabler:
# Bash script
let "randomIdentifier=$RANDOM*$RANDOM"
servicePrincipalName="msdocs-sp-$randomIdentifier"
roleName="azureRoleName"
subscriptionID=$(az account show --query id --output tsv)
# Verify the ID of the active subscription
echo "Using subscription ID $subscriptionID"
resourceGroup="myResourceGroupName"
echo "Creating SP for RBAC with name $servicePrincipalName, with role $roleName and in scopes /subscriptions/$subscriptionID/resourceGroups/$resourceGroup"
az ad sp create-for-rbac --name $servicePrincipalName \
--role $roleName \
--scopes /subscriptions/$subscriptionID/resourceGroups/$resourceGroup
En fullständig lista över egenskaper för tjänstens huvudnamn finns i az ad sp list ( Hämta ett befintligt huvudnamn för tjänsten).
Varning
När du skapar ett tjänsthuvudnamn i Azure med az ad sp create-for-rbac
-kommandot, innehåller utdata autentiseringsuppgifter som du måste skydda. Se till att du inte inkluderar dessa autentiseringsuppgifter i din kod eller kontrollera autentiseringsuppgifterna i källkontrollen. Alternativt bör du överväga att använda hanterade identiteter om det är tillgängligt för att undvika behovet av att använda autentiseringsuppgifter.
Nästa steg
Nu när du har lärt dig hur du skapar ett Huvudnamn för Azure-tjänsten går du vidare till nästa steg för att lära dig hur du använder tjänstens huvudnamn med lösenordsbaserad autentisering.