Microsoft Entra ID-governance taken automatiseren via Azure Automation en Microsoft Graph
Azure Automation is een Azure-cloudservice waarmee u algemene of terugkerende systeembeheer en -processen kunt automatiseren. Microsoft Graph is het Microsoft Unified API-eindpunt voor Microsoft Entra-functies waarmee gebruikers, groepen, toegangspakketten, toegangsbeoordelingen en andere resources in de directory worden beheerd. U kunt Microsoft Entra ID op schaal beheren vanaf de PowerShell-opdrachtregel met behulp van de Microsoft Graph PowerShell SDK. U kunt ook de Microsoft Graph PowerShell-cmdlets opnemen vanuit een op PowerShell gebaseerd runbook in Azure Automation, zodat u Microsoft Entra-taken kunt automatiseren vanuit een eenvoudig script.
Azure Automation en de PowerShell Graph SDK ondersteunen verificatie op basis van certificaten en toepassingsmachtigingen, zodat u Azure Automation-runbooks kunt laten verifiëren bij Microsoft Entra ID zonder dat hiervoor een gebruikerscontext nodig is.
In dit artikel leest u hoe u aan de slag kunt met Azure Automation voor Microsoft Entra ID-governance door een eenvoudig runbook te maken waarmee rechtenbeheer via Microsoft Graph PowerShell wordt opgevraagd.
Een Azure Automation-account maken
Fooi
Stappen in dit artikel kunnen enigszins variëren op basis van de portal waaruit u begint.
Azure Automation biedt een in de cloud gehoste omgeving voor runbookuitvoering. Deze runbooks kunnen automatisch worden gestart op basis van een schema of worden geactiveerd door webhooks of door Logic Apps.
Als u Azure Automation gebruikt, moet u een Azure-abonnement hebben.
Vereiste rol: Eigenaar van Azure-abonnement of resourcegroep
Meld u aan bij Azure Portal . Zorg ervoor dat u toegang hebt tot het abonnement of de resourcegroep waar het Azure Automation-account zich bevindt.
Selecteer het abonnement of de resourcegroep en selecteer Maken. Typ Automation, selecteer de Automation Azure-service van Microsoft en selecteer vervolgens Maken.
Nadat het Azure Automation-account is gemaakt, selecteert u Toegangsbeheer (IAM). Selecteer Vervolgens Weergave in Weergavetoegang tot deze resource. Deze gebruikers en service-principals kunnen vervolgens communiceren met de Microsoft-service via de scripts die moeten worden gemaakt in dat Azure Automation-account.
Controleer de gebruikers en service-principals die daar worden vermeld en zorg ervoor dat ze gemachtigd zijn. Verwijder gebruikers die niet gemachtigd zijn.
Een zelfondertekend sleutelpaar en certificaat op uw computer maken
Zodat het kan werken zonder dat u uw persoonlijke referenties nodig hebt, moet het Azure Automation-account dat u hebt gemaakt, zich verifiëren bij Microsoft Entra-id met een certificaat.
Als u al een sleutelpaar hebt voor het verifiëren van uw service bij Microsoft Entra-id en een certificaat dat u hebt ontvangen van een certificeringsinstantie, gaat u verder met de volgende sectie.
Een zelfondertekend certificaat genereren:
Volg de instructies in het maken van een zelfondertekend certificaat, optie 2, om een certificaat met de persoonlijke sleutel te maken en te exporteren.
Geef de vingerafdruk van het certificaat weer.
$cert | ft Thumbprint
Nadat u de bestanden hebt geëxporteerd, kunt u het certificaat en sleutelpaar verwijderen uit het certificaatarchief van uw lokale gebruiker. In de volgende stappen verwijdert u de
.pfx
en.crt
bestanden ook, zodra het certificaat en de persoonlijke sleutel zijn geüpload naar de Azure Automation- en Microsoft Entra-services.
Het sleutelpaar uploaden naar Azure Automation
Uw runbook in Azure Automation haalt de persoonlijke sleutel op uit het .pfx
bestand en gebruikt dit voor verificatie bij Microsoft Graph.
Selecteer Certificaten en een certificaat toevoegen in Azure Portal voor het Azure Automation-account.
Upload het
.pfx
bestand dat u eerder hebt gemaakt en typ het wachtwoord dat u hebt opgegeven toen u het bestand maakte.Nadat de persoonlijke sleutel is geüpload, registreert u de vervaldatum van het certificaat.
U kunt het
.pfx
bestand nu van uw lokale computer verwijderen. Verwijder het.crt
bestand echter nog niet, omdat u dit bestand in een volgende stap nodig hebt.
Modules voor Microsoft Graph toevoegen aan uw Azure Automation-account
Azure Automation heeft standaard geen PowerShell-modules vooraf geladen voor Microsoft Graph. U moet Microsoft.Graph.Authentication en vervolgens extra modules uit de galerie toevoegen aan uw Automation-account.
Selecteer Modules in Azure Portal voor het Azure Automation-account en blader vervolgens door de galerie.
Typ Microsoft.Graph.Authentication in de zoekbalk. Selecteer de module, selecteer Importeren en selecteer OK om de Microsoft Entra-id te laten beginnen met het importeren van de module. Nadat u OK hebt geselecteerd, kan het importeren van een module enkele minuten duren. Probeer niet meer Microsoft Graph-modules toe te voegen totdat het importeren van de Microsoft.Graph.Authentication-module is voltooid, omdat deze andere modules Microsoft.Graph.Authentication als een vereiste hebben.
Ga terug naar de lijst modules en selecteer Vernieuwen. Zodra de status van de module Microsoft.Graph.Authentication is gewijzigd in Beschikbaar, kunt u de volgende module importeren.
Als u de cmdlets gebruikt voor Microsoft Entra ID-governance functies, zoals rechtenbeheer, herhaalt u het importproces voor de module Microsoft.Graph.Identity.Governance.
Importeer andere modules die uw script kan vereisen, zoals Microsoft.Graph.Users. Als u bijvoorbeeld Microsoft Entra ID Protection gebruikt, kunt u de module Microsoft.Graph.Identity.SignIns importeren.
Een app-registratie maken en machtigingen toewijzen
Vervolgens maakt u een app-registratie in Microsoft Entra ID, zodat Microsoft Entra ID het certificaat van uw Azure Automation-runbook voor verificatie herkent.
- Meld u als toepassingsbeheerder aan bij het Microsoft Entra-beheercentrum.
- Blader naar identiteitstoepassingen>> App-registraties.
- Selecteer Nieuwe registratie.
- Typ een naam voor de toepassing en selecteer Registreren.
- Zodra de toepassingsregistratie is gemaakt, noteert u de id van de toepassing (client) en de map-id (tenant), omdat u deze items later nodig hebt.
- Selecteer Certificaten en certificaten>uploaden>certificaat.
- Upload het
.crt
bestand dat u eerder hebt gemaakt.
- Upload het
- Selecteer API-machtigingen>Een machtiging toevoegen.
- Selecteer Microsoft Graph-toepassingsmachtigingen>.
Selecteer elk van de machtigingen die uw Azure Automation-account nodig heeft en selecteer vervolgens Machtigingen toevoegen.
- Als uw runbook alleen query's of updates uitvoert binnen één catalogus, hoeft u deze niet toe te wijzen aan toepassingsmachtigingen voor de hele tenant; In plaats daarvan kunt u de service-principal toewijzen aan de rol Cataloguseigenaar of Cataloguslezer .
- Als uw runbook alleen query's uitvoert voor rechtenbeheer, kan het de machtiging EntitlementManagement.Read.All gebruiken.
- Als uw runbook wijzigingen aanbrengt in rechtenbeheer, bijvoorbeeld om toewijzingen te maken in meerdere catalogi, gebruikt u de machtiging EntitlementManagement.ReadWrite.All .
- Voor andere API's moet u ervoor zorgen dat de benodigde machtiging wordt toegevoegd. Voor Microsoft Entra ID Protection is bijvoorbeeld mogelijk de machtiging IdentityRiskyUser.Read.All nodig.
Beheerderstoestemming verlenen
De toepassing die in de vorige sectie is gemaakt, heeft machtigingen waarvoor iemand met ten minste de rol Beheerder van bevoorrechte rol moet goedkeuren voordat deze werkt zoals bedoeld.
- Meld u aan bij het Microsoft Entra-beheercentrum als minimaal beheerder van bevoorrechte rollen.
- Blader naar Identiteitstoepassingen>> App-registraties> Alle toepassingen.
- Selecteer de app die in de vorige sectie is gemaakt.
- Selecteer API-machtigingen en controleer de vereiste machtigingen.
- Selecteer , indien van toepassing, beheerderstoestemming verlenen voor 'Uw tenantnaam' om de toepassing deze machtigingen te geven.
Azure Automation-variabelen maken
In deze stap maakt u in het Azure Automation-account drie variabelen die door het runbook worden gebruikt om te bepalen hoe verificatie bij Microsoft Entra-id moet worden uitgevoerd.
Ga in Azure Portal terug naar het Azure Automation-account.
Selecteer variabelen en voeg een variabele toe.
Maak een variabele met de naam Thumbprint. Typ, als de waarde van de variabele, de vingerafdruk van het certificaat die eerder is gegenereerd.
Maak een variabele met de naam ClientId. Typ, als de waarde van de variabele, de client-id voor de toepassing die is geregistreerd in Microsoft Entra-id.
Maak een variabele met de naam TenantId. Typ, als de waarde van de variabele, de tenant-id van de map waarin de toepassing is geregistreerd.
Een Azure Automation PowerShell-runbook maken dat Graph kan gebruiken
In deze stap maakt u een eerste runbook. U kunt dit runbook activeren om te controleren of de verificatie is geslaagd met het certificaat dat u eerder hebt gemaakt.
Selecteer Runbooks en Maak een runbook.
Typ de naam van het runbook, selecteer PowerShell als het type runbook dat u wilt maken en selecteer Maken.
Zodra het runbook is gemaakt, wordt er een tekstbewerkingsvenster weergegeven waarin u de PowerShell-broncode van het runbook kunt typen.
Typ de volgende PowerShell in de teksteditor.
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
Selecteer het testvenster en selecteer Start. Wacht enkele seconden totdat de Azure Automation-verwerking van uw runbookscript is voltooid.
Als de uitvoering van uw runbook is geslaagd, wordt het bericht Welkom bij Microsoft Graph! weergegeven.
Nu u hebt gecontroleerd of uw runbook kan worden geverifieerd bij Microsoft Graph, kunt u uw runbook uitbreiden door cmdlets toe te voegen voor interactie met Microsoft Entra-functies.
Het runbook uitbreiden om Rechtenbeheer te gebruiken
Als de app-registratie voor uw runbook de machtigingen EntitlementManagement.Read.All of EntitlementManagement.ReadWrite.All heeft, kunnen de rechtenbeheer-API's worden gebruikt.
- Als u bijvoorbeeld een lijst met Microsoft Entra-rechtenbeheertoegangspakketten wilt ophalen, kunt u het hierboven gemaakte runbook bijwerken en de tekst vervangen door de volgende 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
}
Selecteer het testvenster en selecteer Start. Wacht enkele seconden totdat de Azure Automation-verwerking van uw runbookscript is voltooid.
Als de uitvoering is geslaagd, is de uitvoer in plaats van het welkomstbericht een JSON-matrix. De JSON-matrix bevat de id en weergavenaam van elk toegangspakket dat door de query wordt geretourneerd.
Parameters opgeven voor het runbook (optioneel)
U kunt ook invoerparameters toevoegen aan uw runbook door boven aan het PowerShell-script een Param
sectie toe te voegen. Bijvoorbeeld
Param
(
[String] $AccessPackageAssignmentId
)
De indeling van de toegestane parameters is afhankelijk van de aanroepende service. Als uw runbook parameters van de aanroeper accepteert, moet u validatielogica toevoegen aan uw runbook om ervoor te zorgen dat de opgegeven parameterwaarden geschikt zijn voor de manier waarop het runbook kan worden gestart. Als uw runbook bijvoorbeeld wordt gestart door een webhook, voert Azure Automation geen verificatie uit op een webhookaanvraag zolang het is verzonden naar de juiste URL, dus u hebt een alternatieve methode nodig om de aanvraag te valideren.
Zodra u runbookinvoerparameters hebt geconfigureerd, kunt u waarden opgeven via de pagina Testen wanneer u uw runbook test. Wanneer het runbook later wordt gepubliceerd, kunt u parameters opgeven bij het starten van het runbook vanuit PowerShell, de REST API of een logische app.
De uitvoer van een Azure Automation-account parseren in Logic Apps (optioneel)
Zodra uw runbook is gepubliceerd, kunt u een planning maken in Azure Automation en uw runbook koppelen aan die planning om automatisch te worden uitgevoerd. Het plannen van runbooks van Azure Automation is geschikt voor runbooks die niet hoeven te communiceren met andere Azure- of Office 365-services die geen PowerShell-interfaces hebben.
Als u de uitvoer van uw runbook naar een andere service wilt verzenden, kunt u overwegen om Azure Logic Apps te gebruiken om uw Azure Automation-runbook te starten, omdat Logic Apps ook de resultaten kan parseren.
Maak in Azure Logic Apps een logische app in logic apps designer die begint met terugkeerpatroon.
Voeg de bewerking Create-taak toe vanuit Azure Automation. Verifieer bij Microsoft Entra ID en selecteer het abonnement, de resourcegroep, het Automation-account dat u eerder hebt gemaakt. Selecteer Wachten op taak.
Voeg de naam van het parameterrunbook toe en typ de naam van het runbook dat moet worden gestart. Als het runbook invoerparameters heeft, kunt u de waarden opgeven.
Selecteer Nieuwe stap en voeg de bewerking Taakuitvoer ophalen toe. Selecteer hetzelfde abonnement, de resourcegroep, het Automation-account als de vorige stap en selecteer de dynamische waarde van de taak-id uit de vorige stap.
U kunt vervolgens meer bewerkingen toevoegen aan de logische app, zoals de JSON-actie Parseren die gebruikmaakt van de inhoud die wordt geretourneerd wanneer het runbook is voltooid. (Als u de functie automatisch genereertParseer het JSON-schema van een voorbeeldpayload. Zorg ervoor dat u rekening houdt met het PowerShell-script dat mogelijk null retourneert. Mogelijk moet u een deel van het
"type": "string"
"type": ["string", "null"]
schema wijzigen in.)
In Azure Automation kan een PowerShell-runbook niet worden voltooid als er tegelijkertijd een grote hoeveelheid gegevens naar de uitvoerstroom wordt geschreven. U kunt dit probleem meestal omzeilen door het runbook alleen de informatie te laten uitvoeren die nodig is voor de logische app, zoals door de Select-Object -Property
cmdlet te gebruiken om overbodige eigenschappen uit te sluiten.
Het certificaat up-to-date houden
Als u een zelfondertekend certificaat hebt gemaakt volgens de bovenstaande stappen voor verificatie, moet u er rekening mee houden dat het certificaat een beperkte levensduur heeft voordat het verloopt. U moet het certificaat opnieuw genereren en het nieuwe certificaat vóór de vervaldatum uploaden.
Er zijn twee plaatsen waar u de vervaldatum in Azure Portal kunt zien.
- In Azure Automation wordt in het scherm Certificaten de vervaldatum van het certificaat weergegeven.
- In Microsoft Entra ID geeft in de app-registratie op het scherm Certificaten en geheimen de vervaldatum weer van het certificaat dat wordt gebruikt voor het Azure Automation-account.