Verwenden von Microsoft Entra ID zur Authentifizierung bei Azure

Der Microsoft Entra ID-Dienst ermöglicht eine Reihe von Verwaltungsaufgaben wie Benutzerverwaltung, Domänenverwaltung und Konfiguration des einmaligen Anmeldens. In diesem Artikel wird beschrieben, wie Sie Microsoft Entra ID in Azure Automation als Anbieter für die Authentifizierung bei Azure verwenden.

Installieren von Microsoft Entra-Modulen

Sie können Microsoft Entra ID mithilfe der folgenden PowerShell-Module aktivieren:

  • Azure Active Directory PowerShell für Graph (AzureRM und AZ-Module). Azure Automation enthält im Lieferumfang das AzureRM-Modul und sein jüngstes Upgrade, das Az-Modul. Die Funktionalität umfasst die nicht interaktive Authentifizierung bei Azure mithilfe der Azure auf den Anmeldeinformationen des Microsoft Entra-Benutzers (OrgId) basierenden Authentifizierung. Siehe Microsoft Entra ID 2.0.2.76.

  • Microsoft Entra ID für Windows PowerShell (MSOnline-Modul). Dieses Modul ermöglicht Interaktionen mit Microsoft Online, einschließlich Microsoft 365.

Hinweis

PowerShell Core unterstützt das MSOnline-Modul nicht. Um die Module-Cmdlets verwenden zu können, müssen Sie sie über Windows PowerShell ausführen. Es wird empfohlen, dass Sie die neuere Azure Active Directory PowerShell für Graph-Module anstelle des MSOnline-Moduls verwenden.

Hinweis

Azure AD- und MSOnline PowerShell-Module sind ab dem 30. März 2024 veraltet. Weitere Informationen finden Sie im Update zur Unterstützungseinstellung. Nach diesem Datum wird die Unterstützung für diese Module auf die Migrationsunterstützung für das Microsoft Graph PowerShell-SDK und Sicherheitskorrekturen beschränkt. Die veralteten Module funktionieren weiterhin bis zum 30. März 2025.

Es wird empfohlen, für die Interaktion mit Microsoft Entra ID (früher Azure AD) zu Microsoft Graph PowerShell zu migrieren. Informationen zu allgemeinen Migrationsfragen finden Sie in den häufig gestellten Fragen zur Migration. Hinweis: Bei der Version 1.0.x von MSOnline können nach dem 30. Juni 2024 Unterbrechungen auftreten.

Vorinstallation

Vor dem Installieren der Microsoft Entra-Module auf Ihrem Computer:

  • Deinstallieren Sie alle früheren Versionen des AzureRM/Az-Moduls und des MSOnline-Moduls.

  • Deinstallieren Sie den Microsoft Online Services-Anmelde-Assistenten, um den ordnungsgemäßen Betrieb der neuen PowerShell-Module sicherzustellen.

Installieren der AzureRM- und Az-Module

Hinweis

Um mit diesen Modulen arbeiten zu können, müssen Sie PowerShell, Version 5.1 oder höher, mit einer 64-Bit-Version von Windows verwenden.

  1. Installieren Sie Windows Management Framework 5.1 (WMF). Siehe Installieren und Konfigurieren von WMF 5.1.

  2. Verwenden Sie zum Installieren von AzureRM und/oder Az die Anweisungen unter Installieren von Azure PowerShell unter Windows mit PowerShellGet.

Installieren des MSOnline-Moduls

Hinweis

Um das MSOnline-Modul zu installieren, müssen Sie Mitglied einer Administratorrolle sein. Siehe Über Administratorrollen.

  1. Stellen Sie sicher, dass die Microsoft .NET Framework 3.5.x-Funktion auf Ihrem Computer aktiviert ist. Es ist wahrscheinlich, dass auf Ihrem Computer eine neuere Version installiert ist, aber die Abwärtskompatibilität mit älteren Versionen des .NET Frameworks kann aktiviert oder deaktiviert werden.

  2. Installieren Sie die 64-Bit-Version des Microsoft Online Services-Anmelde-Assistenten.

  3. Führen Sie Windows PowerShell als Administrator aus, um eine Windows PowerShell-Eingabeaufforderung mit erhöhten Rechten zu erstellen.

  4. Bereitstellen von Microsoft Entra ID aus MSOnline 1.0.

  5. Wenn Sie zum Installieren des NuGet-Anbieters aufgefordert werden, wählen Sie „Y“ aus, und drücken Sie die EINGABETASTE.

  6. Wenn Sie zum Installieren des Moduls aus der PSgallery aufgefordert werden, geben Sie „Y“ ein, und drücken Sie die EINGABETASTE.

Installieren der Unterstützung für „PSCredential“"

Azure Automation verwendet die PSCredential-Klasse, um ein Anmeldeinformationsobjekt darzustellen. Ihr Skripts rufen PSCredential-Objekte mithilfe des Get-AutomationPSCredential-Cmdlets ab. Weitere Informationen finden Sie unter Anmeldeinformationsobjekte in Azure Automation.

Zuweisen eines Abonnementadministrators

Sie müssen einen Administrator für das Azure-Abonnement zuweisen. Diese Person verfügt über die Rolle „Besitzer“" für den Abonnementbereich. Siehe Rollenbasierte Zugriffssteuerung in Azure Automation.

Ändern des Kennworts des Microsoft Entra-Benutzers

Zum Ändern des Kennworts des Microsoft Entra-Benutzers:

  1. Melden Sie sich bei Azure ab.

  2. Lassen Sie den Administrator sich bei Azure als der gerade erstellte Microsoft Entra-Benutzer anmelden, wobei der vollständige Benutzername (einschließlich Domäne) und ein temporäres Kennwort verwendet werden.

  3. Bitten Sie den Administrator, das Kennwort bei Aufforderung dazu zu ändern.

Konfigurieren von Azure Automation für die Verwaltung des Azure-Abonnements

Damit Azure Automation mit Microsoft Entra ID kommunizieren kann, müssen Sie die Anmeldeinformationen abrufen, die der Azure-Verbindung mit Microsoft Entra ID zugeordnet sind. Beispiele für diese Anmeldeinformationen sind Mandanten-ID, Abonnement-ID und Ähnliches. Weitere Informationen zu der Verbindung zwischen Azure und Microsoft Entra ID finden Sie unter Verbinden Ihrer Organisation mit Microsoft Entra ID.

Erstellen eines Anmeldeinformationsobjekts

Da die Azure-Anmeldeinformationen für Microsoft Entra ID verfügbar sind, ist es jetzt an der Zeit, ein Azure Automation-Anmeldeinformationsobjekt zu erstellen, um die Microsoft Entra-Anmeldeinformationen sicher zu speichern, damit Runbooks und DSC-Skripts (Desire State Configuration) darauf zugreifen können. Dies können Sie mithilfe des Azure-Portals oder mit PowerShell-Cmdlets durchführen.

Erstellen des Anmeldeinformationsobjekts im Azure-Portal

Sie können das Azure-Portal zum Erstellen des Anmeldeinformationsobjekts verwenden. Führen Sie diesen Vorgang in Ihrem Automation-Konto unter Freigegebene Ressourcen mithilfe der Option Anmeldeinformationen aus. Siehe Anmeldeinformationsobjekte in Azure Automation.

Erstellen des Anmeldeinformationsobjekts mithilfe von Windows PowerShell

Zum Vorbereiten eines neuen Anmeldeinformationsobjekts in Windows PowerShell erstellt Ihr Skript zunächst ein PSCredential-Objekt mithilfe des zugewiesenen Benutzernamens und Kennworts. Das Skript verwendet dann dieses Objekt, um das Objekt durch einen Aufruf des Cmdlets New-AzureAutomationCredential zu erstellen. Alternativ kann das Skript das Cmdlet Get-Credential aufrufen, um den Benutzer zur Eingabe eines Namens und Kennworts aufzufordern. Siehe Anmeldeinformationsobjekte in Azure Automation.

Verwalten von Azure-Ressourcen über ein Azure Automation-Runbook

Sie können Azure-Ressourcen unter Verwendung des Anmeldeinformationsobjekts aus Azure Automation-Runbooks heraus verwalten. Im Folgenden finden Sie ein PowerShell-Beispielrunbook, das Anmeldeinformationsobjekt erfasst, um es zum Beenden und Starten virtueller Computer in einem Azure-Abonnement zu verwenden. Dieses Runbook verwendet zunächst Get-AutomationPSCredential, um die Anmeldeinformationen abzurufen, die für die Authentifizierung bei Azure verwendet werden sollen. Danach ruft es das Cmdlet Connect-AzAccount auf, um eine Verbindung mit Azure mit diesen Anmeldeinformationen herzustellen.

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ächste Schritte