Använda Microsoft Entra ID för att autentisera till Azure
Microsoft Entra ID-tjänsten möjliggör ett antal administrativa uppgifter, till exempel användarhantering, domänhantering och konfiguration av enkel inloggning. Den här artikeln beskriver hur du använder Microsoft Entra-ID i Azure Automation som leverantör för autentisering till Azure.
Installera Microsoft Entra-moduler
Du kan aktivera Microsoft Entra-ID via följande PowerShell-moduler:
Azure Active Directory PowerShell för Graph (AzureRM- och Az-moduler). Azure Automation levereras med AzureRM-modulen och den senaste uppgraderingen, Az-modulen. Funktioner omfattar icke-interaktiv autentisering till Azure med autentiseringsbaserad autentisering baserad på Microsoft Entra-användare (OrgId). Se Microsoft Entra ID 2.0.2.76.
Microsoft Entra ID för Windows PowerShell (MSOnline-modul). Den här modulen möjliggör interaktioner med Microsoft Online, inklusive Microsoft 365.
Kommentar
PowerShell Core stöder inte MSOnline-modulen. Om du vill använda modul-cmdletarna måste du köra dem från Windows PowerShell. Du uppmanas att använda de nyare Azure Active Directory PowerShell för Graph-modulerna i stället för MSOnline-modulen.
Kommentar
Azure AD- och MSOnline PowerShell-moduler är inaktuella från och med den 30 mars 2024. Mer information finns i utfasningsuppdateringen. Efter det här datumet är stödet för dessa moduler begränsat till migreringshjälp till Microsoft Graph PowerShell SDK och säkerhetskorrigeringar. De inaktuella modulerna fortsätter att fungera till och med mars 30 2025.
Vi rekommenderar att du migrerar till Microsoft Graph PowerShell för att interagera med Microsoft Entra-ID (tidigare Azure AD). Vanliga migreringsfrågor finns i Vanliga frågor och svar om migrering. Obs! Versioner 1.0.x av MSOnline kan uppleva störningar efter den 30 juni 2024.
Förinstallation
Innan du installerar Microsoft Entra-modulerna på datorn:
Avinstallera alla tidigare versioner av AzureRM/Az-modulen och MSOnline-modulen.
Avinstallera Microsoft Online Services-inloggningsassistenten för att säkerställa att de nya PowerShell-modulerna fungerar korrekt.
Installera AzureRM- och Az-modulerna
Kommentar
Om du vill arbeta med dessa moduler måste du använda PowerShell version 5.1 eller senare med en 64-bitarsversion av Windows.
Installera Windows Management Framework (WMF) 5.1. Se Installera och konfigurera WMF 5.1.
Installera AzureRM och/eller Az med hjälp av instruktioner i Installera Azure PowerShell på Windows med PowerShellGet.
Installera MSOnline-modulen
Kommentar
Om du vill installera MSOnline-modulen måste du vara medlem i en administratörsroll. Se Om administratörsroller.
Kontrollera att microsoft .NET Framework 3.5.x-funktionen är aktiverad på datorn. Det är troligt att datorn har en nyare version installerad, men bakåtkompatibilitet med äldre versioner av .NET Framework kan aktiveras eller inaktiveras.
Installera 64-bitarsversionen av Microsoft Online Services-inloggningsassistenten.
Kör Windows PowerShell som administratör för att skapa en upphöjd Windows PowerShell-kommandotolk.
Distribuera Microsoft Entra ID från MSOnline 1.0.
Om du uppmanas att installera NuGet-providern skriver du Y och trycker på RETUR.
Om du uppmanas att installera modulen från PSGallery skriver du Y och trycker på RETUR.
Installera stöd för PSCredential
Azure Automation använder klassen PSCredential för att representera en tillgång för autentiseringsuppgifter. Skripten hämtar PSCredential
objekt med hjälp av cmdleten Get-AutomationPSCredential
. Mer information finns i Autentiseringstillgångar i Azure Automation.
Tilldela en prenumerationsadministratör
Du måste tilldela en administratör för Azure-prenumerationen. Den här personen har rollen Ägare för prenumerationsomfånget. Läs mer i Rollbaserad åtkomstkontroll i Azure Automation.
Ändra Microsoft Entra-användarens lösenord
Så här ändrar du Microsoft Entra-användarens lösenord:
Logga ut från Azure.
Låt administratören logga in på Azure som Microsoft Entra-användaren nyss skapade med det fullständiga användarnamnet (inklusive domänen) och ett tillfälligt lösenord.
Be administratören att ändra lösenordet när du uppmanas att göra det.
Konfigurera Azure Automation för att hantera Azure-prenumerationen
För att Azure Automation ska kunna kommunicera med Microsoft Entra-ID måste du hämta de autentiseringsuppgifter som är associerade med Azure-anslutningen till Microsoft Entra-ID:t. Exempel på dessa autentiseringsuppgifter är klientorganisations-ID, prenumerations-ID och liknande. Mer information om anslutningen mellan Azure och Microsoft Entra-ID finns i Ansluta din organisation till Microsoft Entra-ID.
Skapa en tillgång för autentiseringsuppgifter
Med Azure-autentiseringsuppgifterna för Microsoft Entra tillgängliga är det dags att skapa en Azure Automation-autentiseringstillgång för att lagra Microsoft Entra-autentiseringsuppgifterna på ett säkert sätt så att runbooks och DSC-skript (Desire State Configuration) kan komma åt dem. Du kan göra detta med antingen cmdletarna Azure Portal eller PowerShell.
Skapa autentiseringstillgången i Azure Portal
Du kan använda Azure Portal för att skapa autentiseringstillgången. Gör den här åtgärden från ditt Automation-konto med hjälp av autentiseringsuppgifter under Delade resurser. Se Autentiseringstillgångar i Azure Automation.
Skapa autentiseringstillgången med Windows PowerShell
För att förbereda en ny tillgång för autentiseringsuppgifter i Windows PowerShell skapar skriptet först ett PSCredential
objekt med det tilldelade användarnamnet och lösenordet. Skriptet använder sedan det här objektet för att skapa tillgången via ett anrop till cmdleten New-AzureAutomationCredential . Du kan också anropa cmdleten Get-Credential för att uppmana användaren att ange ett namn och lösenord. Se Autentiseringstillgångar i Azure Automation.
Hantera Azure-resurser från en Azure Automation-runbook
Du kan hantera Azure-resurser från Azure Automation-runbooks med hjälp av autentiseringstillgången. Nedan visas ett exempel på en PowerShell-runbook som samlar in den autentiseringstillgång som ska användas för att stoppa och starta virtuella datorer i en Azure-prenumeration. Den här runbooken använder Get-AutomationPSCredential
först för att hämta autentiseringsuppgifterna som ska användas för att autentisera till Azure. Den anropar sedan cmdleten Connect-AzAccount för att ansluta till Azure med hjälp av autentiseringsuppgifterna.
Workflow Workflow
{
Param
(
[Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()]
[String]
$AzureSubscriptionId,
[Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()]
[String]
$AzureVMList="All",
[Parameter(Mandatory=$true)][ValidateSet("Start","Stop")]
[String]
$Action
)
# Ensures you do not inherit an AzContext in your runbook
Disable-AzContextAutosave -Scope Process
# Connect to Azure with system-assigned managed identity
$AzureContext = (Connect-AzAccount -Identity).context
# set and store context
$AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription -DefaultProfile $AzureContext
# get credential
$credential = Get-AutomationPSCredential -Name "AzureCredential"
# Connect to Azure with credential
$AzureContext = (Connect-AzAccount -Credential $credential -TenantId $AzureContext.Subscription.TenantId).context
# set and store context
$AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription `
-TenantId $AzureContext.Subscription.TenantId `
-DefaultProfile $AzureContext
if($AzureVMList -ne "All")
{
$AzureVMs = $AzureVMList.Split(",")
[System.Collections.ArrayList]$AzureVMsToHandle = $AzureVMs
}
else
{
$AzureVMs = (Get-AzVM -DefaultProfile $AzureContext).Name
[System.Collections.ArrayList]$AzureVMsToHandle = $AzureVMs
}
foreach($AzureVM in $AzureVMsToHandle)
{
if(!(Get-AzVM -DefaultProfile $AzureContext | ? {$_.Name -eq $AzureVM}))
{
throw " AzureVM : [$AzureVM] - Does not exist! - Check your inputs "
}
}
if($Action -eq "Stop")
{
Write-Output "Stopping VMs";
foreach -parallel ($AzureVM in $AzureVMsToHandle)
{
Get-AzVM -DefaultProfile $AzureContext | ? {$_.Name -eq $AzureVM} | Stop-AzVM -DefaultProfile $AzureContext -Force
}
}
else
{
Write-Output "Starting VMs";
foreach -parallel ($AzureVM in $AzureVMsToHandle)
{
Get-AzVM -DefaultProfile $AzureContext | ? {$_.Name -eq $AzureVM} | Start-AzVM -DefaultProfile $AzureContext
}
}
}
Nästa steg
- Mer information om användning av autentiseringsuppgifter finns i Hantera autentiseringsuppgifter i Azure Automation.
- Information om moduler finns i Hantera moduler i Azure Automation.
- Om du behöver starta en runbook läser du Starta en runbook i Azure Automation.
- Mer information om PowerShell finns i PowerShell Docs.