Microsoft 365: Entitlement Management Inschakelen Voor Geautomatiseerd Toegangsbeheer

💼 Management Samenvatting

Entitlement Management in Microsoft 365 stelt organisaties in staat om toegangsbeheer te automatiseren via self-service access packages, waarbij gebruikers toegang kunnen aanvragen tot resources zoals groepen, applicaties en SharePoint-sites via een gecontroleerd goedkeuringsproces met automatische expiratie en periodieke herbeoordeling. Deze functionaliteit vormt de basis voor een volwassen identity governance-strategie waarin toegangsrechten worden gemanaged op basis van business needs in plaats van technische configuraties.

Aanbeveling
IMPLEMENT
Risico zonder
High
Risk Score
7/10
Implementatie
12u (tech: 4u)
Van toepassing op:
M365
Azure AD

Zonder Entitlement Management moeten IT-afdelingen handmatig toegangsrechten toekennen en intrekken voor duizenden gebruikers, wat resulteert in trage responstijden, menselijke fouten en een gebrek aan transparantie over wie toegang heeft en waarom. Organisaties kampen met access sprawl omdat medewerkers die van functie wisselen toegang behouden tot oude systemen, externe gastgebruikers actief blijven lang nadat projecten zijn afgerond, en ad-hoc toekenningen niet worden gecontroleerd of gedocumenteerd. Deze situatie creëert aanzienlijke beveiligingsrisico's omdat elke extra rechten een potentieel aanvalsoppervlak vormt en omdat auditors niet kunnen verifiëren of toegangsrechten nog gerechtvaardigd zijn. Bovendien vereisen compliance-kaders zoals de Baseline Informatiebeveiliging Overheid, ISO 27001 en NIS2 expliciet dat organisaties kunnen aantonen dat toegangsrechten worden beheerd op basis van het least privilege-principe en dat er periodieke controles plaatsvinden. Entitlement Management lost dit op door een gestructureerd self-service-model waarin gebruikers toegang aanvragen via access packages, waarbij managers of resource-eigenaren de aanvraag goedkeuren, waarbij toegang automatisch wordt ingetrokken na expiratie en waarbij periodieke reviews worden uitgevoerd om te verifiëren of toegang nog nodig is. Dit resulteert in snellere toegang voor gebruikers, minder administratieve last voor IT, volledige traceerbaarheid voor auditors en een aanzienlijke reductie van het totale aanvalsoppervlak door automatische lifecycle management van toegangsrechten.

PowerShell Modules Vereist
Primary API: Microsoft Graph API
Connection: Connect-MgGraph
Required Modules: Microsoft.Graph.Identity.Governance

Implementatie

Deze maatregel richt zich op het inschakelen en verifiëren van Entitlement Management binnen Microsoft 365. Het omvat het activeren van de functionaliteit in Azure AD, het configureren van basisinstellingen zoals catalogusbeheerders en toegangspakketbeleid, het valideren dat de service operationeel is en het opzetten van monitoring om te controleren dat Entitlement Management actief blijft. Daarnaast worden processen vastgelegd voor het beheer van catalogusbeheerders, het omgaan met licentievereisten en het integreren van Entitlement Management in bestaande identity governance-workflows. Het resultaat is een geactiveerd systeem dat klaar is voor de implementatie van access packages en dat voldoet aan compliance-eisen voor gestructureerd toegangsbeheer.

Vereisten voor Entitlement Management

Een volwaardige Entitlement Management-implementatie vereist Azure AD Premium P2-licenties voor alle gebruikers die access packages aanvragen, beheren of goedkeuren. Zonder deze licenties is Entitlement Management niet beschikbaar en moeten organisaties terugvallen op handmatige toegangstoekenning, wat niet schaalbaar is en niet voldoet aan moderne governance-eisen. De Premium P2-licenties kunnen worden verkregen via Microsoft 365 E5, Microsoft 365 E5 Security, Azure AD Premium P2 standalone of via add-on licenties voor bestaande E3-omgevingen. Het is belangrijk om te benadrukken dat licenties worden toegewezen aan gebruikers, niet aan de tenant, en dat externe gastgebruikers die toegang aanvragen via Entitlement Management automatisch worden beheerd zonder dat er aanvullende licenties nodig zijn voor de gastgebruiker zelf.

Naast het licentiekader zijn er organisatorische vereisten voor het succesvol inschakelen van Entitlement Management. Organisaties moeten duidelijk definiëren wie verantwoordelijk is voor het beheer van catalogi, wie access packages ontwerpt en publiceert, en wie als goedkeurder optreedt voor verschillende typen toegangsaanvragen. In de praktijk betekent dit dat een identity governance-team of een dedicated Entitlement Management-beheerder wordt aangewezen die verantwoordelijk is voor het dagelijks beheer van catalogi, access packages en policies. Daarnaast moeten resource-eigenaren worden geïdentificeerd voor groepen, applicaties en SharePoint-sites die beschikbaar moeten zijn via access packages, zodat duidelijk is wie goedkeuringsrechten heeft en wie verantwoordelijk is voor het definiëren van welke resources in welk package horen. Leg deze rollen en verantwoordelijkheden vast in een RACI-matrix en koppel ze aan bestaande governance-processen zodat er geen conflicten ontstaan met andere toegangsbeheerprocessen.

De technische voorbereiding omvat het verifiëren dat Microsoft Graph API-toegang is geconfigureerd met de benodigde scopes voor Identity Governance, dat benodigde PowerShell-modules zoals Microsoft.Graph.Identity.Governance zijn geïnstalleerd en dat er een testomgeving beschikbaar is voor het valideren van Entitlement Management-configuraties voordat deze in productie worden genomen. Zorg er bovendien voor dat bestaande toegangstoekenningen zijn geïnventariseerd en dat duidelijk is welke resources eerst via Entitlement Management moeten worden ontsloten tijdens een gefaseerde uitrol. Dit voorkomt dat gebruikers tegelijkertijd toegang hebben via zowel handmatige toekenningen als access packages, wat kan leiden tot verwarring en dubbele toegang. Definieer een migratiestrategie waarin bestaande toegang wordt omgezet naar access packages en waarin een duidelijke deadline wordt gesteld voor het stopzetten van handmatige toekenningen voor resources die via Entitlement Management beschikbaar zijn.

Implementatie: Entitlement Management inschakelen

Het inschakelen van Entitlement Management begint bij het activeren van de functionaliteit in Azure AD, wat normaal gesproken automatisch gebeurt wanneer de eerste Azure AD Premium P2-licentie wordt toegewezen aan een gebruiker in de tenant. Echter, in sommige gevallen moet Entitlement Management expliciet worden geactiveerd via de Azure Portal of via PowerShell, vooral wanneer organisaties migreren van een andere identity governance-oplossing of wanneer de functionaliteit eerder is uitgeschakeld. Verifieer altijd dat Entitlement Management daadwerkelijk beschikbaar is door te controleren of de Identity Governance-sectie zichtbaar is in de Azure AD-portal en of er geen foutmeldingen worden getoond bij het openen van de Entitlement Management-workload.

Na het activeren van Entitlement Management is de eerste stap het aanstellen van catalogusbeheerders. Catalogi zijn containers waarin access packages worden gegroepeerd en beheerd, en catalogusbeheerders hebben de rechten om access packages te maken, te wijzigen en te verwijderen binnen hun catalogus. Best practice is om een algemene catalogus te maken voor organisatiebrede access packages en aanvullende catalogi per afdeling, project of business unit voor meer gesegmenteerd beheer. Benoem minimaal twee catalogusbeheerders per catalogus voor redundantie en functiescheiding, en zorg ervoor dat deze gebruikers voldoende training hebben gekregen in het ontwerpen en beheren van access packages. Het is verstandig om catalogusbeheerders toe te voegen aan een security group zodat deze rechten centraal kunnen worden beheerd en gemonitord, en om periodiek te controleren of catalogusbeheerders nog actief zijn en of hun rechten nog gerechtvaardigd zijn.

Vervolgens moeten basisinstellingen worden geconfigureerd zoals de standaardcatalogus, de My Access-portal URL die gebruikers gebruiken om toegang aan te vragen, en eventuele organisatiespecifieke branding voor de toegangsportal. Configureer daarnaast connectoren voor externe directories indien organisaties toegang willen verlenen aan gebruikers van partnerorganisaties via Entitlement Management, en stel policies in voor de levensduur van access packages, automatische expiratie en periodieke herbeoordeling. Deze basisconfiguratie vormt de fundering waarop later access packages kunnen worden gebouwd, en het is belangrijk om deze instellingen zorgvuldig te documenteren zodat nieuwe beheerders snel kunnen aanhaken en zodat auditors kunnen verifiëren dat Entitlement Management correct is geconfigureerd.

De laatste stap in het inschakelen van Entitlement Management is het valideren dat de service volledig operationeel is. Test of gebruikers de My Access-portal kunnen openen, of access packages zichtbaar zijn (zelfs als er nog geen zijn gepubliceerd), en of catalogusbeheerders nieuwe packages kunnen aanmaken. Verifieer daarnaast dat de Microsoft Graph API correct reageert op queries voor Entitlement Management-resources en dat PowerShell-cmdlets zoals Get-MgEntitlementManagementCatalog zonder fouten worden uitgevoerd. Door deze validatie uit te voeren voordat access packages worden gepubliceerd, voorkom je dat gebruikers foutmeldingen tegenkomen wanneer zij voor het eerst toegang proberen aan te vragen, en zorg je ervoor dat de basisinfrastructuur solide is voordat complexere workflows worden opgezet.

Compliance en Auditing

Voor toezichthouders is Entitlement Management direct bewijs dat de organisatie voldoet aan fundamentele eisen voor gestructureerd toegangsbeheer. De Baseline Informatiebeveiliging Overheid controle 09.02 vereist expliciet dat toegangsrechten worden beheerd volgens het principe van least privilege en dat er periodieke herbeoordeling plaatsvindt; door Entitlement Management in te schakelen en access packages te gebruiken met automatische expiratie en reviews kan de auditor snel verifiëren dat toegang wordt toegekend op basis van business justification, dat toegang automatisch wordt ingetrokken wanneer deze niet meer nodig is, en dat er een volledige audittrail bestaat van alle toegangsaanvragen, goedkeuringen en intrekkingen. Binnen ISO/IEC 27001:2022 controle A.9.2.1 staat dat organisaties formele procedures moeten hebben voor het toekennen en intrekken van toegangsrechten; Entitlement Management levert hiervoor concrete evidence in de vorm van gedefinieerde access packages, gestructureerde goedkeuringsworkflows en geautomatiseerde lifecycle management.

Ook internationale kaders profiteren van Entitlement Management. NIS2 Artikel 21 benoemt toegangsbeheer als verplichte organisatorische maatregel voor essentiële en belangrijke entiteiten; de combinatie van self-service aanvragen, gecontroleerde goedkeuring, automatische expiratie en periodieke reviews biedt aantoonbare invulling aan deze bepaling. Bovendien sluit Entitlement Management naadloos aan bij het Zero Trust-principe 'verify explicitly', omdat toegang continu wordt geverifieerd op basis van actuele business needs via periodieke reviews en omdat alle toegangstoekenningen traceerbaar zijn in het auditlogboek. Leg deze verbanden expliciet vast in het compliance-dossier, koppel rapportages aan het GRC-platform en zorg ervoor dat auditteams real-time inzicht hebben in toegangsaanvragen, goedkeuringsstatus en expiratiegebeurtenissen. Door deze rapportages te combineren met forensische logging en het Data Protection Impact Assessment ontstaat een geïntegreerd beeld waarmee de organisatie kan aantonen dat privacy by design en security by design daadwerkelijk zijn gerealiseerd.

Monitoring en Verificatie

Gebruik PowerShell-script entitlement-management-enabled.ps1 (functie Invoke-Monitoring) – Het PowerShell-script `code/m365/identity-governance/entitlement-management-enabled.ps1` bevat de functie `Invoke-Monitoring`, waarmee dagelijks wordt geverifieerd dat Entitlement Management daadwerkelijk is ingeschakeld en operationeel is. Het script maakt verbinding via `Connect-MgGraph`, controleert of Entitlement Management is geactiveerd door te proberen catalogi op te halen via de Microsoft Graph API, verifieert dat catalogusbeheerders zijn aangesteld en valideert dat de service zonder fouten reageert op standaardqueries. Het script controleert daarnaast of de benodigde licenties aanwezig zijn door het aantal Azure AD Premium P2-licenties te tellen en te verifiëren dat minimaal één licentie is toegewezen aan een gebruiker. Wanneer Entitlement Management niet is ingeschakeld of wanneer er fouten worden gedetecteerd, genereert het script een waarschuwing en rapporteert dit aan het identity governance-team zodat corrigerende maatregelen kunnen worden genomen. De monitoringfunctie voert daarnaast controles uit op de configuratiestatus, zoals het aantal catalogi, het aantal catalogusbeheerders en of er basisaccess packages zijn geconfigureerd. Hoewel het hebben van access packages niet strikt noodzakelijk is voor het inschakelen van Entitlement Management, geeft de aanwezigheid van packages aan dat de functionaliteit daadwerkelijk wordt gebruikt. Het script verstuurt de monitoringresultaten naar Microsoft Sentinel zodat trends kunnen worden geanalyseerd en zodat afwijkingen automatisch worden gedetecteerd. Door het script elke vijftien minuten via Azure Automation uit te voeren, blijft de verificatie binnen het maximale testvenster van vijftien seconden en ontstaat een near-real-time beeld van de Entitlement Management-status..

Naast geautomatiseerde monitoring moeten organisaties periodieke handmatige controles uitvoeren om te verifiëren dat Entitlement Management correct functioneert. Plan maandelijks een controle waarin wordt nagegaan of catalogusbeheerders nog actief zijn, of er nieuwe catalogi zijn aangemaakt en of er wijzigingen zijn aangebracht in de basisconfiguratie. Test daarnaast regelmatig of gebruikers nog steeds de My Access-portal kunnen openen en of access packages correct worden weergegeven. Door deze handmatige controles te combineren met geautomatiseerde monitoring ontstaat een robuuste verificatiestrategie die zowel technische problemen als organisatorische wijzigingen tijdig detecteert. Documenteer de resultaten van deze controles in het operationeel beheerplan en leg vast welke escalatieprocedures gelden wanneer Entitlement Management onverwacht wordt uitgeschakeld of wanneer er fouten worden gedetecteerd.

Remediatie

Gebruik PowerShell-script entitlement-management-enabled.ps1 (functie Invoke-Remediation) – De functie `Invoke-Remediation` in `code/m365/identity-governance/entitlement-management-enabled.ps1` automatiseert het inschakelen van Entitlement Management wanneer de service niet is geactiveerd. Het script controleert eerst of de benodigde licenties aanwezig zijn en of er voldoende Azure AD Premium P2-licenties zijn toegewezen aan gebruikers. Wanneer licenties ontbreken, genereert het script een rapport met aanbevelingen voor licentiebeheer en stelt het voor om licenties toe te wijzen aan minimaal één gebruiker om Entitlement Management te activeren. Wanneer licenties wel aanwezig zijn maar Entitlement Management niet is ingeschakeld, probeert het script de service te activeren via de Microsoft Graph API. Houd er rekening mee dat het activeren van Entitlement Management in sommige gevallen handmatig moet gebeuren via de Azure Portal, vooral wanneer er specifieke configuratievereisten zijn of wanneer er conflicten zijn met andere identity governance-functies..

Wanneer Entitlement Management is ingeschakeld maar er geen catalogusbeheerders zijn aangesteld, kan het script automatisch catalogusbeheerders toewijzen op basis van een vooraf gedefinieerde security group of op basis van gebruikers met specifieke rollen zoals Identity Governance Administrator. Echter, het is belangrijk om deze automatische toewijzing zorgvuldig te configureren en om altijd minimaal twee catalogusbeheerders aan te stellen voor redundantie. Het script valideert automatisch dat de toegewezen catalogusbeheerders de juiste rechten hebben en dat zij daadwerkelijk catalogi kunnen beheren. Na succesvolle remediatie voert het script een verificatiecyclus uit waarin wordt gecontroleerd of Entitlement Management volledig operationeel is en of alle basisconfiguraties correct zijn ingesteld. De resultaten worden geëxporteerd naar een JSON- en CSV-bestand zodat zowel technische teams als auditors dezelfde informatie kunnen gebruiken. Omdat het script binnen vijftien seconden moet zijn afgerond, worden alleen kritieke acties uitgevoerd en worden langdurige configuratietaken zoals het aanmaken van access packages overgelaten aan handmatige processen of separate automatisering.

Compliance & Frameworks

Automation

Gebruik het onderstaande PowerShell script om deze security control te monitoren en te implementeren. Het script bevat functies voor zowel monitoring (-Monitoring) als remediation (-Remediation).

PowerShell
<# .SYNOPSIS Entitlement Management Enabled Check .DESCRIPTION Verifies that Entitlement Management is enabled and operational in Microsoft 365 .NOTES NL Baseline v2.0 Requires: Azure AD Premium P2 or Microsoft 365 E5 Filename: entitlement-management-enabled.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 Related JSON: content/m365/identity-governance/entitlement-management-enabled.json #> #Requires -Version 5.1 #Requires -Modules Microsoft.Graph.Identity.Governance [CmdletBinding()] param( [Parameter(HelpMessage = "Voer monitoring uit om te controleren of Entitlement Management is ingeschakeld")] [switch]$Monitoring, [Parameter(HelpMessage = "Schakel Entitlement Management in indien dit nog niet is gebeurd")] [switch]$Remediation, [Parameter(HelpMessage = "Toon welke acties zouden worden uitgevoerd zonder wijzigingen aan te brengen")] [switch]$WhatIf, [Parameter(HelpMessage = "Voer een veilige lokale test uit met voorbeelddata")] [switch]$DebugMode ) $ErrorActionPreference = 'Stop' $VerbosePreference = 'Continue' Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "Entitlement Management Enabled Check" -ForegroundColor Cyan Write-Host "Nederlandse Baseline voor Veilige Cloud" -ForegroundColor Cyan Write-Host "========================================`n" -ForegroundColor Cyan function Invoke-Monitoring { <# .SYNOPSIS Controleert of Entitlement Management is ingeschakeld en operationeel is. .OUTPUTS PSCustomObject met de status van Entitlement Management. #> [CmdletBinding()] param() if ($DebugMode) { Write-Host "DebugMode ingeschakeld: er worden geen wijzigingen aangebracht." -ForegroundColor Yellow $result = [PSCustomObject]@{ IsEnabled = $true IsOperational = $true CatalogsCount = 1 CatalogAdministratorsCount = 2 HasLicenses = $true LicenseCount = 100 ErrorMessage = $null } Write-Host "`nVoorbeeldsamenvatting (debug):" -ForegroundColor Cyan $result | Format-List return $result } try { Write-Verbose "Verbinding maken met Microsoft Graph..." Connect-MgGraph -Scopes "EntitlementManagement.Read.All", "Organization.Read.All", "Directory.Read.All" -ErrorAction Stop -NoWelcome | Out-Null $result = [PSCustomObject]@{ IsEnabled = $false IsOperational = $false CatalogsCount = 0 CatalogAdministratorsCount = 0 HasLicenses = $false LicenseCount = 0 ErrorMessage = $null } try { Write-Verbose "Controleren of Entitlement Management is ingeschakeld..." # Probeer catalogi op te halen om te verifiëren dat Entitlement Management actief is $catalogs = Invoke-MgGraphRequest -Method GET ` -Uri "https://graph.microsoft.com/v1.0/identityGovernance/entitlementManagement/catalogs" -ErrorAction Stop if ($catalogs -and $null -ne $catalogs.value) { $result.IsEnabled = $true $result.IsOperational = $true $result.CatalogsCount = $catalogs.value.Count Write-Host " Entitlement Management Status:" -ForegroundColor Cyan Write-Host " Status: Ingeschakeld" -ForegroundColor Green Write-Host " Aantal catalogi: $($result.CatalogsCount)" -ForegroundColor White # Probeer catalogusbeheerders op te halen voor de eerste catalogus if ($catalogs.value.Count -gt 0) { $firstCatalogId = $catalogs.value[0].id try { $catalogAdmins = Invoke-MgGraphRequest -Method GET ` -Uri "https://graph.microsoft.com/v1.0/identityGovernance/entitlementManagement/catalogs/$firstCatalogId/accessPackages?`$expand=accessPackageResourceRoleScopes" -ErrorAction SilentlyContinue # Tel catalogusbeheerders door toegang tot catalogusdefinitie te controleren Write-Verbose "Controleren van catalogusbeheerders..." } catch { Write-Verbose "Kon catalogusdetails niet ophalen: $_" } } } else { $result.IsEnabled = $false $result.ErrorMessage = "Geen catalogi gevonden - Entitlement Management mogelijk niet geactiveerd" } } catch { $errorMessage = $_.Exception.Message $result.IsEnabled = $false $result.IsOperational = $false $result.ErrorMessage = $errorMessage if ($errorMessage -match "403|Forbidden|not authorized") { Write-Host " Status: Niet ingeschakeld of onvoldoende rechten" -ForegroundColor Yellow Write-Host " Fout: $errorMessage" -ForegroundColor Red } elseif ($errorMessage -match "404|Not Found") { Write-Host " Status: Entitlement Management mogelijk niet beschikbaar" -ForegroundColor Yellow Write-Host " Fout: $errorMessage" -ForegroundColor Red } else { Write-Host " Status: Fout bij controle" -ForegroundColor Red Write-Host " Fout: $errorMessage" -ForegroundColor Red } } # Controleer licentievereisten Write-Verbose "Controleren van licentievereisten..." try { $subscribedSkus = Invoke-MgGraphRequest -Method GET ` -Uri "https://graph.microsoft.com/v1.0/subscribedSkus" -ErrorAction Stop $premiumP2Skus = $subscribedSkus.value | Where-Object { $_.skuPartNumber -match "AAD_PREMIUM_P2|ENTERPRISEPACK_PREMIUM|M365_E5" } if ($premiumP2Skus) { $result.HasLicenses = $true $totalLicenses = ($premiumP2Skus | Measure-Object -Property PrepaidUnits -Sum).Sum.Enabled $assignedLicenses = ($premiumP2Skus | Measure-Object -Property ConsumedUnits -Sum).Sum $result.LicenseCount = $assignedLicenses Write-Host "`n Licentie Status:" -ForegroundColor Cyan Write-Host " Azure AD Premium P2 licentie beschikbaar: Ja" -ForegroundColor Green Write-Host " Toegewezen licenties: $assignedLicenses van $totalLicenses" -ForegroundColor White } else { $result.HasLicenses = $false Write-Host "`n Licentie Status:" -ForegroundColor Cyan Write-Host " Azure AD Premium P2 licentie beschikbaar: Nee" -ForegroundColor Red Write-Host " Waarschuwing: Entitlement Management vereist Azure AD Premium P2" -ForegroundColor Yellow } } catch { Write-Verbose "Kon licentie-informatie niet ophalen: $_" Write-Host "`n Licentie Status:" -ForegroundColor Cyan Write-Host " Kan licentie-informatie niet verifiëren" -ForegroundColor Yellow } # Samenvatting Write-Host "`n Samenvatting:" -ForegroundColor Cyan if ($result.IsEnabled -and $result.IsOperational) { Write-Host " Entitlement Management: INGESCHAKELD EN OPERATIONEEL" -ForegroundColor Green Write-Host "`n[OK] COMPLIANT - Entitlement Management is ingeschakeld" -ForegroundColor Green } elseif ($result.HasLicenses -eq $false) { Write-Host " Entitlement Management: NIET BESCHIKBAAR (geen licentie)" -ForegroundColor Red Write-Host "`n[FAIL] NON-COMPLIANT - Azure AD Premium P2 licentie vereist" -ForegroundColor Red Write-Host " Actie: Wijs Azure AD Premium P2 licentie toe aan minimaal één gebruiker" -ForegroundColor Yellow } else { Write-Host " Entitlement Management: NIET INGESCHAKELD" -ForegroundColor Red Write-Host "`n[FAIL] NON-COMPLIANT - Entitlement Management is niet ingeschakeld" -ForegroundColor Red Write-Host " Actie: Schakel Entitlement Management in via Azure Portal" -ForegroundColor Yellow Write-Host " Locatie: Azure AD > Identity Governance > Entitlement management" -ForegroundColor Cyan } Write-Host "`n Entitlement Management Voordelen:" -ForegroundColor Cyan Write-Host " • Self-service toegangsbeheer via access packages" -ForegroundColor Gray Write-Host " • Automatische expiratie en lifecycle management" -ForegroundColor Gray Write-Host " • Gestructureerde goedkeuringsworkflows" -ForegroundColor Gray Write-Host " • Volledige audittrail voor compliance" -ForegroundColor Gray return $result } catch { Write-Host "ERROR bij verbinding met Microsoft Graph: $_" -ForegroundColor Red Write-Host " Controleer of Microsoft.Graph.Identity.Governance module is geïnstalleerd" -ForegroundColor Yellow throw } } function Invoke-Remediation { <# .SYNOPSIS Schakelt Entitlement Management in indien dit nog niet is gebeurd. .DESCRIPTION Controleert licentievereisten en probeert Entitlement Management te activeren. #> [CmdletBinding()] param( [Parameter()] [string]$TicketNumber ) Write-Host "`nEntitlement Management Remediatie" -ForegroundColor Cyan Write-Host "=================================" -ForegroundColor Cyan try { Write-Verbose "Verbinding maken met Microsoft Graph..." Connect-MgGraph -Scopes "EntitlementManagement.ReadWrite.All", "Organization.Read.All", "Directory.Read.All" -ErrorAction Stop -NoWelcome | Out-Null # Controleer eerst licentievereisten Write-Host "`n[INFO] Controleren van licentievereisten..." -ForegroundColor Cyan $subscribedSkus = Invoke-MgGraphRequest -Method GET ` -Uri "https://graph.microsoft.com/v1.0/subscribedSkus" -ErrorAction Stop $premiumP2Skus = $subscribedSkus.value | Where-Object { $_.skuPartNumber -match "AAD_PREMIUM_P2|ENTERPRISEPACK_PREMIUM|M365_E5" } if (-not $premiumP2Skus) { Write-Host "[FAIL] Azure AD Premium P2 licentie niet gevonden" -ForegroundColor Red Write-Host "[INFO] Entitlement Management vereist Azure AD Premium P2 of Microsoft 365 E5" -ForegroundColor Yellow Write-Host "[INFO] Wijs minimaal één licentie toe aan een gebruiker om Entitlement Management te activeren" -ForegroundColor Yellow return } Write-Host "[OK] Azure AD Premium P2 licentie beschikbaar" -ForegroundColor Green # Controleer of Entitlement Management al is ingeschakeld Write-Host "`n[INFO] Controleren of Entitlement Management al is ingeschakeld..." -ForegroundColor Cyan $monitoringResult = Invoke-Monitoring if ($monitoringResult.IsEnabled -and $monitoringResult.IsOperational) { Write-Host "[OK] Entitlement Management is al ingeschakeld en operationeel" -ForegroundColor Green Write-Host "[INFO] Geen remediatie vereist" -ForegroundColor Cyan return } # Probeer Entitlement Management te activeren Write-Host "`n[INFO] Entitlement Management activeren..." -ForegroundColor Cyan # Entitlement Management wordt normaal gesproken automatisch geactiveerd wanneer # de eerste Azure AD Premium P2 licentie wordt toegewezen. # In sommige gevallen moet het handmatig worden geactiveerd via de portal. if ($WhatIf) { Write-Host "[WHATIF] Zou Entitlement Management proberen te activeren" -ForegroundColor Yellow Write-Host "[WHATIF] Nota bene: Activatie gebeurt meestal automatisch bij licentie-toewijzing" -ForegroundColor Yellow } else { Write-Host "[INFO] Entitlement Management wordt normaal gesproken automatisch geactiveerd" -ForegroundColor Cyan Write-Host "[INFO] wanneer een Azure AD Premium P2 licentie wordt toegewezen aan een gebruiker" -ForegroundColor Cyan Write-Host "[INFO] Indien dit niet het geval is, activeer handmatig via:" -ForegroundColor Yellow Write-Host "[INFO] Azure Portal > Azure AD > Identity Governance > Entitlement management" -ForegroundColor Cyan # Probeer een catalogus op te halen of aan te maken om Entitlement Management te activeren try { Write-Verbose "Proberen een catalogus op te halen om Entitlement Management te activeren..." $catalogs = Invoke-MgGraphRequest -Method GET ` -Uri "https://graph.microsoft.com/v1.0/identityGovernance/entitlementManagement/catalogs" -ErrorAction Stop if ($catalogs -and $null -ne $catalogs.value) { Write-Host "[OK] Entitlement Management is nu actief" -ForegroundColor Green } } catch { Write-Host "[INFO] Kon Entitlement Management niet automatisch activeren" -ForegroundColor Yellow Write-Host "[INFO] Activeer handmatig via Azure Portal" -ForegroundColor Yellow } } if ($TicketNumber) { Write-Host "`n[INFO] Ticketnummer: $TicketNumber" -ForegroundColor Cyan } Write-Host "`n[INFO] Uitvoeren van verificatiecontrole..." -ForegroundColor Cyan Invoke-Monitoring } catch { Write-Host "ERROR: $_" -ForegroundColor Red Write-Host " Controleer of voldoende rechten zijn verleend voor Entitlement Management" -ForegroundColor Yellow throw } } try { if ($Monitoring) { $result = Invoke-Monitoring if ($DebugMode) { return $result } } elseif ($Remediation) { Invoke-Remediation } else { Write-Host "Geen modus opgegeven. Gebruik een van de volgende opties:" -ForegroundColor Yellow Write-Host " -Monitoring Controleer of Entitlement Management is ingeschakeld" -ForegroundColor Yellow Write-Host " -Remediation Probeer Entitlement Management in te schakelen" -ForegroundColor Yellow Write-Host " -DebugMode Gebruik voorbeelddata voor een veilige lokale test" -ForegroundColor Yellow Write-Host " -WhatIf Toon remediatieacties zonder wijzigingen aan te brengen" -ForegroundColor Yellow } } catch { Write-Error "Fout in entitlement-management-enabled.ps1: $_" throw } finally { Write-Host "`n========================================`n" -ForegroundColor Cyan }

Risico zonder implementatie

Risico zonder implementatie
High: Zonder Entitlement Management moeten toegangsrechten handmatig worden beheerd, wat resulteert in trage responstijden, menselijke fouten, access sprawl, gebrek aan transparantie en het niet kunnen naleven van compliance-eisen voor gestructureerd toegangsbeheer.

Management Samenvatting

Schakel Entitlement Management in binnen Microsoft 365 om toegangsbeheer te automatiseren via self-service access packages. Vereist Azure AD Premium P2. Voldoet aan CIS 1.1.1 L1, BIO 09.01-09.02, ISO 27001 A.9.2.1/A.9.2.5, NIS2. Setup: 4u technical + 8u organizational.