M365Con 2027 – gratis online conferentie · 11–22 Jan 2027 · 120 sessions→ m365con.net
Home / Nederlands / 2026-10-29
M365.FM · Nederlands

Een AI-GRC-agent bouwen met Microsoft Purview, Power Automate en Copilot Studio: automatische compliancerapporten

Handmatige GRC-rapportage betekent vaak: Purview-logboeken exporteren, in Excel uitpluizen en hopen dat de grafieken volgende week nog kloppen. Deze aflevering laat zien hoe een regelgebaseerde agent met Purview, Power Automate en Copilot Studio auditgegevens ophaalt, beoordeelt en begrijpelijk rapporteert.

▶ Een AI-GRC-agent bouwen met Microsoft Purview, Power Automate en Copilot Studio: automatische compliancerapporten (AI-nasynchronisatie)

Dit leer je:

  1. De drie koppen van de agent: Purview als geheugen, Power Automate als zenuwstelsel en Copilot Studio als vertaler naar heldere taal
  2. De datapijplijn: Purview-connector of auditlog-API, serviceaccount met lezersrol, inloggegevens in Key Vault en gerichte eventfilters
  3. JSON parsen, gegevens opslaan in SharePoint of Dataverse en plannen met een terugkeerpatroon in de juiste tijdzone
  4. De logicalaag: filteren, ontdubbelen, tellen per gebruiker en handeling, risiconiveaus via drempels, retrybeleid en foutlogging
  5. Rapporten met Copilot Studio: managementsamenvatting, technische bijlage, aanbevelingen, publicatie in Teams, archief in SharePoint en versiebeheerde prompts

Deze aflevering is een met AI nagesynchroniseerde Nederlandse versie van de geanimeerde video uit de M365 Show van Microsoft MVP Mirko Peters.

Governance, Risk & Compliance (GRC) staat bij veel organisaties gelijk aan handmatig werk: auditlogs kopiëren, filteren en in Excel-tabbladen plakken die elkaar na een week alweer tegenspreken. Dat kost uren en levert documentatie op in plaats van inzicht.

Zo bouw je een AI-GRC-agent
  1. 1Purview koppelenHaal auditlogs op via connector of API, met de juiste rol en beperkte reikwijdte.
  2. 2Filteren en structurerenSelecteer echte risico-indicatoren en zet JSON om in gestructureerde kolommen.
  3. 3Logica en drempelsTel, groepeer en leid risiconiveaus af uit vastgelegde drempelwaarden.
  4. 4Copilot Studio schrijftZet gestructureerde data om in leesbare rapporten met vaste koppen en toon.
  5. 5Publiceren en bewakenDeel via Teams en SharePoint, valideer output en log fouten en versies.
M365.FM · Mirko Peters

Het kan anders. Met Microsoft Purview, Power Automate en Copilot Studio bouw je een AI-GRC-agent die auditgegevens ophaalt, analyseert en in begrijpelijke taal uitlegt. In dit artikel lees je hoe zo'n agent is opgebouwd, welke ontwerpkeuzes hem betrouwbaar maken en welke valkuilen je kunt vermijden.

Waarom handmatige GRC-rapportage vastloopt

Handmatige GRC-rapportage ontstaat vaak met goede bedoelingen: een werkblad, een paar filters. Het eindigt met tientallen tabbladen vol draaitabellen. Je haalt data uit Microsoft Purview, exporteert die en spreidt haar uit over spreadsheets. De week erna zijn er nieuwe activiteiten, verschuift de data en kloppen je grafieken niet meer. Audit trails die verantwoording moeten afdwingen, leiden zo vooral tot overbelasting van de analist.

Daar komt bij dat veel bedrijven Purview behandelen als een kluis die alleen tijdens een audit open gaat. De auditlogs verzamelen stilletjes enorme hoeveelheden gegevens over wie wat deed, waar en wanneer. Nuttig is dat zeker, maar leesbaar is het nauwelijks: elk item is een compacte JSON-structuur. Het kernprobleem is dus een overvloed aan data zonder leesbaarheid.

Wat een AI-GRC-agent werkelijk is

Haal de glamour van AI weg, en wat overblijft is een gestructureerde automatisering op de Microsoft-stack die zich gedraagt alsof ze intelligent is. De agent bestaat uit drie onderdelen, elk met een eigen taak:

  • Microsoft Purview levert het ruwe geheugen: auditlogs, classificatiegegevens en compliance-events. Elke gebruikersactie binnen Microsoft 365, zoals het delen van een document of het wijzigen van een bewaarlabel, wordt hier gelogd.
  • Power Automate is het zenuwstelsel. Het verzamelt signalen, filtert ruis en zorgt dat het proces volgens schema verloopt.
  • Copilot Studio is de vertaler. Het zet technische logdata om in samenvattingen die mensen kunnen lezen, bijvoorbeeld: een gebruiker heeft vijf keer in 24 uur privileges verhoogd, boven de beleidsdrempel.

De gedachte erachter is dat veel compliance-werk geen oordeelskwestie is, maar patroonherkenning. Analisten scannen uren kolommen met activiteitstypen en resultaatstatussen, terwijl automatisering die patronen zelf kan categoriseren en samenvatten. Het systeem hoeft dus niet te denken als een mens. Het moet beter organiseren dan een mens.

Een dashboard geeft alleen weer, deze agent schrijft. Hij vertaalt patronen naar zinnen en verkleint zo de interpretatiekloof die bij compliance reviews tot bijna-incidenten kan leiden. Bovendien is de stack voorspelbaar: jij bepaalt de logica, de frequentie, de reikwijdte en zelfs de toon van de formulering.

De datapijplijn: Purview koppelen aan Power Automate

Voordat de agent kan "denken", moet hij kunnen "zien". Dat betekent een datapijplijn die toegang geeft tot de juiste delen van Purview, niet meer en niet minder. Zonder die zichtbaarheid automatiseer je blindheid.

Extractie en reikwijdte

Je begint met de ingebouwde Purview-connector, of met een HTTP-actie die de Purview audit log API rechtstreeks aanroept. Beide routes leveren een datastroom op van alles wat er in je tenant gebeurt: bestandsacties, wijzigingen in machtigingen, toegangsschendingen en beheerdersaanmeldingen. Beperk de reikwijdte liever vroeg. Je kunt de volledige auditfeed ophalen, maar het is verstandiger eerst te bepalen welke gebeurtenissen daadwerkelijk invloed hebben op compliance.

Toegangsbeheer

Power Automate handelt alleen binnen de machtigingen die het heeft gekregen. Kan het service account de auditlog niet lezen, dan meldt de agent braaf dat er geen problemen zijn gevonden. Geef het account daarom de rol van audit log lezer in Purview en zorg dat het zonder MFA-onderbrekingen kan verifiëren, want de automatisering kan niet om twee uur 's nachts op een prompt klikken. Sla inloggegevens op in Azure Key Vault of in verbindingsreferenties, zodat je compliant blijft.

Filteren op echte risico-indicatoren

Niet elk toegangsevent is relevant. Filter op signalen waar auditors om geven, zoals:

  • een gebruiker die inlogt vanaf een nieuwe locatie;
  • gewijzigde machtigingen;
  • geactiveerd extern delen;
  • aangepast labelbeleid.

Dat filteren kan in de queryfase met API-parameters of verderop met voorwaardelijke logica in Power Automate. Je bent niet aan het hamsteren, je bent aan het cureren.

Parsen en structureren

Vervolgens zet je de JSON-blobs om in gestructureerde kolommen. Dat doe je met de actie JSON parseren en een schema dat je baseert op een voorbeeldgebeurtenis uit Purview. Elke eigenschap, zoals gebruikers-ID, bewerking, workload, resultaatstatus en client-IP, wordt een eigen variabele. Sommige velden verschijnen als array, ook als ze maar één waarde bevatten, en andere liggen onder meerdere lagen nesting verstopt. Power Automate lost dat op met expressies. Een kleine typfout levert later onzinnige output op, dus test elke extractie met kleine proefruns.

Opslag en planning

De opgeschoonde data kun je opslaan in SharePoint, Dataverse of een SQL-database, afhankelijk van de omvang van je rapporten. Die opslag werkt als kortetermijngeheugen: de agent kan historisch vergelijken zonder Purview telkens te belasten. Dataverse past beter bij Power Automate als je kolomcapaciteit of relaties tussen datasets nodig hebt. SharePoint is eenvoudiger, maar onhandiger bij meer dan een paar duizend rijen.

Voor de planning gebruik je de Recurrence Trigger. Kies een dagelijks ritme voor dynamische omgevingen en een wekelijks ritme voor rustigere. Stel de trigger in op je eigen tijdzone, anders komen rapporten op onhandige tijdstippen binnen. Zo wordt compliance een continue hartslag in plaats van een sprint vlak voor de audit.

Checklist: veelvoorkomende fouten voorkomen
M365.FM · Mirko Peters

De logica van de agent in Power Automate

Power Automate is geen AI. Het speculeert niet en hallucineert niet. Het volgt elke stap, vergeet niets en improviseert nooit. Juist die starheid heeft autonomie nodig.

De logische laag bouw je in een vaste volgorde:

  1. Herhalingstrigger: laat de flow zichzelf starten, afgestemd op de tijdzone van je auditors.
  2. Initialisatie: definieer variabelen zoals totaal aantal gebeurtenissen, risicoaantallen en rapportagedatum. Dit is het werkgeheugen van de agent.
  3. Ophalen: roep de Purview-connector of de HTTP API aan.
  4. Filteren: gebruik een filterarray om ruis te verwijderen. Een gangbaar patroon is om records van het type service principal te negeren en alleen bewerkingen rond data governance of beleidswijzigingen te behouden.
  5. Ontdubbelen: verwijder dubbele vermeldingen met een union-expressie of een lusvergelijking. Wat overblijft is het signaal.
  6. Groeperen en tellen: groepeer op gebruikersnaam en bewerking en tel per categorie. Zo ontstaat een momentopname van wie wat deed en hoe vaak.

Risiconiveaus afleiden uit drempelwaarden

Het geheim van autonomie is dat het systeem risiconiveaus afleidt uit jouw drempelwaarden. Bijvoorbeeld: bij drie privilege-escalaties wordt het risiconiveau hoog, bij één externe deling gemiddeld, en anders normaal. Deze logica verzint geen betekenis, ze dwingt die af. Door vast te leggen wat "te veel" is, vervang je menselijke vermoedens door numerieke helderheid.

Met geneste voorwaardelijke acties voeg je hoogrisicogebruikers toe aan een aparte array en zet je gemiddelde gevallen in de wachtrij voor beoordeling. Verschijnt er niets ongewoons, log dan expliciet dat er geen bevindingen zijn. Het verschil tussen ontbrekende data en geen data is cruciaal voor compliance.

Copilot Studio: van ruwe data naar leesbaar rapport

Tot nu toe is de agent efficiënt maar zwijgzaam. Copilot Studio geeft hem een stem en maakt van de JSON-structuren alinea's die netjes genoeg zijn voor directieleden en nauwkeurig genoeg voor auditors.

Soorten communicatie en prompts

Bepaal eerst welke communicatie je nodig hebt. Meestal zijn dat er drie: een samenvatting voor de directie, een technische bijlage en aanbevelingen. Het management wil één alinea, auditors willen bewijslast en IT-medewerkers willen elk veld. Je maakt één copilot-ervaring in Copilot Studio met daarin meerdere prompts, die elk toon, formaat en detailniveau bepalen. Een voorbeeld: vat de belangrijkste risico's samen in begrijpelijke taal, beperk je tot vijf bullets en stel bij elk een herstelactie voor.

Koppeling met Power Automate

Je verbindt beide met een HTTP-actie in je flow, die de gestructureerde JSON-payload naar de endpoint-URL van de copilot stuurt. De copilot interpreteert die payload met de systeemprompt die jij hebt gedefinieerd. Authenticeer de aanroep via Azure AD, zodat alleen jouw flow toegang heeft. De output lijkt dan op een memo van een analist: welke gebruikers verhoogd risicogedrag vertoonden, welke actie wordt aanbevolen en hoe de algemene trend zich verhoudt tot de baseline.

Distributie

Laat de flow in twee takken lopen. De ene plaatst de samenvatting rechtstreeks in een Teams-kanaal, de andere bewaart een volledige HTML-versie in SharePoint. Het management leest het bericht in Teams, auditors openen het archief. Beide versies krijgen automatisch een tijdstempel en identieke bewoordingen.

Prompt engineering met vangrails

  • Specificeer de exacte koppen, bijvoorbeeld overzicht, belangrijkste bevindingen en aanbevelingen.
  • Schrijf een professionele, neutrale toon voor en vermijd speculatieve taal.
  • Vraag om kwantificeerbare statistieken.
  • Gebruik contextvariabelen en tijdelijke aanduidingen, zodat gegevens zoals rapportdatum en aantal geanalyseerde records automatisch in de tekst komen.

Hoe strakker je instructies, hoe reproduceerbaarder de output. Compliance gedijt bij reproduceerbaarheid, niet bij persoonlijkheid.

Validatie en versiebeheer

Voeg een voorwaarde toe die controleert of het antwoord van Copilot niet leeg is. Is het dat wel, sla dan de fout op in je log en probeer het eenmaal opnieuw. Versioneer ook de systeemprompt telkens als compliancecriteria veranderen (V1, V1.1 enzovoort) en leg vast welke promptversie welk rapport heeft opgeleverd. Zo kunnen auditors later zien wat er gebeurde én hoe het taalmodel op dat moment was geïnstrueerd.

Veelvoorkomende fouten en stolpersteine

Blind rapporteren door ontbrekende rechten

Het gevaarlijkste scenario is een agent die "nul problemen" meldt. Bij de eerste test bleek het service account de rol voor het lezen van auditlogs te missen. De robot was niet lui, hij was gehoorzaam blind. Automatisering dwingt precies af wat je haar geeft en niets meer.

Te veel data ophalen

Wie de hele auditfeed binnenhaalt zonder relevante gebeurtenissen te definiëren, maakt de flow onnodig zwaar en de payload onbeheersbaar.

Fouten in parsing en expressies

Geneste arrays en afwijkende veldstructuren zorgen voor fouten die pas later zichtbaar worden. Test daarom met kleine proefruns.

Geen foutafhandeling

API's haperen vaker dan je zou denken, bijvoorbeeld bij te veel gelijktijdige verzoeken. Verpak HTTP-aanroepen in een scope-container met een herhalingsbeleid van drie pogingen en exponentieel uitstel. Schrijf foutmelding, tijdstempel en flowrun-ID naar een SharePoint-lijst of Dataverse-tabel en stuur een Teams-bericht als drempelwaarden worden overschreden. Zo beheer je falen als data. Auditors bestraffen niet de fout zelf, maar het ontbreken van documentatie daarover.

Onbeperkte vrijheid voor de taalmodule

Zonder vaste koppen en toonrichtlijnen probeert Copilot indruk te maken met narratieve flair of emoji. Dat past niet bij een auditrapport.

Geen bewijs van uitvoering

Laat elke flowrun samenvattende statistieken opslaan, zoals het aantal verwerkte gebeurtenissen, de gebruiker met het hoogste risico en de looptijd. Voeg ook een run-ID en flowversie toe. Veranderen drempelwaarden later, dan kunnen auditors nog steeds herleiden welke logica tot welk resultaat leidde.

Praktische takeaways

  • Verdeel de rollen helder: Purview als bron, Power Automate voor orkestratie, Copilot Studio voor taal.
  • Geef het service account de rol van audit log lezer en zorg voor authenticatie zonder MFA-onderbrekingen.
  • Bewaar inloggegevens in Azure Key Vault of verbindingsreferenties.
  • Beperk de data vroeg en filter op echte risico-indicatoren.
  • Parse JSON met een schema en test elke extractie met kleine proefruns.
  • Kies opslag naar omvang: Dataverse bij relaties en volume, SharePoint voor eenvoudiger scenario's.
  • Stel de Recurrence Trigger in op je eigen tijdzone.
  • Leg risiconiveaus vast in drempelwaarden en log ook expliciet wanneer er geen bevindingen zijn.
  • Bouw herhalingsbeleid, foutlogging en meldingen in.
  • Stuur Copilot aan met vaste koppen, een neutrale toon en contextvariabelen.
  • Controleer of het antwoord niet leeg is en versioneer je systeemprompt.
  • Publiceer naar Teams voor het management en naar SharePoint voor het archief.

Conclusie

Een AI-GRC-agent op basis van Microsoft Purview, Power Automate en Copilot Studio vervangt handmatig kopiëren door een doorlopend, controleerbaar proces. Purview verzamelt, Power Automate filtert, telt en bepaalt risiconiveaus, en Copilot Studio vat samen in heldere taal. Het grootste voordeel is niet snelheid maar standaardisatie: elk rapport gebruikt dezelfde drempelwaarden, dezelfde terminologie en dezelfde metadata. Auditors beoordelen daardoor de inhoud in plaats van de opmaak. Een logische vervolgstap is om dezelfde intelligentie in te zetten voor het handhaven van gegevensprivacy.

Veelgestelde vragen

Wat is een AI-GRC-agent en uit welke onderdelen bestaat hij?

Een AI-GRC-agent is een gestructureerde automatisering op de Microsoft-stack die auditgegevens ophaalt, analyseert en uitlegt in begrijpelijke taal. Hij bestaat uit Microsoft Purview als databron, Power Automate voor filteren, tellen en orkestratie, en Copilot Studio voor het schrijven van leesbare samenvattingen.

Hoe koppel je Microsoft Purview aan Power Automate voor auditlogs?

Gebruik de ingebouwde Purview-connector of een HTTP-actie die de Purview audit log API aanroept. Geef het service account de rol van audit log lezer en zorg voor authenticatie zonder MFA-onderbrekingen. Sla inloggegevens op in Azure Key Vault of verbindingsreferenties. Beperk de reikwijdte vroeg.

Hoe bepaalt een GRC-agent in Power Automate risiconiveaus?

De agent leidt risiconiveaus af uit drempelwaarden die jij vastlegt. Bijvoorbeeld: drie privilege-escalaties betekent hoog risico, één externe deling gemiddeld, anders normaal. Hoogrisicogebruikers komen in een aparte array, gemiddelde gevallen in een wachtrij voor beoordeling. Ook ontbrekende bevindingen worden expliciet gelogd.

Hoe zorg je dat Copilot Studio betrouwbare en reproduceerbare auditrapporten schrijft?

Geef Copilot strakke instructies: vaste koppen, een neutrale toon zonder speculatieve taal, kwantificeerbare statistieken en contextvariabelen. Controleer of het antwoord niet leeg is en probeer het zo nodig opnieuw. Versioneer de systeemprompt en leg vast welke promptversie welk rapport opleverde.

Meer afleveringen

Weg met AI-chaos

AI-hallucinaties stoppen

Copilot Studio vs. Azure AI Foundry

Enterprise-AI met Power Platform en Azure OpenAI

Copilot-agents onder controle

Vage antwoorden van Copilot? Zo herstel je rechten…

Alle afleveringen →