Logga in på Azure PowerShell icke-interaktivt för automatiseringsscenarier
Artikel
En hanterad identitet i Azure ger ett säkert och sömlöst sätt för program, tjänster och automatiseringsverktyg att komma åt Azure-resurser utan att lagra autentiseringsuppgifter i kod eller konfiguration.
Till skillnad från tjänstens huvudnamn, som kräver manuell hantering av autentiseringsuppgifter, hanterar Azure automatiskt hanterade identiteter och exponerar inte känsliga hemligheter. Att använda en hanterad identitet är det bästa sättet att skriva säkra automatiseringsskript eftersom det förenklar autentiseringen och minimerar risken för läckage av autentiseringsuppgifter. Hanterade identiteter hjälper också till att automatisera hanteringsuppgifter på ett säkert sätt utan att förlita sig på användaridentiteter. Behörigheter för hanterade identiteter hanteras via Microsoft Entra, vilket säkerställer att de bara har nödvändig åtkomst till resurser, vilket förbättrar både säkerhet och underhåll.
Hanterade identiteter är en särskild typ av tjänsthuvudnamn som tillhandahåller Azure-tjänster med en automatiskt hanterad identitet. Att använda den här typen av identitet kräver inte lagring av autentiseringsuppgifter i konfiguration eller kod för att autentisera till någon Azure-tjänst som stöder hanterade identiteter.
Det finns två typer av hanterade identiteter:
Systemtilldelad hanterad identitet
Användartilldelad hanterad identitet
Hanterade identiteter är ett säkert sätt att kommunicera med andra Azure-tjänster utan att utvecklare behöver hantera autentiseringsuppgifter. De hjälper också till att minska risken för läckage av autentiseringsuppgifter.
Så här fungerar hanterade identiteter i verkliga scenarier:
Azure hanterar automatiskt skapandet och borttagningen av de autentiseringsuppgifter som används av den hanterade identiteten.
En Azure-tjänst som är aktiverad med en hanterad identitet kan komma åt andra tjänster på ett säkert sätt, till exempel Azure Key Vault, Azure SQL Database, Azure Blob Storage osv. med hjälp av Microsoft Entra-token.
Den här identiteten hanteras direkt i Azure utan ytterligare etablering.
Hanterade identiteter förenklar säkerhetsmodellen genom att undvika behovet av att lagra och hantera autentiseringsuppgifter, och de spelar en avgörande roll i säkra molnåtgärder genom att minska risken för hantering av hemligheter.
Systemtilldelad hanterad identitet
Azure skapar automatiskt en systemtilldelad hanterad identitet för en Azure-tjänstinstans (till exempel en virtuell Azure-dator, App Service eller Azure Functions). När tjänstinstansen tas bort rensar Azure automatiskt autentiseringsuppgifterna och identiteten som är associerad med tjänsten.
Följande exempel ansluter med hjälp av en systemtilldelad hanterad identitet i värdmiljön. Om den körs på en virtuell dator med en tilldelad hanterad identitet kan koden logga in med den tilldelade identiteten.
Azure PowerShell
Connect-AzAccount -Identity
Användartilldelad hanterad identitet
En användartilldelad hanterad identitet är en identitet som du skapar och hanterar i Microsoft Entra. Den kan tilldelas till en eller flera Azure-tjänstinstanser. Livscykeln för en användartilldelad hanterad identitet hanteras separat från de tjänstinstanser som den har tilldelats.
När du använder en användartilldelad hanterad identitet måste du ange parametrarna AccountId och Identity, enligt följande exempel.
Följande kommandon ansluter med hjälp av den hanterade identiteten för myUserAssignedIdentity. Den lägger till den användartilldelade identiteten till den virtuella datorn och ansluter sedan med hjälp av ClientId- för den användartilldelade identiteten.
Azure PowerShell
$identity = Get-AzUserAssignedIdentity -ResourceGroupName myResourceGroup -Name myUserAssignedIdentity
Get-AzVM -ResourceGroupName contoso -Name testvm | Update-AzVM -IdentityType UserAssigned -IdentityId$identity.Id
Connect-AzAccount -Identity -AccountId$identity.ClientId # Run on the virtual machine
Om du vill logga in med tjänstens huvudnamn använder du parametern ServicePrincipal för cmdleten Connect-AzAccount. Du behöver också följande information för tjänstens huvudnamn:
AppId
Inloggningsuppgifter eller åtkomst till certifikatet som används för att skapa tjänstens huvudnamn
Tenant-ID
Hur du loggar in med tjänstens huvudnamn beror på om det är konfigurerat för certifikatbaserad eller lösenordsbaserad autentisering.
Certifikatbaserad autentisering kräver att Azure PowerShell hämtar information från ett lokalt certifikatarkiv baserat på ett tumavtryck för certifikatet.
När du använder tjänstens huvudnamn i stället för ett registrerat program anger du parametern ServicePrincipal och anger tjänstens huvudnamns AppId som värde för parametern ApplicationId.
I Windows PowerShell 5.1 kan certifikatarkivet hanteras och inspekteras med modulen PKI. För PowerShell 7.x och senare är processen annorlunda. Följande skript visar hur du importerar ett befintligt certifikat till certifikatarkivet som är tillgängligt för PowerShell.
Importera ett certifikat i PowerShell 7.x och senare
Den angivna hemligheten för tjänstens huvudnamn lagras i filen AzureRmContext.json i användarprofilen ($env:USERPROFILE\.Azure). Se till att den här katalogen har rätt skydd.
Om du vill hämta inloggningsuppgifterna för service principal som ett objekt använder du cmdleten Get-Credential. Den här cmdleten frågar efter ett användarnamn och lösenord. Använd tjänstens huvudnamns AppId för användarnamnet och konvertera dess secret till oformaterad text för lösenordet.
Azure PowerShell
# Retrieve the plain text password for use with Get-Credential in the next command.$sp.PasswordCredentials.SecretText
$pscredential = Get-Credential -UserName$sp.AppId
Connect-AzAccount -ServicePrincipal -Credential$pscredential -Tenant$tenantId
För automatiseringsscenarier måste du skapa autentiseringsuppgifter från en tjänstehuvudmans AppId och SecretText:
Källan för det här innehållet finns på GitHub, där du även kan skapa och granska ärenden och pull-begäranden. Se vår deltagarguide för mer information.
Feedback om Azure PowerShell
Azure PowerShell är ett öppen källkod projekt. Välj en länk för att ge feedback:
Lär dig hur du skapar, hanterar och beviljar behörigheter till tjänstens huvudnamn, vilket gör att dina distributionspipelines kan autentiseras på ett säkert sätt till Azure.
Demonstrera funktionerna i Microsoft Entra ID för att modernisera identitetslösningar, implementera hybridlösningar och implementera identitetsstyrning.