Beheerde identiteiten gebruiken voor Azure-resources op een Azure-VM voor aanmelding

Beheerde identiteiten voor Azure-resources is een functie van Microsoft Entra ID. Voor alle Azure-services die beheerde identiteiten voor Azure-resources ondersteunen, geldt een eigen tijdlijn. Controleer de beschikbaarheidsstatus van beheerde identiteiten voor uw resource en eventuele bekende problemen voordat u begint.

Dit artikel bevat voorbeelden van PowerShell- en CLI-scripts voor aanmelding met beheerde identiteiten voor de service-principal van Azure-resources en richtlijnen voor belangrijke onderwerpen, zoals foutafhandeling.

Notitie

Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Vereisten

Als u van plan bent om de Azure PowerShell- of Azure CLI-voorbeelden in dit artikel te gebruiken, moet u de nieuwste versie van Azure PowerShell of Azure CLI installeren.

Belangrijk

  • Bij alle voorbeeldscripts in dit artikel wordt ervan uitgegaan dat de opdrachtregelclient wordt uitgevoerd op een VIRTUELE machine met beheerde identiteiten voor Azure-resources ingeschakeld. Gebruik de functie 'Verbinding maken' van de VIRTUELE machine in Azure Portal om extern verbinding te maken met uw virtuele machine. Zie Beheerde identiteiten voor Azure-resources configureren op een VM met behulp van de Azure Portal of een van de artikelen over andere varianten (met behulp van PowerShell, CLI, een sjabloon of een Azure SDK) voor meer informatie over het inschakelen van beheerde identiteiten voor Azure-resources op een VM.
  • Om fouten tijdens toegang tot resources te voorkomen, moet de beheerde identiteit van de VIRTUELE machine ten minste lezertoegang krijgen tot het juiste bereik (de VM of hoger) om Azure Resource Manager-bewerkingen op de VM toe te staan. Zie Beheerde identiteiten toewijzen voor Azure-resources toegang tot een resource met behulp van Azure Portal voor meer informatie.

Overzicht

Beheerde identiteiten voor Azure-resources bieden een service-principal-object dat wordt gemaakt bij het inschakelen van beheerde identiteiten voor Azure-resources op de VM. De service-principal kan toegang krijgen tot Azure-resources en worden gebruikt als een identiteit door script-/opdrachtregelclients voor aanmelding en toegang tot resources. Normaal gesproken moet een scriptclient het volgende doen om toegang te krijgen tot beveiligde resources onder een eigen identiteit:

  • worden geregistreerd en toestemming gegeven met Microsoft Entra ID als een vertrouwelijke/webclienttoepassing
  • meld u aan onder de service-principal met behulp van de referenties van de app (die waarschijnlijk zijn ingesloten in het script)

Met beheerde identiteiten voor Azure-resources hoeft uw scriptclient ook niet meer te doen, omdat deze zich kan aanmelden onder de beheerde identiteiten voor de service-principal van Azure-resources.

Azure-CLI

Het volgende script laat zien hoe u:

  1. Meld u aan bij Microsoft Entra-id onder de beheerde identiteit van de VM voor de service-principal van Azure-resources

  2. Roep Azure Resource Manager aan en haal de service-principal-id van de VM op. CLI zorgt ervoor dat token automatisch wordt opgehaald/gebruikt. Zorg ervoor dat u de naam van de virtuele machine vervangt door <VM-NAME>.

    az login --identity
    
    $spID=$(az resource list -n <VM-NAME> --query [*].identity.principalId --out tsv)
    echo The managed identity for Azure resources service principal ID is $spID
    

Azure PowerShell

Het volgende script laat zien hoe u:

  1. Meld u aan bij Microsoft Entra-id onder de beheerde identiteit van de VM voor de service-principal van Azure-resources

  2. Roep een Azure Resource Manager-cmdlet aan om informatie over de VIRTUELE machine op te halen. PowerShell zorgt ervoor dat het token automatisch voor u wordt gebruikt.

    Add-AzAccount -identity
    
    # Call Azure Resource Manager to get the service principal ID for the VM's managed identity for Azure resources. 
    $vmInfoPs = Get-AzVM -ResourceGroupName <RESOURCE-GROUP> -Name <VM-NAME>
    $spID = $vmInfoPs.Identity.PrincipalId
    echo "The managed identity for Azure resources service principal ID is $spID"
    

Resource-id's voor Azure-services

Zie Azure-services die Ondersteuning bieden voor Microsoft Entra-verificatie voor een lijst met resources die Ondersteuning bieden voor Microsoft Entra-id en zijn getest met beheerde identiteiten voor Azure-resources en hun respectieve resource-id's.

Richtlijnen voor foutafhandeling

Antwoorden zoals het volgende kunnen erop wijzen dat de beheerde identiteit van de VIRTUELE machine voor Azure-resources niet juist is geconfigureerd:

  • PowerShell: Invoke-WebRequest: kan geen verbinding maken met de externe server
  • CLI: MSI: Kan een token http://localhost:50342/oauth2/token niet ophalen met de fout HTTP Verbinding maken ionPool(host='localhost', port=50342)

Als u een van deze fouten ontvangt, gaat u terug naar de Azure-VM in Azure Portal en gaat u naar de pagina Identiteit en controleert u of het toegewezen systeem is ingesteld op Ja.

Volgende stappen