Använda hanterade identiteter för Azure-resurser på en virtuell Azure-dator för inloggning

Hanterade identiteter för Azure-resurser är en funktion i Microsoft Entra-ID. Alla Azure-tjänster som stöder hanterade identiteter för Azure-resurser har sin egen tidslinje. Var noga med att kontrollera tillgänglighetsstatus för hanterade identiteter för din resurs och kända problem innan du börjar.

Den här artikeln innehåller PowerShell- och CLI-skriptexempel för inloggning med hanterade identiteter för Tjänstens huvudnamn för Azure-resurser och vägledning om viktiga ämnen som felhantering.

Kommentar

Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Se Installera Azure PowerShell för att komma igång. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.

Förutsättningar

Om du planerar att använda Azure PowerShell- eller Azure CLI-exemplen i den här artikeln måste du installera den senaste versionen av Azure PowerShell eller Azure CLI.

Viktigt!

Översikt

Hanterade identiteter för Azure-resurser tillhandahåller ett objekt för tjänstens huvudnamn , som skapas när hanterade identiteter aktiveras för Azure-resurser på den virtuella datorn. Tjänstens huvudnamn kan ges åtkomst till Azure-resurser och användas som identitet av skript-/kommandoradsklienter för inloggning och resursåtkomst. För att få åtkomst till skyddade resurser under sin egen identitet skulle en skriptklient traditionellt behöva:

  • registreras och godkänns med Microsoft Entra-ID som ett konfidentiellt/webbklientprogram
  • logga in under tjänstens huvudnamn med hjälp av appens autentiseringsuppgifter (som sannolikt är inbäddade i skriptet)

Med hanterade identiteter för Azure-resurser behöver skriptklienten inte längre göra det heller, eftersom den kan logga in under de hanterade identiteterna för Tjänstens huvudnamn för Azure-resurser.

Azure CLI

Följande skript visar hur du:

  1. Logga in på Microsoft Entra-ID under den virtuella datorns hanterade identitet för Tjänstens huvudnamn för Azure-resurser

  2. Anropa Azure Resource Manager och hämta den virtuella datorns tjänsthuvudnamns-ID. CLI tar hand om att hantera tokenförvärv/-användning åt dig automatiskt. Se till att ersätta namnet på den virtuella datorn med <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

Följande skript visar hur du:

  1. Logga in på Microsoft Entra-ID under den virtuella datorns hanterade identitet för Tjänstens huvudnamn för Azure-resurser

  2. Anropa en Azure Resource Manager-cmdlet för att få information om den virtuella datorn. PowerShell tar hand om att hantera tokenanvändning åt dig automatiskt.

    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"
    

Resurs-ID:t för Azure-tjänster

Se Azure-tjänster som stöder Microsoft Entra-autentisering för en lista över resurser som stöder Microsoft Entra-ID och som har testats med hanterade identiteter för Azure-resurser och deras respektive resurs-ID: n.

Vägledning för felhantering

Svar som följande kan tyda på att den virtuella datorns hanterade identitet för Azure-resurser inte har konfigurerats korrekt:

  • PowerShell: Invoke-WebRequest: Det går inte att ansluta till fjärrservern
  • CLI: MSI: Det gick inte att hämta en token från http://localhost:50342/oauth2/token med felet HTTP Anslut ionPool(host='localhost', port=50342)

Om du får något av dessa fel går du tillbaka till den virtuella Azure-datorn i Azure-portalen och går till identitetssidan och ser till att Systemtilldelat är inställt på "Ja".

Nästa steg