Automatizace úloh zásad správného řízení id Microsoft Entra prostřednictvím služby Azure Automation a Microsoft Graphu
Azure Automation je cloudová služba Azure, která umožňuje automatizovat běžnou nebo opakující se správu a procesy systémů. Microsoft Graph je jednotný koncový bod rozhraní API Microsoftu pro funkce Microsoft Entra, které spravují uživatele, skupiny, přístupové balíčky, kontroly přístupu a další prostředky v adresáři. Id Microsoft Entra můžete spravovat ve velkém měřítku z příkazového řádku PowerShellu pomocí sady Microsoft Graph PowerShell SDK. Můžete také zahrnout rutiny Prostředí Microsoft Graph PowerShell z runbooku založeného na PowerShellu ve službě Azure Automation, abyste mohli automatizovat úlohy Microsoft Entra z jednoduchého skriptu.
Azure Automation a Sada PowerShell Graph SDK podporují ověřování na základě certifikátů a oprávnění aplikací, takže runbooky Azure Automation můžete ověřit v Microsoft Entra ID bez nutnosti kontextu uživatele.
V tomto článku se dozvíte, jak začít používat Azure Automation pro zásady správného řízení MICROSOFT Entra ID vytvořením jednoduchého runbooku, který se dotazuje na správu nároků prostřednictvím Microsoft Graph PowerShellu.
Vytvoření účtu Azure Automation
Tip
Postup v tomto článku se může mírně lišit v závislosti na portálu, od který začínáte.
Azure Automation poskytuje prostředí hostované v cloudu pro spouštění runbooků. Tyto runbooky se můžou spouštět automaticky podle plánu nebo je aktivují webhooky nebo Logic Apps.
Použití služby Azure Automation vyžaduje, abyste měli předplatné Azure.
Požadovaná role: Vlastník předplatného Nebo skupiny prostředků Azure
Přihlaste se na web Azure Portal. Ujistěte se, že máte přístup k předplatnému nebo skupině prostředků, ve které se bude účet Azure Automation nacházet.
Vyberte předplatné nebo skupinu prostředků a vyberte Vytvořit. Zadejte Automation, v Microsoftu vyberte službu Automation Azure a pak vyberte Vytvořit.
Po vytvoření účtu Azure Automation vyberte Řízení přístupu (IAM). Pak vyberte Zobrazit v zobrazení přístup k tomuto prostředku. Tito uživatelé a instanční objekty budou následně moci komunikovat se službou Microsoft prostřednictvím skriptů, které se vytvoří v daném účtu Azure Automation.
Zkontrolujte uživatele a instanční objekty, které jsou tam uvedené, a ujistěte se, že jsou autorizované. Odeberte všechny uživatele, kteří nejsou neoprávnění.
Vytvoření páru klíčů podepsaných svým držitelem a certifikátu v počítači
Aby mohl fungovat bez nutnosti vašich osobních přihlašovacích údajů, bude potřeba, aby se účet Azure Automation, který jste vytvořili, ověřil pomocí certifikátu v Microsoft Entra ID.
Pokud už máte pár klíčů pro ověřování služby v Microsoft Entra ID a certifikát, který jste dostali od certifikační autority, přejděte k další části.
Pokud chcete vygenerovat certifikát podepsaný svým držitelem,
Postupujte podle pokynů v tom, jak vytvořit certifikát podepsaný svým držitelem ( možnost 2) a vytvořit a exportovat certifikát s jeho privátním klíčem.
Zobrazí kryptografický otisk certifikátu.
$cert | ft Thumbprint
Po exportu souborů můžete odebrat dvojici certifikátů a klíčů z místního úložiště certifikátů uživatele. Po nahrání certifikátu a privátního klíče do služeb Azure Automation a Microsoft Entra v dalších krocích odeberete
.pfx
.crt
i soubory.
Nahrání páru klíčů do Azure Automation
Runbook ve službě Azure Automation načte privátní klíč ze .pfx
souboru a použije ho k ověřování v Microsoft Graphu.
Na webu Azure Portal pro účet Azure Automation vyberte Certifikáty a přidejte certifikát.
.pfx
Nahrajte soubor vytvořený dříve a zadejte heslo, které jste zadali při vytváření souboru.Po nahrání privátního klíče si poznamenejte datum vypršení platnosti certifikátu.
Teď můžete soubor odstranit
.pfx
z místního počítače. Soubor ale zatím neodstraňovat.crt
, protože potřebujete tento soubor v dalším kroku.
Přidání modulů pro Microsoft Graph do účtu Azure Automation
Azure Automation ve výchozím nastavení nemá předem načtené žádné moduly PowerShellu pro Microsoft Graph. Musíte přidat Microsoft.Graph.Authentication a pak další moduly z galerie do účtu Automation.
Na webu Azure Portal pro účet Azure Automation vyberte Moduly a pak galerii Procházet.
Na panelu hledání zadejte Microsoft.Graph.Authentication. Vyberte modul, vyberte Importovat a vyberte OK , pokud chcete, aby ID Microsoft Entra začal importovat modul. Po výběru ok může import modulu trvat několik minut. Nepokoušejte se přidat další moduly Microsoft Graphu, dokud se nedokončí import modulu Microsoft.Graph.Authentication, protože tyto další moduly mají microsoft.Graph.Authentication jako předpoklad.
Vraťte se do seznamu Moduly a vyberte Aktualizovat. Jakmile se stav modulu Microsoft.Graph.Authentication změní na Dostupný, můžete naimportovat další modul.
Pokud používáte rutiny pro funkce zásad správného řízení Microsoft Entra ID, jako je správa nároků, opakujte proces importu modulu Microsoft.Graph.Identity.Governance.
Importujte další moduly, které váš skript může vyžadovat, například Microsoft.Graph.Users. Pokud například používáte Microsoft Entra ID Protection, můžete importovat modul Microsoft.Graph.Identity.SignIns .
Vytvoření registrace aplikace a přiřazení oprávnění
Dále vytvoříte registraci aplikace v Microsoft Entra ID, aby ID Microsoft Entra rozpoznalo certifikát runbooku Azure Automation pro ověřování.
- Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce aplikací.
- Přejděte k aplikacím> identit>Registrace aplikací.
- Vyberte Nová registrace.
- Zadejte název aplikace a vyberte Zaregistrovat.
- Po vytvoření registrace aplikace si poznamenejte ID aplikace (klienta) a ID adresáře (tenanta), protože je budete později potřebovat.
- Vyberte Certifikáty a certifikáty>tajného>klíče nahrání certifikátu.
.crt
Nahrajte soubor vytvořený dříve.
- Vyberte Oprávnění rozhraní API>Přidat oprávnění.
- Vyberte oprávnění aplikace Microsoft Graph>.
Vyberte všechna oprávnění, která váš účet Azure Automation vyžaduje, a pak vyberte Přidat oprávnění.
- Pokud runbook provádí pouze dotazy nebo aktualizace v rámci jednoho katalogu, nemusíte mu přiřazovat oprávnění aplikace pro celého tenanta; místo toho můžete instanční objekt přiřadit roli vlastníka katalogu nebo čtenáře katalogu.
- Pokud runbook provádí pouze dotazy na správu nároků, může použít oprávnění EntitlementManagement.Read.All .
- Pokud runbook provádí změny správy nároků, například k vytvoření přiřazení napříč více katalogy, použijte oprávnění EntitlementManagement.ReadWrite.All .
- U jiných rozhraní API se ujistěte, že je přidaná potřebná oprávnění. Například pro Microsoft Entra ID Protection může být potřeba oprávnění IdentityRiskyUser.Read.All .
Udělit souhlas správce
Aplikace vytvořená v předchozí části má oprávnění, která vyžadují, aby někdo s alespoň rolí správce privilegovaných rolí schvaloval, než bude fungovat podle očekávání.
- Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce privilegovaných rolí.
- Přejděte k aplikacím> identit>Registrace aplikací> Všechny aplikace.
- Vyberte aplikaci vytvořenou v předchozí části.
- Vyberte oprávnění rozhraní API a zkontrolujte požadovaná oprávnění.
- Pokud je to vhodné, vyberte Možnost Udělit souhlas správce pro název vašeho tenanta , abyste aplikaci udělili tato oprávnění.
Vytváření proměnných Azure Automation
V tomto kroku vytvoříte v účtu Azure Automation tři proměnné, které runbook používá k určení způsobu ověřování u ID Microsoft Entra.
Na webu Azure Portal se vraťte do účtu Azure Automation.
Vyberte proměnné a přidejte proměnnou.
Vytvořte proměnnou s názvem Kryptografický otisk. Jako hodnotu proměnné zadejte kryptografický otisk certifikátu, který byl vygenerován dříve.
Vytvořte proměnnou s názvem ClientId. Jako hodnotu proměnné zadejte ID klienta pro aplikaci zaregistrovanou v Microsoft Entra ID.
Vytvořte proměnnou s názvem TenantId. Jako hodnotu proměnné zadejte ID tenanta adresáře, ve kterém byla aplikace zaregistrována.
Vytvoření runbooku Azure Automation PowerShellu, který může používat Graph
V tomto kroku vytvoříte počáteční runbook. Tento runbook můžete aktivovat, abyste ověřili úspěšné ověření pomocí certifikátu vytvořeného dříve.
Vyberte Runbooky a vytvořte runbook.
Zadejte název runbooku, jako typ runbooku vyberte PowerShell , který chcete vytvořit, a vyberte Vytvořit.
Po vytvoření runbooku se zobrazí podokno pro úpravy textu, ve které můžete zadat zdrojový kód PowerShellu runbooku.
Do textového editoru zadejte následující PowerShell.
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
Vyberte testovací podokno a vyberte Spustit. Počkejte několik sekund, než se dokončí zpracování skriptu runbooku Azure Automation.
Pokud je spuštění runbooku úspěšné, zobrazí se zpráva Vítá vás Microsoft Graph!
Teď, když jste ověřili, že se váš runbook může ověřit v Microsoft Graphu, rozšiřte runbook přidáním rutin pro interakci s funkcemi Microsoft Entra.
Rozšíření runbooku tak, aby používal správu nároků
Pokud má registrace aplikace pro váš runbook oprávnění EntitlementManagement.Read.All nebo EntitlementManagement.ReadWrite.All , může použít rozhraní API pro správu nároků.
- Pokud například chcete získat seznam přístupových balíčků pro správu nároků Microsoft Entra, můžete aktualizovat výše vytvořený runbook a nahradit text následujícím Prostředím 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
}
Vyberte testovací podokno a vyberte Spustit. Počkejte několik sekund, než se dokončí zpracování skriptu runbooku Azure Automation.
Pokud bylo spuštění úspěšné, bude výstupem místo uvítací zprávy pole JSON. Pole JSON obsahuje ID a zobrazovaný název každého přístupového balíčku vráceného z dotazu.
Zadání parametrů runbooku (volitelné)
Do runbooku můžete také přidat vstupní parametry přidáním Param
oddílu v horní části skriptu PowerShellu. Příklad:
Param
(
[String] $AccessPackageAssignmentId
)
Formát povolených parametrů závisí na volající službě. Pokud runbook převezme parametry z volajícího, musíte do runbooku přidat ověřovací logiku, abyste zajistili, že zadané hodnoty parametrů odpovídají způsobu spuštění runbooku. Pokud například váš runbook spustí webhook, Azure Automation neprovádí u požadavku webhooku žádné ověřování, pokud je provedená na správné adrese URL, takže potřebujete alternativní způsob ověření požadavku.
Jakmile nakonfigurujete vstupní parametry runbooku, můžete při testování runbooku zadat hodnoty na stránce Test. Později, když se runbook publikuje, můžete zadat parametry při spuštění runbooku z PowerShellu, rozhraní REST API nebo aplikace logiky.
Parsování výstupu účtu Azure Automation v Logic Apps (volitelné)
Po publikování runbooku můžete vytvořit plán ve službě Azure Automation a propojit runbook s plánem, který se má spustit automaticky. Plánování runbooků z Azure Automation je vhodné pro runbooky, které nepotřebují pracovat s jinými službami Azure nebo Office 365, které nemají rozhraní PowerShellu.
Pokud chcete odeslat výstup runbooku do jiné služby, můžete zvážit použití Azure Logic Apps ke spuštění runbooku Azure Automation, protože Logic Apps může také analyzovat výsledky.
V Azure Logic Apps vytvořte aplikaci logiky v Návrháři pro Logic Apps počínaje opakováním.
Přidejte úlohu Vytvoření operace ze služby Azure Automation. Ověřte se u ID Microsoft Entra a vyberte předplatné, skupinu prostředků, účet Automation vytvořený dříve. Vyberte Počkat na úlohu.
Přidejte název runbooku parametru a zadejte název runbooku, který se má spustit. Pokud má runbook vstupní parametry, můžete jim zadat hodnoty.
Vyberte Nový krok a přidejte operaci Získat výstup úlohy. Vyberte stejné předplatné, skupinu prostředků, účet Automation jako předchozí krok a vyberte dynamickou hodnotu ID úlohy z předchozího kroku.
Do aplikace logiky pak můžete přidat další operace, například akci Parsovat JSON, která používá obsah vrácený po dokončení runbooku. (Pokud automaticky generujete Parsujte schéma JSON z ukázkové datové části, nezapomeňte použít skript PowerShellu, který potenciálně vrací hodnotu null. Možná budete muset změnit některé hodnoty
"type": "string"
na"type": ["string", "null"]
schéma.)
V Azure Automation se runbook PowerShellu nepodaří dokončit, pokud se pokusí napsat velké množství dat do výstupního datového proudu najednou. Tento problém můžete obvykle vyřešit tak, že runbook zobrazí výstup jenom informací potřebných aplikací logiky, jako je například vyloučení nepotřebných vlastností pomocí Select-Object -Property
rutiny.
Plánování udržování certifikátu v aktualizovaném stavu
Pokud jste vytvořili certifikát podepsaný svým držitelem podle výše uvedeného postupu pro ověřování, mějte na paměti, že certifikát má omezenou životnost, než vyprší jeho platnost. Musíte znovu vygenerovat certifikát a nahrát nový certifikát před datem vypršení jeho platnosti.
Na webu Azure Portal můžete vidět datum vypršení platnosti na dvou místech.
- Na obrazovce Certifikáty ve službě Azure Automation se zobrazí datum vypršení platnosti certifikátu.
- Na obrazovce Registrace aplikace v Microsoft Entra ID se na obrazovce Certifikáty a tajné kódy zobrazí datum vypršení platnosti certifikátu použitého pro účet Azure Automation.