Udostępnij za pośrednictwem


Używanie identyfikatora Microsoft Entra do uwierzytelniania na platformie Azure

Usługa Microsoft Entra ID umożliwia szereg zadań administracyjnych, takich jak zarządzanie użytkownikami, zarządzanie domeną i konfiguracja logowania jednokrotnego. W tym artykule opisano sposób używania identyfikatora Entra firmy Microsoft w usłudze Azure Automation jako dostawcy do uwierzytelniania na platformie Azure.

Instalowanie modułów Firmy Microsoft Entra

Identyfikator entra firmy Microsoft można włączyć za pomocą następujących modułów programu PowerShell:

  • Program PowerShell usługi Azure Active Directory dla programu Graph (moduły AzureRM i Az). Usługa Azure Automation jest dostarczana z modułem AzureRM i jego ostatnim uaktualnieniem, modułem Az. Funkcje obejmują uwierzytelnianie nieinterakcyjne na platformie Azure przy użyciu uwierzytelniania opartego na poświadczeniach użytkownika Entra firmy Microsoft (OrgId). Zobacz Microsoft Entra ID 2.0.2.76.

  • Microsoft Entra ID for Windows PowerShell (moduł MSOnline). Ten moduł umożliwia interakcje z usługą Microsoft Online, w tym platformą Microsoft 365.

Uwaga

Program PowerShell Core nie obsługuje modułu MSOnline. Aby użyć poleceń cmdlet modułu, należy uruchomić je z poziomu programu Windows PowerShell. Zachęcamy do korzystania z nowszych modułów programu PowerShell usługi Azure Active Directory dla programu Graph zamiast modułu MSOnline.

Uwaga

Moduły usług Azure AD i MSOnline programu PowerShell są przestarzałe od 30 marca 2024 r. Aby dowiedzieć się więcej, przeczytaj aktualizację o wycofaniu. Po tej dacie obsługa tych modułów jest ograniczona do pomocy dotyczącej migracji do zestawu MICROSOFT Graph PowerShell SDK i poprawek zabezpieczeń. Przestarzałe moduły będą nadal działać do 30 marca 2025 r.

Zalecamy migrację do programu Microsoft Graph PowerShell w celu interakcji z identyfikatorem Entra firmy Microsoft (dawniej Azure AD). W przypadku typowych pytań dotyczących migracji zapoznaj się z często zadawanymi pytaniami dotyczącymi migracji. Uwaga: wersje 1.0.x usługi MSOnline mogą wystąpić zakłócenia po 30 czerwca 2024 r.

Preinstalacja

Przed zainstalowaniem modułów Microsoft Entra na komputerze:

  • Odinstaluj wszystkie poprzednie wersje modułu AzureRM/Az i modułu MSOnline.

  • Odinstaluj Asystenta logowania usług online firmy Microsoft, aby zapewnić poprawną operację nowych modułów programu PowerShell.

Instalowanie modułów AzureRM i Az

Uwaga

Aby pracować z tymi modułami, należy użyć programu PowerShell w wersji 5.1 lub nowszej z 64-bitową wersją systemu Windows.

  1. Zainstaluj program Windows Management Framework (WMF) 5.1. Zobacz Instalowanie i konfigurowanie programu WMF 5.1.

  2. Zainstaluj moduł AzureRM i/lub moduł Az, korzystając z instrukcji w temacie Instalowanie programu Azure PowerShell w systemie Windows przy użyciu modułu PowerShellGet.

Instalowanie modułu MSOnline

Uwaga

Aby zainstalować moduł MSOnline, musisz być członkiem roli administratora. Zobacz Informacje o rolach administratorów.

  1. Upewnij się, że na komputerze jest włączona funkcja programu Microsoft .NET Framework 3.5.x. Prawdopodobnie komputer ma zainstalowaną nowszą wersję, ale można włączyć lub wyłączyć zgodność z poprzednimi wersjami programu .NET Framework.

  2. Zainstaluj 64-bitową wersję Asystenta logowania usług online firmy Microsoft.

  3. Uruchom program Windows PowerShell jako administrator, aby utworzyć wiersz polecenia programu Windows PowerShell z podwyższonym poziomem uprawnień.

  4. Wdróż identyfikator Entra firmy Microsoft z msOnline 1.0.

  5. Jeśli zostanie wyświetlony monit o zainstalowanie dostawcy NuGet, wpisz Y i naciśnij ENTER.

  6. Jeśli zostanie wyświetlony monit o zainstalowanie modułu z programu PSGallery, wpisz Y i naciśnij ENTER.

Obsługa instalacji programu PSCredential

Usługa Azure Automation używa klasy PSCredential do reprezentowania zasobu poświadczeń. Skrypty pobierają PSCredential obiekty przy użyciu Get-AutomationPSCredential polecenia cmdlet . Aby uzyskać więcej informacji, zobacz Zasoby poświadczeń w usłudze Azure Automation.

Przypisywanie administratora subskrypcji

Musisz przypisać administratora dla subskrypcji platformy Azure. Ta osoba ma rolę Właściciel dla zakresu subskrypcji. Zobacz Kontrola dostępu na podstawie ról w usłudze Azure Automation.

Zmienianie hasła użytkownika firmy Microsoft Entra

Aby zmienić hasło użytkownika firmy Microsoft Entra:

  1. Wyloguj się z platformy Azure.

  2. Zaloguj się na platformie Azure jako właśnie utworzony użytkownik firmy Microsoft Entra przy użyciu pełnej nazwy użytkownika (w tym domeny) i hasła tymczasowego.

  3. Poproś administratora o zmianę hasła po wyświetleniu monitu.

Konfigurowanie usługi Azure Automation do zarządzania subskrypcją platformy Azure

Aby usługa Azure Automation komunikowała się z identyfikatorem Entra firmy Microsoft, należy pobrać poświadczenia skojarzone z połączeniem platformy Azure z identyfikatorem Entra firmy Microsoft. Przykładami tych poświadczeń są identyfikator dzierżawy, identyfikator subskrypcji i podobne. Aby uzyskać więcej informacji na temat połączenia między platformą Azure i identyfikatorem entra firmy Microsoft, zobacz Łączenie organizacji z identyfikatorem Entra firmy Microsoft.

Tworzenie zasobu poświadczeń

Dzięki dostępnym poświadczeniom platformy Azure dla firmy Microsoft Entra nadszedł czas, aby utworzyć zasób poświadczeń usługi Azure Automation w celu bezpiecznego przechowywania poświadczeń usługi Microsoft Entra, aby skrypty Runbook i Desire State Configuration (DSC) mogły uzyskiwać do nich dostęp. Można to zrobić przy użyciu witryny Azure Portal lub poleceń cmdlet programu PowerShell.

Tworzenie zasobu poświadczeń w witrynie Azure Portal

Za pomocą witryny Azure Portal można utworzyć zasób poświadczeń. Wykonaj tę operację z konta usługi Automation przy użyciu poświadczeń w obszarze Udostępnione zasoby. Zobacz Zasoby poświadczeń w usłudze Azure Automation.

Tworzenie zasobu poświadczeń za pomocą programu Windows PowerShell

Aby przygotować nowy zasób poświadczeń w programie Windows PowerShell, skrypt najpierw tworzy PSCredential obiekt przy użyciu przypisanej nazwy użytkownika i hasła. Następnie skrypt używa tego obiektu do utworzenia zasobu za pomocą wywołania polecenia cmdlet New-AzureAutomationCredential . Alternatywnie skrypt może wywołać polecenie cmdlet Get-Credential , aby wyświetlić użytkownikowi monit o wpisenie nazwy i hasła. Zobacz Zasoby poświadczeń w usłudze Azure Automation.

Zarządzanie zasobami platformy Azure z poziomu elementu Runbook usługi Azure Automation

Zasoby platformy Azure można zarządzać za pomocą elementów Runbook usługi Azure Automation przy użyciu zasobu poświadczeń. Poniżej znajduje się przykładowy element Runbook programu PowerShell, który zbiera zasób poświadczeń do użycia do zatrzymywania i uruchamiania maszyn wirtualnych w subskrypcji platformy Azure. Ten element Runbook jest najpierw używany Get-AutomationPSCredential do pobierania poświadczeń do uwierzytelniania na platformie Azure. Następnie wywołuje polecenie cmdlet Connect-AzAccount , aby nawiązać połączenie z platformą Azure przy użyciu poświadczeń.

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

Następne kroki