Beheerde identiteiten gebruiken met virtuele Azure-machines

Voltooid

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:

  1. De VM verzendt een aanvraag voor een beheerde identiteit.
  2. In Microsoft Entra-id wordt een service-principal gemaakt voor de VIRTUELE machine binnen de tenant die het abonnement vertrouwt.
  3. Azure Resource Manager werkt het Azure Instance Metadata Service-identiteitseindpunt bij met de client-id en het certificaat van de service-principal.
  4. 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.
  5. Er wordt een aanroep naar Microsoft Entra-id gedaan om een toegangstoken aan te vragen met behulp van de client-id en het certificaat.
  6. 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:

  1. De service valideert de identiteit die aan uw app is gekoppeld.
  2. Er wordt een toegangstoken voor de resource gegenereerd.
  3. Uw app verzendt het token naar de resource waartoe deze toegang moet hebben.
  4. Het token wordt geverifieerd.
  5. Als het token geldig is, verifieert de resource of dit een identiteit vertegenwoordigt met de juiste autorisatie voor de aanvraag.
  6. 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.