Toegang tot een beheerde identiteit toewijzen aan een toepassingsrol met behulp van Azure CLI
Beheerde identiteiten voor Azure-resources bieden Azure-services een identiteit in Microsoft Entra-id. Ze werken zonder referenties in uw code nodig te hebben. Azure-services gebruiken deze identiteit om te verifiëren bij services die ondersteuning bieden voor Microsoft Entra-verificatie. Toepassingsrollen bieden een vorm van op rollen gebaseerd toegangsbeheer en stellen een service in staat autorisatieregels te implementeren.
Notitie
De tokens die uw toepassing ontvangt, worden in de cache opgeslagen door de onderliggende infrastructuur. Dit betekent dat wijzigingen in de rollen van de beheerde identiteit veel tijd in beslag kunnen nemen. Zie Beperking van het gebruik van beheerde identiteiten voor autorisatie voor meer informatie.
In dit artikel leert u hoe u een beheerde identiteit toewijst aan een toepassingsrol die wordt weergegeven door een andere toepassing met behulp van Azure CLI.
Vereisten
- Als u niet bekend bent met beheerde identiteiten voor Azure-resources, raadpleegt u de sectie Overzicht. Let op dat u nagaat wat het verschil is tussen een door het systeem toegewezen en door de gebruiker toegewezen beheerde identiteit.
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.
Toegang tot een beheerde identiteit toewijzen aan de app-rol van een andere toepassing
Schakel beheerde identiteit in voor een Azure-resource, zoals een Azure-VM.
Zoek de object-id van de service-principal van de beheerde identiteit.
Voor een door het systeem toegewezen beheerde identiteit kunt u de object-id vinden in de Azure-portal op de pagina Identiteit van de resource. U kunt ook het volgende script gebruiken om de object-id te vinden. U hebt de resource-id nodig van de resource die u in stap 1 hebt gemaakt. Deze is beschikbaar in de Azure-portal op de pagina Eigenschappen van de resource.
resourceIdWithManagedIdentity="/subscriptions/{my subscription ID}/resourceGroups/{my resource group name}/providers/Microsoft.Compute/virtualMachines/{my virtual machine name}" oidForMI=$(az resource show --ids $resourceIdWithManagedIdentity --query "identity.principalId" -o tsv | tr -d '[:space:]') echo "object id for managed identity is: $oidForMI"
Voor een door de gebruiker toegewezen beheerde identiteit kunt u de object-id van de beheerde identiteit vinden in de Azure-portal op de pagina Overzicht van de resource. U kunt ook het volgende script gebruiken om de object-id te vinden. U hebt de resource-id van de door de gebruiker toegewezen beheerde identiteit nodig.
userManagedIdentityResourceId="/subscriptions/{my subscription ID}/resourceGroups/{my resource group name}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{my managed identity name}" oidForMI=$(az resource show --id $userManagedIdentityResourceId --query "properties.principalId" -o tsv | tr -d '[:space:]') echo "object id for managed identity is: $oidForMI"
Maak een nieuwe toepassingsregistratie om de service te vertegenwoordigen waarnaar uw beheerde identiteit een aanvraag verzendt. Als de API of service die de app-rol beschikbaar maakt voor de beheerde identiteit al een service-principal in uw Microsoft Entra-tenant heeft, slaat u deze stap over.
Zoek de object-id van de service-principal van de servicetoepassing. U kunt deze vinden met behulp van de Azure-portal. Ga naar Microsoft Entra ID en open de pagina Bedrijfstoepassingen , zoek de toepassing en zoek de object-id. U kunt de object-id van de service-principal ook vinden op basis van de weergavenaam met behulp van het volgende script:
appName="{name for your application}" serverSPOID=$(az ad sp list --filter "displayName eq '$appName'" --query '[0].id' -o tsv | tr -d '[:space:]') echo "object id for server service principal is: $serverSPOID"
Notitie
Weergavenamen voor toepassingen zijn niet uniek, dus controleer of u de service-principal van de juiste toepassing ophaalt.
U kunt de object-id ook vinden op basis van de unieke toepassings-id voor uw toepassingsregistratie:
appID="{application id for your application}" serverSPOID=$(az ad sp list --filter "appId eq '$appID'" --query '[0].id' -o tsv | tr -d '[:space:]') echo "object id for server service principal is: $serverSPOID"
Voeg een app-rol toe aan de toepassing die u in stap 3 hebt gemaakt. U kunt de rol maken met behulp van Azure Portal of Microsoft Graph. U kunt bijvoorbeeld een app-rol als volgt toevoegen:
{ "allowedMemberTypes": [ "Application" ], "displayName": "Read data from MyApi", "id": "0566419e-bb95-4d9d-a4f8-ed9a0f147fa6", "isEnabled": true, "description": "Allow the application to read data as itself.", "value": "MyApi.Read.All" }
Wijs de app-rol toe aan de beheerde identiteit. U hebt de volgende informatie nodig om de app-rol toe te wijzen:
managedIdentityObjectId
: de object-id van de service-principal van de beheerde identiteit, die u in stap 2 hebt gevonden.serverServicePrincipalObjectId
: de object-id van de service-principal van de servertoepassing, die u in stap 4 hebt gevonden.appRoleId
: de id van de app-rol die wordt weergegeven door de server-app, die u in stap 5 hebt gegenereerd – in het voorbeeld is de app-rol-id0566419e-bb95-4d9d-a4f8-ed9a0f147fa6
.
Voer het volgende script uit om de roltoewijzing toe te voegen. Houd er rekening mee dat deze functionaliteit niet rechtstreeks beschikbaar is in de Azure CLI en dat hier een REST-opdracht wordt gebruikt:
roleguid="0566419e-bb95-4d9d-a4f8-ed9a0f147fa6" az rest -m POST -u https://graph.microsoft.com/v1.0/servicePrincipals/$oidForMI/appRoleAssignments -b "{\"principalId\": \"$oidForMI\", \"resourceId\": \"$serverSPOID\",\"appRoleId\": \"$roleguid\"}"
Volgende stappen
- Overzicht van beheerde identiteit voor Azure-resources
- Zie Beheerde identiteiten configureren voor Azure-resources op een Azure-VM met behulp van PowerShell om beheerde identiteit in te schakelen voor Azure-resources.