Microsoft Entra ID gebruiken om te verifiëren bij Azure

De Microsoft Entra ID-service maakt een aantal beheertaken mogelijk, zoals gebruikersbeheer, domeinbeheer en configuratie voor eenmalige aanmelding. In dit artikel wordt beschreven hoe u Microsoft Entra-id in Azure Automation gebruikt als provider voor verificatie bij Azure.

Microsoft Entra-modules installeren

U kunt Microsoft Entra ID inschakelen via de volgende PowerShell-modules:

  • Azure Active Directory PowerShell voor Graph (AzureRM- en Az-modules). Azure Automation wordt geleverd met de AzureRM-module en de recente upgrade, de Az-module. Functionaliteit omvat niet-interactieve verificatie voor Azure met behulp van verificatie op basis van referenties op basis van Microsoft Entra-gebruikers (OrgId). Zie Microsoft Entra ID 2.0.2.76.

  • Microsoft Entra-id voor Windows PowerShell (MSOnline-module). Deze module maakt interacties mogelijk met Microsoft Online, waaronder Microsoft 365.

Notitie

PowerShell Core biedt geen ondersteuning voor de MSOnline-module. Als u de module-cmdlets wilt gebruiken, moet u deze uitvoeren vanuit Windows PowerShell. U wordt aangemoedigd om de nieuwere Azure Active Directory PowerShell voor Graph-modules te gebruiken in plaats van de MSOnline-module.

Notitie

Azure AD- en MSOnline PowerShell-modules zijn vanaf 30 maart 2024 afgeschaft. Lees de afschaffingsupdate voor meer informatie. Na deze datum is ondersteuning voor deze modules beperkt tot migratieondersteuning voor Microsoft Graph PowerShell SDK en beveiligingsoplossingen. De afgeschafte modules blijven functioneren tot en met 30 maart 2025.

Het is raadzaam om te migreren naar Microsoft Graph PowerShell om te communiceren met Microsoft Entra ID (voorheen Azure AD). Raadpleeg de veelgestelde vragen over migratie voor veelgestelde vragen over migratie. Opmerking: versies 1.0.x van MSOnline kunnen na 30 juni 2024 onderbrekingen ondervinden.

Voorinstallatie

Voordat u de Microsoft Entra-modules op uw computer installeert:

  • Verwijder eerdere versies van de Module AzureRM/Az en de MSOnline-module.

  • Verwijder de Microsoft Online Services-aanmeldhulp om de juiste werking van de nieuwe PowerShell-modules te garanderen.

De AzureRM- en Az-modules installeren

Notitie

Als u met deze modules wilt werken, moet u PowerShell versie 5.1 of hoger gebruiken met een 64-bits versie van Windows.

  1. Installeer Windows Management Framework (WMF) 5.1. Zie WMF 5.1 installeren en configureren.

  2. Installeer AzureRM en/of Az met behulp van instructies in Azure PowerShell installeren in Windows met PowerShellGet.

De MSOnline-module installeren

Notitie

Als u de MSOnline-module wilt installeren, moet u lid zijn van een beheerdersrol. Zie Informatie over beheerdersrollen.

  1. Zorg ervoor dat de functie Microsoft .NET Framework 3.5.x is ingeschakeld op uw computer. Het is waarschijnlijk dat op uw computer een nieuwere versie is geïnstalleerd, maar achterwaartse compatibiliteit met oudere versies van .NET Framework kan worden ingeschakeld of uitgeschakeld.

  2. Installeer de 64-bits versie van de Microsoft Online Services-aanmeldassistent.

  3. Voer Windows PowerShell uit als beheerder om een windows PowerShell-opdrachtprompt met verhoogde bevoegdheid te maken.

  4. Microsoft Entra-id implementeren vanuit MSOnline 1.0.

  5. Als u wordt gevraagd om de NuGet-provider te installeren, typt u Y en drukt u op Enter.

  6. Als u wordt gevraagd om de module te installeren vanuit PSGallery, typt u Y en drukt u op Enter.

Ondersteuning voor PSCredential installeren

Azure Automation maakt gebruik van de PSCredential-klasse om een referentieasset weer te geven. Uw scripts halen objecten op PSCredential met behulp van de Get-AutomationPSCredential cmdlet. Zie Referentieassets in Azure Automation voor meer informatie.

Abonnementsbeheerder toewijzen

U moet een beheerder toewijzen voor het Azure-abonnement. Deze persoon heeft de rol van Eigenaar voor het abonnementsbereik. Zie Op rollen gebaseerd toegangsbeheer in Azure Automation.

Het wachtwoord van de Microsoft Entra-gebruiker wijzigen

Het wachtwoord van de Microsoft Entra-gebruiker wijzigen:

  1. Meld u af bij Azure.

  2. Laat de beheerder zich aanmelden bij Azure als de Microsoft Entra-gebruiker die zojuist is gemaakt, met behulp van de volledige gebruikersnaam (inclusief het domein) en een tijdelijk wachtwoord.

  3. Vraag de beheerder om het wachtwoord te wijzigen wanneer hierom wordt gevraagd.

Azure Automation configureren om het Azure-abonnement te beheren

Als Azure Automation met Microsoft Entra ID kan communiceren, moet u de referenties ophalen die zijn gekoppeld aan de Azure-verbinding met Microsoft Entra-id. Voorbeelden van deze referenties zijn tenant-id, abonnements-id en dergelijke. Zie Verbinding maken uw organisatie naar Microsoft Entra ID voor meer informatie over de verbinding tussen Azure en Microsoft Entra ID.

Een referentieasset maken

Nu de Azure-referenties voor Microsoft Entra beschikbaar zijn, is het tijd om een Azure Automation-referentieasset te maken om de Microsoft Entra-referenties veilig op te slaan, zodat runbooks en DSC-scripts (Desire State Configuration) er toegang toe hebben. U kunt dit doen met behulp van de Azure-portal of PowerShell-cmdlets.

De referentieasset maken in Azure Portal

U kunt Azure Portal gebruiken om de referentieasset te maken. Voer deze bewerking uit vanuit uw Automation-account met behulp van referenties onder Gedeelde resources. Zie Referentieassets in Azure Automation.

De referentieasset maken met Windows PowerShell

Als u een nieuwe referentieasset wilt voorbereiden in Windows PowerShell, maakt uw script eerst een PSCredential object met behulp van de toegewezen gebruikersnaam en het wachtwoord. Het script gebruikt dit object vervolgens om de asset te maken via een aanroep naar de cmdlet New-AzureAutomationCredential . Het script kan ook de cmdlet Get-Credential aanroepen om de gebruiker te vragen een naam en wachtwoord in te voeren. Zie Referentieassets in Azure Automation.

Azure-resources beheren vanuit een Azure Automation-runbook

U kunt Azure-resources beheren vanuit Azure Automation-runbooks met behulp van de referentieasset. Hieronder ziet u een voorbeeld van een PowerShell-runbook dat de referentieasset verzamelt die moet worden gebruikt voor het stoppen en starten van virtuele machines in een Azure-abonnement. Dit runbook gebruikt Get-AutomationPSCredential eerst om de referentie op te halen die moet worden gebruikt om te verifiëren bij Azure. Vervolgens wordt de cmdlet Verbinding maken-AzAccount aanroepen om verbinding te maken met Azure met behulp van de referentie.

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
        } 
    } 
}

Volgende stappen