Beheerde identiteiten gebruiken met virtuele Azure-machines
U besluit uw toepassing voor voorraadbeheer uit te voeren op een virtuele machine met een toegewezen beheerde identiteit. Met deze instelling kan de app een Azure-sleutelkluis gebruiken om te verifiëren zonder een gebruikersnaam en wachtwoord in code op te slaan.
Nu in uw bedrijf uw virtuele machine van on-premises naar Azure is gemigreerd, kunt u de in code vastgelegde verificatiedetails uit de toepassingscode verwijderen. U wilt het veiligere beheerde identiteitstoken gebruiken om toegang te krijgen tot Azure-resources.
In deze les leert u hoe identiteit wordt beheerd op virtuele Azure-machines. U leert ook hoe de identiteit communiceert met Azure Resource Manager om een veiligere omgeving voor toepassingen te vormen.
Beheerde identiteit op virtuele Azure-machines
Gebruik in een VIRTUELE machine een beheerde identiteit om toegang te krijgen tot meerdere Azure-resources zonder dat u referenties hoeft op te geven in de code van uw toepassing. Met beheerde identiteiten kan automatische verificatie op de achtergrond worden uitgevoerd. Uw toepassing blijft zo gebruiksvriendelijk en veilig mogelijk.
U kunt een beheerde identiteit toewijzen aan een virtuele machine tijdens het maken van de build of op elk gewenst moment daarna. U kunt een beheerde identiteit toewijzen aan een bestaande VIRTUELE machine met behulp van Azure Portal, Azure CLI of PowerShell.
In de vorige les hebt u geleerd over door het systeem toegewezen beheerde identiteiten en door de gebruiker toegewezen beheerde identiteiten. U kunt een door het systeem toegewezen beheerde identiteit inschakelen vanuit de sectie Identiteit in de instellingen van een VIRTUELE machine. Wanneer u dit doet, gebeurt het volgende:
- De VM verzendt een aanvraag voor een beheerde identiteit.
- In Microsoft Entra-id wordt een service-principal gemaakt voor de VIRTUELE machine binnen de tenant die het abonnement vertrouwt.
- Azure Resource Manager werkt het Azure Instance Metadata Service-identiteitseindpunt bij met de client-id en het certificaat van de service-principal.
- De nieuwe informatie over de service-principal wordt gebruikt om de virtuele machine toegang te verlenen tot Azure-resources. Als u uw app toegang wilt geven tot de sleutelkluis, gebruikt u op rollen gebaseerd toegangsbeheer (RBAC) in Microsoft Entra ID. Wijs de vereiste rol toe aan de service-principal van de virtuele machine. U kunt bijvoorbeeld de rollen Lezer of Inzender toewijzen.
- Er wordt een aanroep naar Microsoft Entra-id gedaan om een toegangstoken aan te vragen met behulp van de client-id en het certificaat.
- Microsoft Entra ID retourneert een JSON Web Token-toegangstoken.
Wanneer de configuratie is voltooid, hoeft u geen andere referenties te maken voor toegang tot andere resources die worden gehost in Azure die Ondersteuning bieden voor Microsoft Entra-verificatie.
Toegangsbeheer en verificatie
RBAC is een autorisatiesysteem dat in Azure Resource Manager is ingebouwd. U kunt deze gebruiken om gedetailleerde toegang te verlenen tot resources in Azure.
Machtigingen worden gevormd door toegang op basis van rollen. Op rollen gebaseerde toegang bestaat uit drie elementen: de beveiligingsprincipal, de roldefinitie en het bereik.
Beheerde identiteit gebruiken in een toepassing
Een beheerde identiteit wordt gebruikt door toepassingen die op een Azure-resource worden uitgevoerd, zoals een virtuele machine of functie-app, om andere resources te verifiëren en te openen.
Het verificatie- en toegangsproces omvat een reeks aanvragen bij de Azure Instance Metadata Service:
- De service valideert de identiteit die aan uw app is gekoppeld.
- Er wordt een toegangstoken voor de resource gegenereerd.
- Uw app verzendt het token naar de resource waartoe deze toegang moet hebben.
- Het token wordt geverifieerd.
- Als het token geldig is, verifieert de resource of dit een identiteit vertegenwoordigt met de juiste autorisatie voor de aanvraag.
- Wanneer deze test is geslaagd, kan uw toepassing toegang krijgen tot de resource.
Als u liever niet zo complex wilt werken, kunt u de AzureServiceTokenProvider
-API in uw code gebruiken. Met een AzureServiceTokenProvider
-object haalt u de principal-id voor uw app op en genereert u een toegangstoken voor de resource. U geeft de resource op waarvoor het toegangstoken moet worden gegenereerd via de GetAccessTokenAsync
-methode. Geef de URI op van de service die als host voor de resource fungeert.
In het volgende C#-voorbeeld wordt een token gegenereerd voor Azure Storage.
AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();
var token = await azureServiceTokenProvider.GetAccessTokenAsync("https://storage.azure.com/");
Dit token kan worden gebruikt door andere Azure Storage-API's om toegang te verifiëren en te autoriseren.