Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln innehåller exempel på PowerShell- och CLI-skript för inloggning med hanterade identiteter för Azure-resursernas tjänsteprincip, samt vägledning om viktiga ämnen som felhantering.
Anmärkning
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. För att lära dig hur du migrerar till Az PowerShell-modulen, se 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 något 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 på lämplig nivå (den virtuella datorn eller högre) för att tillåta Azure Resource Manager-operationer 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 får godkännande med Microsoft Entra-ID som en konfidentiell/webbklientapplikation
- 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 med de hanterade identiteterna för tjänstens huvudkonto för Azure-resurser.
Azure CLI (kommandoradsgränssnittet för Azure)
Följande skript visar hur du:
Logga in med Microsoft Entra ID med den hanterade identiteten för den virtuella datorn 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 med Microsoft Entra ID med den hanterade identiteten för den virtuella datorn 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 HTTPConnectionPool(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