Een Azure-service-principal maken met Azure CLI
Geautomatiseerde hulpprogramma's die gebruikmaken van Azure-services moeten altijd beperkte machtigingen hebben om ervoor te zorgen dat Azure-resources veilig zijn. Daarom biedt Azure service-principals in plaats van toepassingen aan te melden als een volledig bevoegde gebruiker. Een Azure-service-principal is een identiteit die is gemaakt voor gebruik met toepassingen, gehoste services en geautomatiseerde hulpprogramma's. Deze identiteit wordt gebruikt voor toegang tot resources.
In deze zelfstudie leert u het volgende:
- Een service-principal maken
- Aanmelden met een service-principal en wachtwoord
- Aanmelden met een service-principal en certificaat
- Service-principalrollen beheren
- Een Azure-resource maken met behulp van een service-principal
- Referenties voor service-principal opnieuw instellen
Vereisten
- In een abonnement moet u beschikken over of machtigingen hebben
User Access Administrator
,Role Based Access Control Administrator
of hoger, om een service-principal te maken. Zie ingebouwde Azure-rollen voor een lijst met rollen die beschikbaar zijn voor op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC).
Gebruik de Bash-omgeving in Azure Cloud Shell. Zie quickstart voor Bash in Azure Cloud Shell voor meer informatie.
Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren. Als u in Windows of macOS werkt, kunt u Azure CLI uitvoeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie.
Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met behulp van de opdracht az login. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Raadpleeg Aanmelden bij Azure CLI voor aanvullende aanmeldingsopties.
Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Raadpleeg Extensies gebruiken met Azure CLI voor meer informatie over extensies.
Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.
Een service-principal maken
Gebruik de naslagopdracht az ad sp create-for-rbac Azure CLI om een service-principal te maken. In dit voorbeeld wordt geen parameter opgegeven --name
, dus er wordt automatisch een naam met een tijdstempel gemaakt.
az ad sp create-for-rbac
Uitvoerconsole:
{
"appId": "myAppId",
"displayName": "myServicePrincipalName",
"password": "myServicePrincipalPassword",
"tenant": "myTentantId"
}
Als u niet aan resourcenaamconventies houdt en later een rol en bereik voor uw nieuwe service-principal wilt maken, is de az ad sp create-for-rbac
opdracht zonder parameters een acceptabele oplossing. Zonder een rol en bereik heeft de nieuwe service-principal echter geen toegang tot resources. Het bestaat gewoon.
Wanneer u een service-principal zonder parameters maakt, voert u ook de volgende stappen uit:
- Noteer uw door het systeem toegewezen wachtwoord, omdat u het niet opnieuw kunt ophalen. Als u het wachtwoord kwijtraakt, stelt u het opnieuw in met az ad sp credential reset , zoals wordt uitgelegd in referenties voor de service-principal opnieuw instellen.
- Stel de roltoewijzing voor uw nieuwe service-principal in met behulp van az role assignment create , zoals wordt uitgelegd in Rollen voor service-principal beheren.
Notitie
Als uw account niet gemachtigd is om een service-principal te maken, az ad sp create-for-rbac
wordt een foutbericht geretourneerd met onvoldoende bevoegdheden om de bewerking te voltooien. Neem contact op met uw Microsoft Entra-beheerder om een service-principal te maken.
In een Microsoft Entra ID-directory waarin gebruikersinstelling Gebruikers kunnen toepassingen registreren is ingesteld op Nee, moet u lid zijn van een van de volgende ingebouwde rollen van Microsoft Entra ID (die de actie hebben: microsoft.directory/applications/createAsOwner
of microsoft.directory/applications/create
):
- Toepassingsontwikkelaar
- Toepassingsbeheerder
- Beheerder van de cloudtoepassing
- Algemene beheerder
- Hybride identiteit Beheer istrator
Zie Beperken wie toepassingen kan maken voor meer informatie over gebruikersinstellingen in Microsoft Entra ID.
Een service-principal maken met rol en bereik
Wijs altijd een specifieke --role
service-principal toe wanneer --scopes
u een service-principal maakt. Volg vervolgens deze stappen:
Bepaal de juiste rol.
Gebruik bij het bepalen van de rol altijd het principe van minimale bevoegdheden. Geef uw service-principal
contributor
bijvoorbeeld geen machtigingen voor een abonnement als de service-principal alleen toegang nodig heeft tot Azure Storage binnen een resourcegroep. Overweeg een specialiseerde rol, zoals inzender voor opslagblobgegevens. Zie ingebouwde Azure-rollen voor een volledige lijst met beschikbare rollen in Azure RBAC.Haal een waarde op voor de bereikparameter.
Zoek en kopieer de resource-id van de Azure-resource die de nieuwe service-principal nodig heeft voor toegang. Deze informatie vindt u meestal op de pagina Eigenschappen of Eindpunten van de Azure-portal van elke resource. Hier volgen veelvoorkomende
--scopes
voorbeelden, maar vertrouw op uw resource-id voor een werkelijke indeling en waarde.Bereik Opmerking Abonnement /subscriptions/mySubscriptionID
Resourcegroep /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName
Virtuele machine /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myVMname
Opslagaccountbestandsservice /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Storage/storageAccounts/myStorageAccountName/fileServices/default
Data factory /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.DataFactory/factories/myDataFactoryName
Zie Inzicht in het bereik voor Azure RBAC voor meer bereikvoorbeelden.
Maak de service-principal.
In dit voorbeeld wordt een nieuwe service-principal met de naam myServicePrincipalName1 gemaakt met lezermachtigingen voor alle resources in resourcegroep RG1.
# Bash script az ad sp create-for-rbac --name myServicePrincipalName1 \ --role reader \ --scopes /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG1
De
--scopes
parameter accepteert een door spaties gescheiden lijst met bereiken. In dit voorbeeld wordt een nieuwe service-principal met de naam myServicePrincipalName2 gemaakt met lezermachtigingen voor alle resources in resourcegroep myRG1. Deze service-principal krijgt ook leesmachtigingen voor myVM die zich in myRG2 bevindt.# 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
Als u besluit dat u te weinig of te veel machtigingen hebt verleend voor uw nieuwe service-principal, wijzigt u de machtigingen door de rollen van de service-principal te beheren.
Een service-principal maken met behulp van variabelen
U kunt ook een service-principal maken met behulp van variabelen:
# 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
Gebruik az ad sp list voor een volledige lijst met eigenschappen van de service-principal en zie Een bestaande service-principal ophalen.
Waarschuwing
Wanneer u een Azure-service-principal maakt met behulp van de az ad sp create-for-rbac
opdracht, bevat de uitvoer referenties die u moet beveiligen. Zorg ervoor dat u deze referenties niet in uw code opneemt of incheckt bij uw broncodebeheer. Als alternatief kunt u overwegen beheerde identiteiten te gebruiken, indien beschikbaar om te voorkomen dat u referenties hoeft te gebruiken.
Volgende stappen
Nu u hebt geleerd hoe u een Azure-service-principal maakt, gaat u verder met de volgende stap om te leren hoe u service-principals gebruikt met verificatie op basis van wachtwoorden.