Belangrijkste punten
- Deze handleiding laat zien hoe u met de Microsoft Graph API compliancegegevens van Microsoft 365 uit meerdere tenants ophaalt via één endpoint.
- Elke Azure AD-tenant heeft een eigen app-registratie nodig met de machtigingen Reports.Read.All, AuditLog.Read.All, SecurityEvents.Read.All en Directory.Read.All, plus beheerderstoestemming, voordat Graph API-aanroepen werken.
- De Microsoft Graph PowerShell SDK authenticeert met de client-ID, tenant-ID en secret van een geregistreerde app en stuurt vervolgens Graph API-verzoeken om aanmeldlogboeken, beveiligingsnotificaties en bewaarlabels op te halen.
- Door tenantreferenties in een JSON-bestand op te slaan en daar doorheen te loopen, kunnen IT-teams volgens een vast schema compliancegegevens uit elke beheerde tenant ophalen en exporteren in plaats van telkens handmatig in te loggen.
- Verlopen client secrets en de rate limits van Microsoft Graph zijn de meest voorkomende oorzaken van problemen. Proactieve notificaties voor het roteren van secrets en retry-logica zijn dus net zo belangrijk als de eerste configuratie.
- Automatiseringsplatformen die PowerShell-scripts op beheerde endpoints ondersteunen helpen bij het inplannen van deze Graph API-opvragingen en voegen context op deviceniveau toe.
De security- en compliancetools van de Microsoft Graph API zijn onmisbaar in elke enterpriseomgeving. U krijgt één gezamenlijk endpoint waarmee u alle auditlogboeken, DLP-rapporten, notificaties van incidenten en bewaarbeleidsregels van de Microsoft 365-accounts van uw organisatie kunt benaderen.
Het gebruik van deze tool heeft diverse belangrijke voordelen. Het helpt u de compliance over meerdere tenants inzichtelijk te houden, rapporten te automatiseren zonder toegang tot de portal, veilig te authenticeren op basis van een app en eenvoudig te integreren met SIEM en eigen dashboards.
Handleiding voor het opvragen van compliancerapporten via Microsoft Graph
Voordat u begint, configureert u eerst de applicatie in de Azure AD-portal en zorgt u dat die over de benodigde machtigingen beschikt. Daarna kunt u uw account via Windows PowerShell met Microsoft Graph verbinden en automatisch rapporten genereren. U kunt het proces ook automatiseren met een .JSON-bestand.
GPO’s kunt u inzetten om uw beveiligingsprocedures te versterken. Met het Windows-register zorgt u ervoor dat alle beleidsregels consistent worden toegepast op al uw beheerde devices. En gaat er iets mis dan kunt u CMD gebruiken om problemen op te lossen.
Vereisten:
- een Azure AD-app-registratie voor elke tenant (of gebruik Microsoft Lighthouse, noodzakelijk voor gedelegeerde toegang)
- Er moet beheerderstoestemming zijn verleend voor de vereiste API-scopes.
- De Microsoft 365 E5 Compliance-add-on is vereist voor geavanceerde rapporten.
- U hebt Windows PowerShell nodig met de Microsoft Graph SDK geïnstalleerd.
- Optioneel/aanbevolen: toegang tot Intune, GPO en het Windows-register voor het valideren van endpointbeleid
In de video ziet u Zo gebruikt u de Microsoft Graph API om compliancerapporten uit meerdere tenants op te halen in beeld – een handige referentie voordat u de instellingen opzoekt en configureert.
Stap 1: registreer een app in Azure voor Graph-toegang
- Open de Azure AD-portal in uw browser.
- Ga naar App-registraties > Nieuwe registratie.
- Geef de app die u wilt registreren een naam.
- Stel het toegestane accounttype in op Alleen accounts in deze organisatiemap (alleen Contoso – één tenant).
- Pas daarna de machtigingen van de applicatie aan via Een machtiging toevoegen. U komt dan bij Microsoft Graph terecht.
- Geef de volgende machtigingen:
- Reports.Read.All
- AuditLog.Read.All
- SecurityEvents.Read.All
- Directory.Read.All
- Klik op Machtigingen toevoegen.
- Klik op de knop Beheerderstoestemming verlenen. Daarna kan de applicatie alle gebruikersprofielen lezen waartoe u toegang hebt gegeven.
- Ga naar Certificaten & geheimen.
- Selecteer Clientgeheimen > Nieuw clientgeheim.
- Vul de gegevens in en volg de aanwijzingen. Dit fungeert als het wachtwoord van de applicatie.
- Noteer de toepassings-ID (client), de map-ID (tenant) en de geheime waarde. Daarmee kunt u de applicatie later opnieuw benaderen.
Herhaal of automatiseer dit proces voor elke tenant die dit nodig heeft.
Stap 2: maak verbinding met Microsoft Graph in PowerShell
- Open het Startmenu en zoek naar Windows PowerShell.
- Klik met de rechtermuisknop op Windows PowerShell > Als administrator uitvoeren.
- Typ de volgende opdracht om Microsoft Graph te installeren en druk op Enter:
Install-Module Microsoft.Graph -Scope CurrentUser
Import-Module Microsoft.Graph
- Typ de volgende opdracht om verbinding te maken met de referenties van uw app en druk op Enter:
Connect-MgGraph -ClientId "APP_ID" -TenantId "TENANT_ID" -ClientSecret (ConvertTo-SecureString "SECRET" -AsPlainText -Force)
Vervang “APP_ID” door de client-ID, “TENANT_ID” door de tenant-ID en “SECRET” door de geheime waarde die u hebt gegenereerd.
- Typ
Select-MgProfile -Name "beta"om de scope te selecteren en druk op Enter.
U bent nu verbonden met Microsoft Graph.
Stap 3: haal compliancerapporten op met de Microsoft Graph API
Zodra u in Windows PowerShell bent aangemeld bij Microsoft Graph, volgt u deze stappen:
- Typ deze opdracht om auditlogboeken op te halen en druk op Enter:
$logs = Invoke-MgGraphRequest -Method GET -Uri "https://graph.microsoft.com/beta/auditLogs/signIns"
- Typ deze opdracht om DLP-notificaties weer te geven en druk op Enter:
$alerts = Invoke-MgGraphRequest -Method GET -Uri "https://graph.microsoft.com/beta/security/alerts"
- Typ deze opdracht om bewaarbeleidsregels weer te geven en druk op Enter:
$policies = Invoke-MgGraphRequest -Method GET -Uri "https://graph.microsoft.com/beta/security/retentionLabels"
- Typ deze opdracht om de gegevens naar een .CSV-bestand te exporteren en druk op Enter:
$logs.value | Export-Csv -Path ".\Tenant_AuditLogs.csv" -NoTypeInformation
Herhaal dit proces voor elke tenant. Log in met de bijbehorende referenties.
Optioneel: rapportage over meerdere tenants automatiseren
IT-beheerders kunnen alle tenantreferenties opslaan in een JSON-bestand. Ze kunnen dat bestand uitvoeren om wanneer nodig door elke tenant te loopen, verbinding te maken en de gegevens samen te voegen. Via hun tool voor endpoint management kunnen ze dit bestand met Taakplanner automatisch volgens een vast schema laten draaien.
Hier is een voorbeeld van een tenantloop:
foreach ($tenant in $tenantList) {Connect-MgGraph -ClientId $tenant.ClientId -TenantId $tenant.TenantId -ClientSecret $tenant.Secret$auditData = Invoke-MgGraphRequest -Uri "https://graph.microsoft.com/beta/auditLogs/signIns"$auditData.value | Export-Csv -Path ".\$($tenant.Name)_Audit.csv" -Append}
Optioneel: gebruik het register voor rapportagecontext op endpoints
Use case: met registersleutels zorgt u ervoor dat devicetags en rapportagelabels consistent op al uw devices worden toegepast. Volg hiervoor deze stappen:
- Open het Startmenu en zoek naar Register-editor om het programma te openen.
- Zoek de bijbehorende registersleutel van de applicatie die u wilt controleren. Ter referentie: dit is een voorbeeld van een registerpad met de relevante waarden erin:
HKEY_LOCAL_MACHINE\SOFTWARE\Contoso\Compliance
- TenantTag (tekenreeks) – de waarde moet “ClientA” zijn.
- LastAuditSync (tekenreeks) – de waarde moet “[datum van laatste auditsynchronisatie]” zijn.
Let op: u kunt scripts gebruiken om deze tags uit te lezen en zo endpointmetadata op te nemen in de rapporten die Graph genereert.
Optioneel: gebruik Groepsbeleid voor de compliancestatus van endpoints
Use case: groepsbeleidsregels ondersteunen de handhaving en zorgen voor compliance op endpoints, met name bij compliancescores en rapportage over de gevoeligheid van gegevens.
- Open het Startmenu en zoek naar Groepsbeleid bewerken om het programma te openen.
- Ga naar deze locatie: Computerconfiguratie > Beheersjablonen > Windows-onderdelen > Gegevensverzameling.
- Schakel de volgende beleidsregels in:
- Telemetrie toestaan inschakelen – stel dit ook in op Verbeterd of Volledig.
- Commerciële ID configureren voor devicegroepering inschakelen
Optioneel: gebruik CMD om machtigingen en connectiviteit te valideren
Use case: dit is handig in on-premise of hybride omgevingen waarin endpoints op compliance moeten aansluiten.
- Open het Startmenu en zoek naar Opdrachtprompt.
- Klik met de rechtermuisknop op Opdrachtprompt > Als administrator uitvoeren.
- Typ deze opdracht om de toegang tot internet en het Graph-endpoint te controleren en druk op Enter:
nslookup graph.microsoft.com
ping graph.microsoft.com
Typ deze opdracht om de synchronisatiestatus van de lokale agent te valideren en druk op Enter:
dsregcmd /status
Typ dit om te controleren of de GPO-beleidsregels zijn toegepast en druk op Enter:
gpresult /h gpo.html
Quick-start guide
NinjaOne helpt u de Microsoft Graph API te gebruiken om compliancerapporten uit meerdere tenants op te halen. Het NinjaOne-platform is ontworpen om het werken met Microsoft 365-omgevingen te vereenvoudigen, ook in complexe scenario’s zoals multi-tenant compliancerapportage. Het beschikt over specifieke mogelijkheden om deze processen te beheren en te automatiseren.
- Compliancerapportage: haal security- en compliancerapporten op uit alle beheerde accounts.
- Automatisering: automatiseer het genereren van rapporten en het verzamelen van gegevens.
- Integratie: naadloze koppeling met Microsoft Graph voor realtime toegang tot gegevens.
- Schaalbaarheid: gebouwd voor grootschalige compliancemonitoring binnen hele organisaties.
Waar u op moet letten
| Probleem/risico | Mogelijke gevolgen | Oplossing/herstel |
| U krijgt de foutmelding “Access Denied”. | U kunt de gezochte gegevens niet benaderen. | Controleer of beheerderstoestemming en de vereiste API-scopes correct zijn toegewezen. |
| U krijgt een lege respons. | U ontvangt niet de gegevens die u zoekt. | Controleer of de tenant over de juiste licenties beschikt en of logging is ingeschakeld. |
| Het clientgeheim is verlopen. | U kunt de gegevens in Microsoft Graph niet benaderen. | Stel in uw tool voor endpoint management een notificatie in die u waarschuwt wanneer geheimen bijna verlopen zodat u dit voorkomt. |
| Er zit een fout in het script. | U kunt de rapporten niet ophalen. | Gebruik Try/Catch-blokken en uitgebreide logging om fouten te traceren. |
Aandachtspunten bij het ophalen van compliancerapporten met Microsoft Graph
- Houd rekening met rate limits en throttling door Microsoft Graph. In sommige situaties moet u acties opnieuw uitvoeren, zeker wanneer u veel gegevens ophaalt.
- U beperkt de complexiteit door Azure Lighthouse of modellen voor cross-tenanttoegang te gebruiken.
- Gebruik Azure Key Vault of een versleutelde opslagoplossing om uw clientgeheimen te bewaren.
- Zorg dat alleen geautoriseerde medewerkers toegang hebben tot rapporten met gebruikersspecifieke gegevens.
Diensten van NinjaOne
NinjaOne versterkt complianceautomatisering op basis van Graph met:
- Uitvoering over meerdere tenants: u kunt PowerShell-rapportagescripts inplannen en uitrollen naar alle beheerde tenants met de externe PowerShell-tool van NinjaOne.
- Centraal beheer van referenties: bewaar Graph API-referenties veilig en roep ze per tenant aan in een veilige, versleutelde opslagoplossing.
- Notificaties en compliancedashboards: verwerk rapportresultaten in aangepaste dashboards en ontvang meldingen bij risicodrempels.
- Context op endpointniveau: haal devicespecifieke register- en GPO-gegevens op om compliancerapporten te verrijken via de tool voor endpoint management van NinjaOne.
- Geautomatiseerd ticketsysteem: stel notificaties in wanneer compliancecondities worden gedetecteerd (bijvoorbeeld uitblijvende audits of een ontbrekend bewaarbeleid).
Haal meer uit Microsoft Graph voor uw compliancerapporten
Microsoft Graph is een krachtige tool om compliancerapportage in een enterpriseomgeving te automatiseren. IT-beheerders krijgen er schaalbaar inzicht mee in tenantactiviteit, gegevensbescherming en governance.
Gerelateerde onderwerpen:
- Wat is een compliance-audit? Definitie en belang
- Wat is compliancebeheer? Definitie en belang
- Wat is secrets management? Beste praktijken voor IT-beveiliging
- Wat is API-beheer? Overzicht en beste praktijken
- Zo plant u Graph API-controles in op verlopen licenties en inactieve gebruikers
- [Video Guide] Zo plant u Graph API-controles in op verlopen licenties en inactieve gebruikers
