Sdílet prostřednictvím


Ověření v Azure pomocí Microsoft Entra ID

Služba Microsoft Entra ID umožňuje řadu úloh správy, jako je správa uživatelů, správa domén a konfigurace jednotného přihlašování. Tento článek popisuje, jak používat ID Microsoft Entra ve službě Azure Automation jako zprostředkovatele pro ověřování do Azure.

Instalace modulů Microsoft Entra

Id Microsoft Entra můžete povolit pomocí následujících modulů PowerShellu:

  • Azure Active Directory PowerShell pro Graph (moduly AzureRM a Az). Azure Automation se dodává s modulem AzureRM a jeho nedávným upgradem– modulem Az. Funkce zahrnují neinteraktivní ověřování do Azure pomocí ověřování na základě přihlašovacích údajů uživatele Microsoft Entra (OrgId). Viz Microsoft Entra ID 2.0.2.76.

  • Microsoft Entra ID pro Windows PowerShell (modul MSOnline). Tento modul umožňuje interakce s Microsoft Online, včetně Microsoftu 365.

Poznámka:

PowerShell Core nepodporuje modul MSOnline. Pokud chcete použít rutiny modulu, musíte je spustit z Prostředí Windows PowerShell. Doporučujeme místo modulu MSOnline používat novější prostředí Azure Active Directory PowerShell pro moduly Graph.

Poznámka:

Moduly Azure AD a MSOnline PowerShell jsou od 30. března 2024 zastaralé. Další informace najdete v aktualizaci vyřazení. Po tomto datu je podpora těchto modulů omezená na pomoc s migrací na sadu Microsoft Graph PowerShell SDK a opravy zabezpečení. Zastaralé moduly budou dál fungovat až do 30. března 2025.

Doporučujeme migrovat na Microsoft Graph PowerShell , abyste mohli pracovat s Microsoft Entra ID (dříve Azure AD). Běžné dotazy k migraci najdete v nejčastějších dotazech k migraci. Poznámka: Verze 1.0.x msOnline mohou dojít k přerušení po 30. červnu 2024.

Předinstalace

Před instalací modulů Microsoft Entra do počítače:

  • Odinstalujte všechny předchozí verze modulu AzureRM/Az a modulu MSOnline.

  • Odinstalujte Pomocníka pro přihlášení ke službám Microsoft Online Services, abyste zajistili správné fungování nových modulů PowerShellu.

Instalace modulů AzureRM a Az

Poznámka:

Pokud chcete pracovat s těmito moduly, musíte použít PowerShell verze 5.1 nebo novější s 64bitovou verzí Windows.

  1. Nainstalujte windows Management Framework (WMF) 5.1. Viz Instalace a konfigurace WMF 5.1.

  2. Nainstalujte AzureRM nebo Az pomocí pokynů v tématu Instalace Azure PowerShellu ve Windows pomocí modulu PowerShellGet.

Instalace modulu MSOnline

Poznámka:

Pokud chcete nainstalovat modul MSOnline, musíte být členem role správce. Viz O rolích správce.

  1. Ujistěte se, že je ve vašem počítači povolená funkce Rozhraní Microsoft .NET Framework 3.5.x. Je pravděpodobné, že váš počítač má nainstalovanou novější verzi, ale zpětnou kompatibilitu se staršími verzemi rozhraní .NET Framework je možné povolit nebo zakázat.

  2. Nainstalujte 64bitovou verzi Pomocníka pro přihlášení ke službám Microsoft Online Services.

  3. Spuštěním Windows PowerShellu jako správce vytvořte příkazový řádek Windows PowerShellu se zvýšenými oprávněními.

  4. Nasaďte ID Microsoft Entra z MSOnline 1.0.

  5. Pokud se zobrazí výzva k instalaci zprostředkovatele NuGet, zadejte Y a stiskněte ENTER.

  6. Pokud se zobrazí výzva k instalaci modulu z PSGallery, zadejte Y a stiskněte ENTER.

Instalace podpory pro PSCredential

Azure Automation používá třídu PSCredential k reprezentaci prostředku přihlašovacích údajů. Skripty načítají PSCredential objekty pomocí rutiny Get-AutomationPSCredential . Další informace najdete v tématu Prostředky přihlašovacích údajů ve službě Azure Automation.

Přiřazení správce předplatného

Musíte přiřadit správce předplatného Azure. Tato osoba má roli Vlastník oboru předplatného. Viz Řízení přístupu na základě role ve službě Azure Automation.

Změna hesla uživatele Microsoft Entra

Změna hesla uživatele Microsoft Entra:

  1. Odhlaste se z Azure.

  2. Požádejte správce, aby se přihlásil k Azure jako uživatel Microsoft Entra, který právě vytvořil, pomocí úplného uživatelského jména (včetně domény) a dočasného hesla.

  3. Požádejte správce, aby po zobrazení výzvy změnil heslo.

Konfigurace služby Azure Automation pro správu předplatného Azure

Aby služba Azure Automation komunikuje s ID Microsoft Entra, musíte načíst přihlašovací údaje přidružené k připojení Azure k Microsoft Entra ID. Příklady těchto přihlašovacích údajů jsou ID tenanta, ID předplatného a podobně. Další informace o propojení mezi Azure a ID Microsoft Entra najdete v tématu Připojení vaší organizace k Microsoft Entra ID.

Vytvoření prostředku přihlašovacích údajů

S dostupnými přihlašovacími údaji Azure pro Microsoft Entra je čas vytvořit prostředek přihlašovacích údajů služby Azure Automation pro bezpečné uložení přihlašovacích údajů Microsoft Entra, aby k nim mohly přistupovat runbooky a skripty DSC (Desire State Configuration). Můžete to provést pomocí webu Azure Portal nebo rutin PowerShellu.

Vytvoření prostředku přihlašovacích údajů na webu Azure Portal

K vytvoření prostředku přihlašovacích údajů můžete použít Azure Portal. Tuto operaci proveďte z účtu Automation pomocí přihlašovacích údajů v části Sdílené prostředky. Viz prostředky přihlašovacích údajů ve službě Azure Automation.

Vytvoření prostředku přihlašovacích údajů pomocí Windows PowerShellu

Pokud chcete ve Windows PowerShellu připravit nový asset přihlašovacích údajů, skript nejprve vytvoří PSCredential objekt pomocí přiřazeného uživatelského jména a hesla. Skript pak pomocí tohoto objektu vytvoří prostředek prostřednictvím volání Rutiny New-AzureAutomationCredential . Případně může skript volat rutinu Get-Credential a vyzvat uživatele k zadání jména a hesla. Viz prostředky přihlašovacích údajů ve službě Azure Automation.

Správa prostředků Azure z runbooku Azure Automation

Prostředky Azure můžete spravovat z runbooků Azure Automation pomocí prostředku přihlašovacích údajů. Níže je příklad runbooku PowerShellu, který shromažďuje prostředek přihlašovacích údajů, který se použije k zastavení a spuštění virtuálních počítačů v předplatném Azure. Tento runbook nejprve používá Get-AutomationPSCredential k načtení přihlašovacích údajů, které se mají použít k ověření v Azure. Potom zavolá rutinu Connect-AzAccount pro připojení k Azure pomocí přihlašovacích údajů.

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

Další kroky