Automatyzowanie zadań Zarządzanie tożsamością Microsoft Entra 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. Identyfikator entra firmy Microsoft można zarządzać na dużą skalę z poziomu wiersza polecenia programu PowerShell przy użyciu zestawu MICROSOFT Graph PowerShell SDK. Możesz również dołączyć polecenia cmdlet programu PowerShell programu Microsoft Graph z poziomu elementu Runbook opartego na programie PowerShell w usłudze Azure Automation, aby zautomatyzować zadania programu 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ć elementy Runbook usługi Azure Automation w identyfikatorze Entra firmy Microsoft bez konieczności używania kontekstu użytkownika.
W tym artykule pokazano, jak rozpocząć korzystanie z usługi Azure Automation dla Zarządzanie tożsamością Microsoft Entra, tworząc prosty element Runbook, który wykonuje zapytania dotyczące zarządzania upoważnieniami za pomocą programu Microsoft Graph PowerShell.
Tworzenie konta usługi Azure Automation
Napiwek
Kroki opisane w tym artykule mogą się nieznacznie różnić w zależności od portalu, od którego zaczynasz.
Usługa Azure Automation udostępnia środowisko hostowane w chmurze na potrzeby wykonywania elementu Runbook. Te elementy Runbook mogą być uruchamiane automatycznie na podstawie harmonogramu lub wyzwalane przez elementy webhook lub Logic Apps.
Korzystanie z usługi Azure Automation wymaga posiadania subskrypcji platformy Azure.
Rola wymagań wstępnych: właściciel subskrypcji platformy Azure lub grupy zasobów
Zaloguj się w witrynie Azure Portal. Upewnij się, że masz dostęp do subskrypcji lub grupy zasobów, w której znajduje się konto usługi Azure Automation.
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.
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.
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,
Postępuj zgodnie z instrukcjami, aby utworzyć certyfikat z podpisem własnym, opcję 2, aby utworzyć i wyeksportować certyfikat z jego kluczem prywatnym.
Wyświetl odcisk palca certyfikatu.
$cert | ft Thumbprint
Po wyeksportowaniu plików można usunąć certyfikat i parę kluczy z lokalnego magazynu certyfikatów użytkownika. W kolejnych krokach usuniesz
.pfx
również pliki i.crt
po przekazaniu certyfikatu i klucza prywatnego do usług Azure Automation i Microsoft Entra.
Przekazywanie pary kluczy do usługi Azure Automation
Element Runbook w usłudze Azure Automation pobiera klucz prywatny z .pfx
pliku i używa go do uwierzytelniania w programie Microsoft Graph.
W witrynie Azure Portal dla konta usługi Azure Automation wybierz pozycję Certyfikaty i Dodaj certyfikat.
.pfx
Przekaż utworzony wcześniej plik i wpisz hasło podane podczas tworzenia pliku.Po przekazaniu klucza prywatnego zarejestruj datę wygaśnięcia certyfikatu.
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.
W witrynie Azure Portal dla konta usługi Azure Automation wybierz pozycję Moduły , a następnie przeglądaj galerię.
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.
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ł.
Jeśli używasz poleceń cmdlet dla funkcji Zarządzanie tożsamością Microsoft Entra, takich jak zarządzanie upoważnieniami, powtórz proces importowania dla modułu Microsoft.Graph.Identity.Governance.
Zaimportuj inne moduły, których może wymagać skrypt, na przykład Microsoft.Graph.Users. Jeśli na przykład używasz Ochrona tożsamości Microsoft Entra, możesz zaimportować moduł Microsoft.Graph.Identity.SignIns.
Tworzenie rejestracji aplikacji i przypisywanie uprawnień
Następnie utworzysz rejestrację aplikacji w identyfikatorze Entra firmy Microsoft, aby identyfikator Entra firmy Microsoft rozpoznawał certyfikat elementu Runbook usługi Azure Automation na potrzeby uwierzytelniania.
- Zaloguj się do centrum administracyjnego firmy Microsoft Entra co najmniej jako administrator aplikacji.
- Przejdź do aplikacji tożsamości>> Rejestracje aplikacji.
- Wybierz opcjęNowa rejestracja.
- Wpisz nazwę aplikacji i wybierz pozycję Zarejestruj.
- Po utworzeniu rejestracji aplikacji zanotuj identyfikator aplikacji (klienta) i identyfikator katalogu (dzierżawy), ponieważ będą one potrzebne później.
- Wybierz pozycję Certyfikaty i certyfikaty>wpisów tajnych>Przekaż certyfikat.
.crt
Przekaż utworzony wcześniej plik.
- Wybierz przycisk Uprawnienia API>Dodaj uprawnienie.
- Wybierz pozycję Uprawnienia aplikacji programu Microsoft Graph>.
Wybierz każde z uprawnień wymaganych przez konto usługi Azure Automation, a następnie wybierz pozycję Dodaj uprawnienia.
- Jeśli element Runbook wykonuje tylko zapytania lub aktualizacje w jednym wykazie, nie musisz przypisywać do niego uprawnień aplikacji dla całej dzierżawy; Zamiast tego można przypisać jednostkę usługi do roli właściciela katalogu katalogu lub czytelnika wykazu.
- Jeśli element Runbook wykonuje tylko zapytania dotyczące zarządzania upoważnieniami, może użyć uprawnienia EntitlementManagement.Read.All .
- Jeśli element Runbook wprowadza zmiany w zarządzaniu upoważnieniami, na przykład w celu utworzenia 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 Ochrona tożsamości Microsoft Entra może być wymagane uprawnienie IdentityRiskyUser.Read.All.
Wyrażanie zgody administratora
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.
- Zaloguj się do centrum administracyjnego firmy Microsoft Entra co najmniej jako administrator ról uprzywilejowanych.
- Przejdź do sekcji Identity>Applications> Rejestracje aplikacji> Wszystkie aplikacje.
- Wybierz aplikację utworzoną w poprzedniej sekcji.
- Wybierz pozycję Uprawnienia interfejsu API i przejrzyj wymagane uprawnienia.
- 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.
W witrynie Azure Portal wróć do konta usługi Azure Automation.
Wybierz pozycję Zmienne i Dodaj zmienną.
Utwórz zmienną o nazwie Odcisk palca. Wpisz , jako wartość zmiennej, odcisk palca certyfikatu, który został wygenerowany wcześniej.
Utwórz zmienną o nazwie ClientId. Wpisz, jako wartość zmiennej, identyfikator klienta aplikacji zarejestrowanej w identyfikatorze Entra firmy Microsoft.
Utwórz zmienną o nazwie TenantId. Wpisz jako wartość zmiennej identyfikator dzierżawy katalogu, w którym zarejestrowano aplikację.
Tworzenie elementu Runbook programu PowerShell usługi Azure Automation, który może używać programu Graph
W tym kroku utworzysz początkowy element Runbook. Możesz wyzwolić ten element Runbook, aby zweryfikować uwierzytelnianie przy użyciu utworzonego wcześniej certyfikatu.
Wybierz pozycję Elementy Runbook i Utwórz element Runbook.
Wpisz nazwę elementu Runbook, wybierz pozycję PowerShell jako typ elementu Runbook do utworzenia, a następnie wybierz pozycję Utwórz.
Po utworzeniu elementu Runbook zostanie wyświetlone okienko edycji tekstu, aby wpisać kod źródłowy programu PowerShell elementu Runbook.
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
Wybierz pozycję Okienko testu, a następnie wybierz pozycję Uruchom. Poczekaj kilka sekund na ukończenie przetwarzania skryptu elementu Runbook w usłudze Azure Automation.
Jeśli uruchomienie elementu Runbook zakończy się pomyślnie, zostanie wyświetlony komunikat Zapraszamy do programu Microsoft Graph.
Po sprawdzeniu, czy element Runbook może uwierzytelniać się w programie Microsoft Graph, rozszerz element Runbook, dodając polecenia cmdlet do interakcji z funkcjami firmy Microsoft Entra.
Rozszerzanie elementu Runbook w celu korzystania z zarządzania upoważnieniami
Jeśli rejestracja aplikacji dla elementu Runbook ma uprawnienia EntitlementManagement.Read.All lub EntitlementManagement.ReadWrite.All , może używać interfejsów API zarządzania upoważnieniami.
- Aby na przykład uzyskać listę pakietów dostępu do zarządzania upoważnieniami firmy Microsoft, możesz zaktualizować powyższy element Runbook i zastąpić tekst następującym programem 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
}
Wybierz pozycję Okienko testu, a następnie wybierz pozycję Uruchom. Poczekaj kilka sekund na ukończenie przetwarzania skryptu elementu Runbook w usłudze Azure Automation.
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 element Runbook jest uruchamiany przez element webhook, usługa Azure Automation nie wykonuje żadnego uwierzytelniania w żądaniu elementu webhook, o ile zostanie on wykonany pod prawidłowym adresem URL, więc potrzebujesz alternatywnego sposobu weryfikacji żądania.
Po skonfigurowaniu parametrów wejściowych elementu Runbook podczas testowania elementu Runbook 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.
W usłudze Azure Logic Apps utwórz aplikację logiki w projektancie aplikacji usługi Logic Apps, zaczynając od cyklu.
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.
Dodaj nazwę elementu Runbook parametru i wpisz nazwę elementu Runbook, który ma zostać uruchomiony. Jeśli element Runbook ma parametry wejściowe, możesz podać im wartości.
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.
Następnie można dodać więcej operacji do aplikacji logiki, na przykład akcję Przeanalizuj kod JSON, która używa zawartości zwracanej po zakończeniu działania elementu Runbook. (Jeśli automatycznie generujesz Przeanalizuj schemat JSON z przykładowego ładunku, pamiętaj, aby uwzględnić potencjalnie zwracanie wartości null przez skrypt programu PowerShell. Może być konieczne zmianę elementu
"type": "string"
na"type": ["string", "null"]
wartość 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 polu Microsoft Entra ID na rejestracji aplikacji ekran Certyfikaty i wpisy tajne wyświetla datę wygaśnięcia certyfikatu używanego dla konta usługi Azure Automation.