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 inte känner till funktionen för hanterade identiteter för Azure-resurser kan du läsa igenom den här översikten. Om du inte har ett Azure-konto registrerar du dig för ett kostnadsfritt konto innan du fortsätter.
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!
- Alla exempelskript i den här artikeln förutsätter att kommandoradsklienten körs på en virtuell dator med hanterade identiteter för Azure-resurser aktiverade. Använd funktionen "Anslut" för den virtuella datorn i Azure-portalen för att fjärransluta till den virtuella datorn. Mer information om hur du aktiverar hanterade identiteter för Azure-resurser på en virtuell dator finns i Konfigurera hanterade identiteter för Azure-resurser på en virtuell dator med hjälp av Azure-portalen eller någon av variantartiklarna (med Hjälp av PowerShell, CLI, en mall eller en Azure SDK).
- För att förhindra fel vid resursåtkomst måste den virtuella datorns hanterade identitet ges minst "Läsare"-åtkomst i lämpligt omfång (den virtuella datorn eller senare) för att tillåta Azure Resource Manager-åtgärder på den virtuella datorn. Mer information finns i Tilldela hanterade identiteter för Azure-resurser åtkomst till en resurs med hjälp av Azure-portalen .
Ö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:
Logga in på Microsoft Entra-ID under den virtuella datorns hanterade identitet för Tjänstens huvudnamn för Azure-resurser
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:
Logga in på Microsoft Entra-ID under den virtuella datorns hanterade identitet för Tjänstens huvudnamn för Azure-resurser
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
- Information om hur du aktiverar hanterade identiteter för Azure-resurser på en virtuell Azure-dator finns i Konfigurera hanterade identiteter för Azure-resurser på en virtuell Azure-dator med Hjälp av PowerShell eller Konfigurera hanterade identiteter för Azure-resurser på en virtuell Azure-dator med Azure CLI