Sdílet prostřednictvím


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 i cmdlety Microsoft Graph PowerShell z runbooku založeného na PowerShellu ve službě Azure Automation, abyste mohli úlohy Entra automatizovat pomocí jednoduchého skriptu.

Azure Automation a PowerShell Graph SDK podporují ověřování založené na certifikátech a oprávnění aplikací, takže runbooky Azure Automation se mohou autentizovat vůči Microsoft Entra ID bez nutnosti kontextu uživatele.

V tomto článku se dozvíte, jak začít používat Azure Automation pro správu Microsoft Entra ID Governance vytvořením jednoduchého runbooku, který dotazuje na správu oprávnění prostřednictvím Microsoft Graph PowerShellu.

Vytvoření účtu Azure Automation

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

  1. 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.

  2. 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.

  3. Po vytvoření účtu Azure Automation vyberte Řízení přístupu (IAM). Pak vyberte Zobrazit v Zobrazit 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.

  4. 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řte samosignovaný pár klíčů a certifikát ve svém 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.

Pro vygenerování samopodepsaného certifikátu,

  1. 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.

  2. Zobrazí kryptografický otisk certifikátu.

     $cert | ft Thumbprint
    
  3. Po exportu souborů můžete odebrat dvojici certifikátů a klíčů z místního úložiště certifikátů uživatele. V dalších krocích odeberete tyto soubory .pfx a .crt po nahrání certifikátu a privátního klíče do služeb Azure Automation a Microsoft Entra.

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í pomocí Microsoft Graphu.

  1. Na webu Azure Portal pro účet Azure Automation vyberte Certifikáty a přidejte certifikát.

  2. .pfx Nahrajte soubor vytvořený dříve a zadejte heslo, které jste zadali při vytváření souboru.

  3. Po nahrání privátního klíče si poznamenejte datum vypršení platnosti certifikátu.

  4. Teď můžete soubor odstranit .pfx z místního počítače. Zatím soubor .crt nemažte, protože tento soubor budete potřebovat 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.

  1. Na portálu Azure pro účet Azure Automation vyberte Moduly a pak Procházet galerii.

  2. 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.

  3. 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.

  4. 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.

  5. 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 tento systém rozpoznal certifikát runbooku Azure Automation pro ověřování.

  1. Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce aplikací.
  2. Přejděte k Identitám>Aplikacím>Registracím aplikací.
  3. Vyberte Nová registrace.
  4. Zadejte název aplikace a vyberte Zaregistrovat.
    1. Po vytvoření registrace aplikace si poznamenejte ID aplikace (klienta) a ID adresáře (tenanta), protože je budete později potřebovat.
  5. Vyberte Certifikáty a tajemství>Certifikáty>Nahrát certifikát.
    1. .crt Nahrajte soubor vytvořený dříve.
  6. Vyberte Oprávnění rozhraní API>Přidat oprávnění.
  7. Vyberte Microsoft Graph>oprávnění aplikace.
    1. 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ímu objektu přiřadit roli vlastníka katalogu nebo čtenáře katalogu.
      • Pokud váš runbook provádí pouze dotazy pro řízení oprávnění, může použít oprávnění EntitlementManagement.Read.All.
      • Pokud runbook provádí změny ve správě nároků, například pro vytvoření přiřazení napříč několika 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 .

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í.

  1. Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce privilegovaných rolí.
  2. Přejděte k Identity>Applications>App registrations>Všechny aplikace.
  3. Vyberte aplikaci vytvořenou v předchozí části.
  4. Vyberte oprávnění rozhraní API a zkontrolujte požadovaná oprávnění.
  5. Pokud je to vhodné, vyberte 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.

  1. Na webu Azure Portal se vraťte do účtu Azure Automation.

  2. Vyberte proměnné a přidejte proměnnou.

  3. Vytvořte proměnnou s názvem Kryptografický otisk. Jako hodnotu proměnné zadejte kryptografický otisk certifikátu, který byl vygenerován dříve.

  4. Vytvořte proměnnou s názvem ClientId. Jako hodnotu proměnné zadejte ID klienta pro aplikaci zaregistrovanou v Microsoft Entra ID.

  5. 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 spustit, abyste ověřili, že ověřování pomocí certifikátu vytvořeného dříve je úspěšné.

  1. Vyberte Runbooks a Vytvořte runbook.

  2. Zadejte název runbooku, jako typ runbooku vyberte PowerShell , který chcete vytvořit, a vyberte Vytvořit.

  3. Po vytvoření runbooku se zobrazí podokno pro úpravy textu, ve kterém můžete zadat zdrojový kód PowerShellu runbooku.

  4. 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
  1. Vyberte testovací podokno a vyberte Spustit. Počkejte několik sekund, než se zpracování skriptu runbooku v Azure Automation dokončí.

  2. 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šiřte runbook, 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 oprávnění.

  1. 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 skriptem 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. Vyberte testovací podokno a vyberte Spustit. Počkejte několik sekund, než se dokončí zpracování skriptu runbooku v Azure Automation.

  2. 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 sekce Param v horní části skriptu PowerShell. 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, proto 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.

  1. V Azure Logic Apps vytvořte Logic App v Návrháři Logic Apps, která začíná Opakováním.

  2. Přidejte operaci Vytvořit úlohu ze Azure Automation. Ověřte se u služby Microsoft Entra ID a vyberte předplatné, skupinu prostředků a účet pro účely automatizace, které byly vytvořeny dříve. Vyberte Počkat na úlohu.

  3. Přidejte parametr Název runbooku a zadejte název runbooku, který se má spustit. Pokud má runbook vstupní parametry, můžete jim zadat hodnoty.

  4. Vyberte Nový krok a přidejte operaci Získat výstup úlohy. Vyberte stejné předplatné, skupinu prostředků, účet automatizace jako v předchozím kroku a vyberte dynamickou hodnotu ID úlohy z předchozího kroku.

  5. 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 Parse JSON schéma z ukázkového datového balíčku, bezpečně počítejte s tím, že skript PowerShellu může vrátit hodnotu null; možná bude potřeba změnit některé hodnoty "type": ​"string" na "type": [​"string",​ "null"​] ve schématu.)

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.
  • V Microsoft Entra ID, na obrazovce registrace aplikace, se na obrazovce Certifikáty a tajemství zobrazuje datum vypršení platnosti certifikátu použitého pro účet Azure Automation.

Další kroky