Udostępnij za pośrednictwem


Automatyzowanie zadań Microsoft Entra ID Governance za pośrednictwem usług Azure Automation i Microsoft Graph

Azure Automation to usługa w chmurze platformy Azure, która umożliwia automatyzowanie typowych lub powtarzalnych procesów i zarządzania systemami. Microsoft Graph to ujednolicony punkt końcowy interfejsu API firmy Microsoft dla funkcji firmy Microsoft Entra, które zarządzają użytkownikami, grupami, pakietami dostępu, przeglądami dostępu i innymi zasobami w katalogu.

Microsoft Entra ID można zarządzać na dużą skalę z poziomu wiersza polecenia programu PowerShell, używając Microsoft Graph PowerShell SDK. Możesz również dołączyć polecenia cmdlets Microsoft Graph PowerShell z runbooku opartego na PowerShell w Azure Automation, aby zautomatyzować zadania Microsoft Entra za pomocą prostego skryptu.

Usługa Azure Automation i zestaw SDK programu PowerShell Graph obsługują uwierzytelnianie oparte na certyfikatach i uprawnienia aplikacji, dzięki czemu można uwierzytelnić runbooki usługi Azure Automation w Microsoft Entra ID bez konieczności posiadania kontekstu użytkownika.

W tym artykule pokazano, jak rozpocząć korzystanie z Azure Automation dla Microsoft Entra ID Governance, tworząc prosty runbook, który wykonuje zapytania dotyczące zarządzania upoważnieniami za pomocą Microsoft Graph PowerShell.

Tworzenie konta usługi Azure Automation

Usługa Azure Automation udostępnia środowisko hostowane w chmurze do wykonywania runbooków. Te runbooki mogą być uruchamiane automatycznie na podstawie harmonogramu lub wyzwalane przez webhooki lub Logic Apps.

Korzystanie z usługi Azure Automation wymaga posiadania subskrypcji platformy Azure.

Rola wymagana wstępnie: właściciel subskrypcji Azure lub grupy zasobów

  1. Zaloguj się do witryny Azure Portal . Upewnij się, że masz dostęp do subskrypcji lub grupy zasobów, w której znajduje się konto usługi Azure Automation.

  2. Wybierz subskrypcję lub grupę zasobów, a następnie wybierz pozycję Utwórz. Wpisz Automation, wybierz usługę Azure Automation firmy Microsoft, a następnie wybierz pozycję Utwórz.

  3. Po utworzeniu konta usługi Azure Automation wybierz pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami). Następnie wybierz pozycję Wyświetl w obszarze Wyświetl dostęp do tego zasobu. Ci użytkownicy i jednostki usługi będą mogli następnie wchodzić w interakcje z usługą firmy Microsoft za pośrednictwem skryptów, które mają zostać utworzone na tym koncie usługi Azure Automation.

  4. Przejrzyj użytkowników i jednostki usługi, którzy są tam wymienieni i upewnij się, że są autoryzowani. Usuń wszystkich użytkowników, którzy nie są autoryzowani.

Tworzenie pary kluczy z podpisem własnym i certyfikatu na komputerze

Aby mogła działać bez konieczności posiadania osobistych poświadczeń, utworzone konto usługi Azure Automation będzie musiało uwierzytelnić się w identyfikatorze Entra firmy Microsoft przy użyciu certyfikatu.

Jeśli masz już parę kluczy do uwierzytelniania usługi w usłudze Microsoft Entra ID i certyfikat otrzymany od urzędu certyfikacji, przejdź do następnej sekcji.

Aby wygenerować certyfikat z podpisem własnym,

  1. Postępuj zgodnie z instrukcjami z dokumentu jak utworzyć certyfikat z podpisem własnym, opcja 2, aby utworzyć i wyeksportować certyfikat wraz z jego kluczem prywatnym.

  2. Wyświetl odcisk palca certyfikatu.

     $cert | ft Thumbprint
    
  3. Po wyeksportowaniu plików można usunąć certyfikat i parę kluczy z lokalnego magazynu certyfikatów użytkownika. W kolejnych krokach usuń również pliki .pfx i .crt po przekazaniu certyfikatu i klucza prywatnego do usług Azure Automation i Microsoft Entra.

Prześlij tę parę kluczy do Azure Automation

Runbook w usłudze Azure Automation pobiera klucz prywatny z pliku .pfx i używa go do uwierzytelniania w Microsoft Graph.

  1. W witrynie Azure Portal dla konta usługi Azure Automation wybierz pozycję Certyfikaty i Dodaj certyfikat.

  2. .pfx Przekaż utworzony wcześniej plik i wpisz hasło podane podczas tworzenia pliku.

  3. Po przekazaniu klucza prywatnego zarejestruj datę wygaśnięcia certyfikatu.

  4. Teraz możesz usunąć .pfx plik z komputera lokalnego. Jednak nie usuwaj .crt jeszcze pliku, ponieważ ten plik jest potrzebny w kolejnym kroku.

Dodawanie modułów dla programu Microsoft Graph do konta usługi Azure Automation

Domyślnie usługa Azure Automation nie ma żadnych wstępnie załadowanych modułów programu PowerShell dla programu Microsoft Graph. Musisz dodać aplikację Microsoft.Graph.Authentication, a następnie dodatkowe moduły z galerii do konta usługi Automation.

  1. W witrynie Azure Portal dla konta usługi Azure Automation wybierz pozycję Moduły , a następnie przeglądaj galerię.

  2. Na pasku wyszukiwania wpisz Microsoft.Graph.Authentication. Wybierz moduł, wybierz pozycję Importuj, a następnie wybierz przycisk OK , aby identyfikator Entra firmy Microsoft rozpoczął importowanie modułu. Po wybraniu przycisku OK importowanie modułu może potrwać kilka minut. Nie próbuj dodawać kolejnych modułów programu Microsoft Graph, dopóki importowanie modułu Microsoft.Graph.Authentication nie zostanie ukończone, ponieważ te inne moduły mają wartość Microsoft.Graph.Authentication jako wymaganie wstępne.

  3. Wróć do listy Moduły i wybierz pozycję Odśwież. Gdy stan modułu Microsoft.Graph.Authentication zmieni się na Dostępny, możesz zaimportować następny moduł.

  4. Jeśli używasz poleceń cmdlet dla funkcji Microsoft Entra ID Governance, takich jak zarządzanie uprawnieniami, powtórz proces importowania dla modułu Microsoft.Graph.Identity.Governance.

  5. Zaimportuj inne moduły, których może wymagać skrypt, na przykład Microsoft.Graph.Users. Jeśli na przykład używasz usługi Microsoft Entra ID Protection, możesz zaimportować moduł Microsoft.Graph.Identity.SignIns .

Tworzenie rejestracji aplikacji i przypisywanie uprawnień

Następnie utworzysz rejestrację aplikacji w Microsoft Entra ID, aby Microsoft Entra ID rozpoznawał certyfikat runbooka Azure Automation na potrzeby uwierzytelniania.

  1. Zaloguj się do centrum administracyjnego firmy Microsoft Entra co najmniej jako administrator aplikacji.
  2. Przejdź do obszaruRejestracje aplikacji>.
  3. Wybierz pozycję Nowa rejestracja.
  4. Wpisz nazwę aplikacji i wybierz pozycję Zarejestruj.
    1. Po utworzeniu rejestracji aplikacji zanotuj Identyfikator aplikacji (klienta) oraz Identyfikator katalogu (dzierżawy), ponieważ będą one potrzebne później.
  5. Wybierz Certyfikaty i Sekrety>Certyfikaty>Przekaż certyfikat.
    1. .crt Przekaż utworzony wcześniej plik.
  6. Wybierz Uprawnienia interfejsu API>Dodaj uprawnienie.
  7. Wybierz Microsoft Graph>Uprawnienia aplikacji.
    1. Wybierz każde z uprawnień wymaganych przez konto usługi Azure Automation, a następnie wybierz pozycję Dodaj uprawnienia.

      • Jeśli runbook wykonuje tylko zapytania lub aktualizacje w jednym katalogu, nie musisz przypisywać mu uprawnień aplikacji dla całej dzierżawy; zamiast tego można przypisać jednostkę usługi do roli właściciela katalogu lub czytelnika katalogu.
      • W przypadku, gdy Runbook wykonuje tylko zapytania dotyczące zarządzania upoważnieniami, może użyć uprawnienia EntitlementManagement.Read.All.
      • Jeśli runbook wprowadza zmiany w zarządzaniu uprawnieniami, na przykład w celu tworzenia przypisań w wielu katalogach, użyj uprawnienia EntitlementManagement.ReadWrite.All.
      • W przypadku innych interfejsów API upewnij się, że dodano niezbędne uprawnienia. Na przykład w przypadku Microsoft Entra ID Protection może być potrzebne uprawnienie IdentityRiskyUser.Read.All.

Aplikacja utworzona w poprzedniej sekcji ma uprawnienia, które wymagają zatwierdzenia przez osobę z co najmniej rolą Administrator ról uprzywilejowanych, zanim będzie działać zgodnie z oczekiwaniami.

  1. Zaloguj się do centrum administracyjnego firmy Microsoft Entra co najmniej jako administrator ról uprzywilejowanych.
  2. Przejdź do Entra ID>Rejestracje aplikacji>Wszystkie aplikacje.
  3. Wybierz aplikację utworzoną w poprzedniej sekcji.
  4. Wybierz Uprawnienia interfejsu API i przejrzyj wymagane uprawnienia.
  5. W razie potrzeby wybierz pozycję Udziel zgody administratora dla pozycji "Nazwa dzierżawy" , aby nadać aplikacji te uprawnienia.

Tworzenie zmiennych usługi Azure Automation

W tym kroku utworzysz w ramach konta usługi Azure Automation trzy zmienne używane przez element Runbook w celu określenia sposobu uwierzytelniania w usłudze Microsoft Entra ID.

  1. W witrynie Azure Portal wróć do konta usługi Azure Automation.

  2. Wybierz pozycję Zmienne i Dodaj zmienną.

  3. Utwórz zmienną o nazwie Odcisk palca. Wpisz , jako wartość zmiennej, odcisk palca certyfikatu, który został wygenerowany wcześniej.

  4. Utwórz zmienną o nazwie ClientId. Wpisz, jako wartość zmiennej, identyfikator klienta aplikacji zarejestrowanej w identyfikatorze Entra firmy Microsoft.

  5. Utwórz zmienną o nazwie TenantId. Wpisz jako wartość zmiennej identyfikator najemcy katalogu, w którym zarejestrowano aplikację.

Utwórz runbook PowerShell dla Azure Automation, który może używać Graph.

W tym kroku utworzysz początkowy runbook. Możesz uruchomić ten runbook w celu weryfikacji uwierzytelnienia za pomocą wcześniej utworzonego certyfikatu.

  1. Wybierz Runbooki i Utwórz runbook.

  2. Wpisz nazwę elementu Runbook, wybierz pozycję PowerShell jako typ elementu Runbook do utworzenia, a następnie wybierz pozycję Utwórz.

  3. Po utworzeniu elementu Runbook zostanie wyświetlone okienko edycji tekstu, aby wpisać kod źródłowy programu PowerShell elementu Runbook.

  4. Wpisz następujący program PowerShell w edytorze tekstów.

Import-Module Microsoft.Graph.Authentication
$ClientId = Get-AutomationVariable -Name 'ClientId'
$TenantId = Get-AutomationVariable -Name 'TenantId'
$Thumbprint = Get-AutomationVariable -Name 'Thumbprint'
Connect-MgGraph -clientId $ClientId -tenantId $TenantId -certificatethumbprint $Thumbprint
  1. Wybierz pozycję Okienko testu, a następnie wybierz pozycję Uruchom. Poczekaj kilka sekund na przetwarzanie skryptu runbooka w usłudze Azure Automation.

  2. Jeśli uruchomienie elementu Runbook zakończy się pomyślnie, zostanie wyświetlony komunikat Zapraszamy do programu Microsoft Graph.

Po sprawdzeniu, czy runbook może uwierzytelniać się w programie Microsoft Graph, rozszerz runbook, dodając polecenia cmdlet, aby wchodzić w interakcję z funkcjami Microsoft Entra.

Rozszerzanie elementu Runbook w celu korzystania z zarządzania upoważnieniami

Jeśli rejestracja aplikacji dla runbooka ma uprawnienia EntitlementManagement.Read.All lub EntitlementManagement.ReadWrite.All, może używać API zarządzania upoważnieniami.

  1. Aby na przykład uzyskać listę pakietów dostępu do zarządzania upoważnieniami firmy Microsoft, możesz zaktualizować powyższy runbook i zastąpić tekst następującym skryptem PowerShell.
Import-Module Microsoft.Graph.Authentication
$ClientId = Get-AutomationVariable -Name 'ClientId'
$TenantId = Get-AutomationVariable -Name 'TenantId'
$Thumbprint = Get-AutomationVariable -Name 'Thumbprint'
$auth = Connect-MgGraph -clientId $ClientId -tenantid $TenantId -certificatethumbprint $Thumbprint
Import-Module Microsoft.Graph.Identity.Governance
$ap = @(Get-MgEntitlementManagementAccessPackage -All -ErrorAction Stop)
if ($null -eq $ap -or $ap.Count -eq 0) {
   ConvertTo-Json @()
} else {
   $ap | Select-Object -Property Id,DisplayName | ConvertTo-Json -AsArray
}
  1. Wybierz pozycję Okienko testu, a następnie wybierz pozycję Uruchom. Poczekaj kilka sekund na przetwarzanie skryptu runbooka w usłudze Azure Automation.

  2. Jeśli przebieg zakończył się pomyślnie, dane wyjściowe zamiast komunikatu powitalnego będą tablicą JSON. Tablica JSON zawiera identyfikator i nazwę wyświetlaną każdego pakietu dostępu zwróconego z zapytania.

Podaj parametry elementu Runbook (opcjonalnie)

Parametry wejściowe można również dodać do elementu Runbook, dodając sekcję Param w górnej części skryptu programu PowerShell. Na przykład

Param
(
    [String] $AccessPackageAssignmentId
)

Format dozwolonych parametrów zależy od usługi wywołującej. Jeśli element Runbook bierze parametry z obiektu wywołującego, musisz dodać logikę walidacji do elementu Runbook, aby upewnić się, że podane wartości parametrów są odpowiednie dla sposobu uruchamiania elementu Runbook. Jeśli na przykład runbook jest uruchamiany przez webhook, Azure Automation nie wykonuje żadnego uwierzytelniania dla żądania webhooka, o ile zostanie ono skierowane na prawidłowy adres URL, więc potrzebujesz alternatywnego sposobu weryfikacji żądania.

Po skonfigurowaniu parametrów wejściowych runbooka, podczas testu runbooka możesz podać wartości na stronie test. Później po opublikowaniu elementu Runbook można podać parametry podczas uruchamiania elementu Runbook z poziomu programu PowerShell, interfejsu API REST lub aplikacji logiki.

Analizowanie danych wyjściowych konta usługi Azure Automation w usłudze Logic Apps (opcjonalnie)

Po opublikowaniu elementu Runbook możesz utworzyć harmonogram w usłudze Azure Automation i połączyć element Runbook z tym harmonogramem, aby był uruchamiany automatycznie. Planowanie elementów Runbook z usługi Azure Automation jest odpowiednie dla elementów Runbook, które nie muszą wchodzić w interakcje z innymi usługami platformy Azure lub Office 365, które nie mają interfejsów programu PowerShell.

Jeśli chcesz wysłać dane wyjściowe elementu Runbook do innej usługi, rozważ użycie usługi Azure Logic Apps do uruchomienia elementu Runbook usługi Azure Automation, ponieważ usługa Logic Apps może również analizować wyniki.

  1. W usłudze Azure Logic Apps, utwórz aplikację Logic App w projektancie Logic Apps, zaczynając od Powtarzanie.

  2. Dodaj operację Utwórz zadanie z usługi Azure Automation. Uwierzytelnij się w usłudze Microsoft Entra ID i wybierz utworzoną wcześniej subskrypcję, grupę zasobów, konto usługi Automation. Wybierz pozycję Zaczekaj na zadanie.

  3. Dodaj parametr Runbook name i wpisz nazwę runbooka, który ma zostać uruchomiony. Jeśli element Runbook ma parametry wejściowe, możesz podać im wartości.

  4. Wybierz pozycję Nowy krok i dodaj operację Pobierz dane wyjściowe zadania. Wybierz tę samą subskrypcję, grupę zasobów, konto usługi Automation co poprzedni krok, a następnie wybierz wartość dynamiczną identyfikatora zadania z poprzedniego kroku.

  5. Następnie można dodać więcej operacji do aplikacji Logic Apps, na przykład akcję Przeanalizuj JSON, która używa Zawartości zwracanej po zakończeniu działania runbooka. (Jeśli automatycznie generujesz schemat Analizowania JSON z przykładowego ładunku, pamiętaj, aby uwzględnić potencjalne zwracanie wartości null przez skrypt programu PowerShell; może być konieczna zmiana elementów "type": ​"string" na "type": [​"string",​ "null"​] w schemacie).

W usłudze Azure Automation element runbook programu PowerShell może zakończyć się niepowodzeniem, jeśli próbuje zapisać dużą ilość danych do strumienia wyjściowego jednocześnie. Zazwyczaj można obejść ten problem, wyświetlając dane wyjściowe elementu Runbook tylko informacje wymagane przez aplikację logiki, takie jak użycie Select-Object -Property polecenia cmdlet w celu wykluczenia niepotrzebnych właściwości.

Planowanie aktualności certyfikatu

Jeśli certyfikat z podpisem własnym został utworzony zgodnie z powyższymi krokami uwierzytelniania, pamiętaj, że certyfikat ma ograniczony okres istnienia przed jego wygaśnięciem. Należy ponownie wygenerować certyfikat i przekazać nowy certyfikat przed datą wygaśnięcia.

Istnieją dwa miejsca, w których można zobaczyć datę wygaśnięcia w witrynie Azure Portal.

  • W usłudze Azure Automation ekran Certyfikaty wyświetla datę wygaśnięcia certyfikatu.
  • W Microsoft Entra ID, na rejestracji aplikacji, ekran Certyfikaty i tajne wyświetla datę wygaśnięcia certyfikatu używanego dla konta Azure Automation.

Następne kroki