/
/

Zo gebruikt u de Microsoft Graph API om compliancerapporten uit meerdere tenants op te halen

door Team Ninja
How to Use Microsoft Graph API to Pull Compliance Reports Across Multiple Tenants blog banner image

Directe samenvatting

Deze blogpost van NinjaOne biedt een uitgebreide basislijst met CMD-commands en een deep dive duik in Windows-commands met meer dan 70 essentiële cmd-commands voor zowel beginners als gevorderden. Het legt praktische opdrachtpromptcommando’s uit voor file management, directory navigation, network troubleshooting, disk operations en automatisering met echte voorbeelden om de productiviteit te verbeteren. Of u nu fundamentele cmd-commands leert of geavanceerde Windows CLI-tools onder de knie krijgt, deze gids helpt u de Command Prompt effectiever te gebruiken.

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

  1. Open de Azure AD-portal in uw browser.
  2. Ga naar App-registraties > Nieuwe registratie.
  3. Geef de app die u wilt registreren een naam.
  4. Stel het toegestane accounttype in op Alleen accounts in deze organisatiemap (alleen Contoso – één tenant).
  5. Pas daarna de machtigingen van de applicatie aan via Een machtiging toevoegen. U komt dan bij Microsoft Graph terecht.
  6. Geef de volgende machtigingen:
    • Reports.Read.All
    • AuditLog.Read.All
    • SecurityEvents.Read.All
    • Directory.Read.All
  7. Klik op Machtigingen toevoegen.
  8. Klik op de knop Beheerderstoestemming verlenen. Daarna kan de applicatie alle gebruikersprofielen lezen waartoe u toegang hebt gegeven.
  9. Ga naar Certificaten & geheimen.
  10. Selecteer Clientgeheimen > Nieuw clientgeheim.
  11. Vul de gegevens in en volg de aanwijzingen. Dit fungeert als het wachtwoord van de applicatie.
  12. 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

  1. Open het Startmenu en zoek naar Windows PowerShell.
  2. Klik met de rechtermuisknop op Windows PowerShell > Als administrator uitvoeren.
  3. Typ de volgende opdracht om Microsoft Graph te installeren en druk op Enter:

Install-Module Microsoft.Graph -Scope CurrentUser

Import-Module Microsoft.Graph

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

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

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

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

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

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

  1. Open het Startmenu en zoek naar Register-editor om het programma te openen.
  2. 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.

  1. Open het Startmenu en zoek naar Groepsbeleid bewerken om het programma te openen.
  2. Ga naar deze locatie: Computerconfiguratie > Beheersjablonen > Windows-onderdelen > Gegevensverzameling.
  3. 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.

  1. Open het Startmenu en zoek naar Opdrachtprompt.
  2. Klik met de rechtermuisknop op Opdrachtprompt > Als administrator uitvoeren.
  3. 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/risicoMogelijke gevolgenOplossing/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:

FAQs

Basisgegevens over aanmeldingen en beveiligingsnotificaties zijn beschikbaar met standaard Microsoft 365-licenties, maar voor geavanceerde compliancerapporten hebt u een Microsoft 365 E5- of E5 Compliance-add-onlicentie nodig.

Het v1.0-endpoint is stabiel en geschikt voor productiegebruik, terwijl het beta-endpoint nieuwere of nog in ontwikkeling zijnde compliance- en security-API’s ontsluit die zonder aankondiging kunnen wijzigen of stoppen met werken. Beta-endpoints gebruiken voor ingeplande automatisering over meerdere tenants brengt dus een doorlopend onderhoudsrisico met zich mee.

De bewaartermijn hangt af van het licentieniveau van Microsoft 365: aanmeldlogboeken blijven bij de meeste abonnementen doorgaans 30 dagen bewaard en langer met premium Azure AD-licenties. Voor auditlogboeken van de directory gelden vergelijkbare, licentieafhankelijke limieten.

Ja. De app-registratie heeft alleen de specifieke API-machtigingen nodig die met beheerderstoestemming zijn verleend, niet een rol als Globale beheerder die aan een persoon is toegewezen.

Microsoft Graph throttlet verzoeken per app en per tenant en geeft bij het bereiken van de limiet een 429-status terug met een Retry-After-header. Scripts die gegevens uit veel tenants ophalen moeten exponential backoff en retry-logica toepassen in plaats van verzoeken in een strakke lus af te vuren.

Met de Graph API automatiseert en bundelt u dezelfde onderliggende gegevens die de Purview-portal toont, maar Purview blijft het systeem van registratie voor het configureren van DLP-beleid, bewaarlabels en eDiscovery-zaken.

Dit vindt u misschien ook leuk

Klaar om de moeilijkste delen van IT te vereenvoudigen?