Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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 aan zodat toepassingen niet hoeven 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 handleiding leer je hoe je:
- Een service-principal maken
- Aanmelden met een service-principal en wachtwoord
- Inloggen met een service-principal en certificaat
- Service-principal-rollen beheren
- Een Azure-resource maken met behulp van een service-principal
- Referenties voor service-principal opnieuw instellen
Vereiste voorwaarden
- In een abonnement moet u beschikken over
User Access Administrator
- ofRole Based Access Control Administrator
-machtigingen, 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 Aan de slag met Azure Cloud Shell voor meer informatie.
Als je de voorkeur geeft aan het lokaal uitvoeren van CLI-referentiecommando's, installeer dan de Azure CLI. Als je op Windows of macOS werkt, overweeg dan om Azure CLI in een Docker-container te draaien. Voor meer informatie, zie Hoe u de Azure CLI in een Docker-container kunt uitvoeren.
Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met de opdracht az login. Om het authenticatieproces te voltooien, volgt u de stappen die op uw terminal worden weergegeven. Zie Verifiëren bij Azure met behulp van Azure CLI voor andere aanmeldingsopties.
Wanneer u daarom wordt gevraagd, installeer de Azure CLI-extensie bij het eerste gebruik. Zie Extensies gebruiken en beheren met de Azure CLIvoor meer informatie over extensies.
Voer az version uit om de geïnstalleerde versie en de afhankelijke bibliotheken te vinden. Voer az upgrade uit om naar de nieuwste versie te upgraden.
Een service-principal maken
Gebruik de Azure CLI-referentieopdracht az ad sp create-for-rbac om een service principal aan 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 service-principal referenties 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.
Opmerking
Als uw account niet gemachtigd is om een service-principal te maken, retourneert az ad sp create-for-rbac
een foutbericht met de melding "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
- Cloudtoepassingsbeheerder
- Algemene beheerder
- hybride identiteitsbeheerder
Zie Beperken wie toepassingen kan maken voor meer informatie over gebruikersinstellingen in Microsoft Entra ID.
Een service-principal maken met rol en bereik
Wijs als beste praktijk altijd een specifieke --role
en --scopes
toe wanneer u een service principal maakt. Volg 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.Omvang Voorbeeld Abonnement /subscriptions/mySubscriptionID
Bronnengroep /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName
Virtuele machine /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myVMname
Bestandsservice voor opslagaccounts /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Storage/storageAccounts/myStorageAccountName/fileServices/default
Gegevensfabriek /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 scopes. 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 inloggegevens niet in uw code opneemt of incheckt in uw versiebeheersysteem. 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.