M365Con 2027 – gratis online conferentie · 11–22 Jan 2027 · 120 sessions→ m365con.net

Blog · Mirko Peters

OAuth 2.0 in Microsoft Graph ontrafeld: gedelegeerde versus toepassingsmachtigingen

By · · Updated

Welkom terug op de blog! Als je je diep in Microsoft 365-automatisering hebt verdiept, ben je waarschijnlijk al tegen de muren aangelopen die native connectors en de beperkingen van traditionele scripts opwerpen. Authenticatie kan lastig zijn bij het automatiseren van Microsoft 365, zeker als je robuuste beveiliging wilt combineren met een soepele werking. Of je nu maatwerk-enterprise-apps bouwt o

Automatically translated with AI from the original post. Read the English original

▶ BLOGDemystifying OAuth 2.0in Microsoft Graph:…M365.FM
Titelbild: Demystifying OAuth 2.0 in Microsoft Graph: Delegated vs. Application Permissions

Welkom terug op de blog! Als je je diep in Microsoft 365-automatisering hebt verdiept, ben je waarschijnlijk al tegen de muren aangelopen die native connectors en de beperkingen van traditionele scripts opwerpen. Authenticatie kan lastig zijn bij het automatiseren van Microsoft 365, zeker als je robuuste beveiliging wilt combineren met een soepele werking. Of je nu maatwerk-enterprise-apps bouwt of geautomatiseerde achtergrondprocessen inricht: een goed begrip van authenticatiemodellen is cruciaal. Deze post legt tokens, scopes en toestemmingsstromen uit, zodat je het juiste model kiest voor gebruikersgerichte taken of onbewaakte achtergrondjobs. Laten we meteen beginnen en ontrafelen hoe OAuth 2.0 de Microsoft Graph API aandrijft.

Inleiding tot authenticatie in Microsoft Graph

Microsoft Graph is de uniforme toegangspoort tot het volledige Microsoft 365-ecosysteem. In plaats van met afzonderlijke, gefragmenteerde API's voor Exchange, SharePoint, Teams en Azure Active Directory (nu Microsoft Entra ID) te werken, kunnen ontwikkelaars en IT-beheerders al deze diensten via één eindpunt benaderen. Omdat Graph de toegang tot gevoelige bedrijfsgegevens beheert, vereist het beveiligen van deze poort wel een strikt authenticatiekader. Inzicht in hoe identiteit, toegangstokens en machtigingen op elkaar aansluiten, is de eerste stap naar betrouwbare, veilige automatiseringen die niet onder druk bezwijken of beveiligingsmeldingen veroorzaken.

OAuth 2.0 in de context van Microsoft 365

Microsoft Graph vertrouwt in de kern op het OAuth 2.0-protocol voor autorisatie. Wanneer je applicatie of script met Graph wil communiceren, kan het inloggegevens niet zomaar onversleuteld versturen. In plaats daarvan moet het een toegangstoken aanvragen bij het Microsoft identity platform (Entra ID). Dit toegangstoken fungeert als een veilig digitaal paspoort. Het vertelt Microsoft Graph wie het verzoek doet, welke applicatie wordt gebruikt en, het belangrijkste, welke specifieke machtigingen (scopes) aan dat token zijn toegekend. Zonder geldig token wijst Graph het verzoek meteen af met een standaard fout voor ongeautoriseerde toegang.

Gedelegeerde machtigingen: wanneer je als gebruiker draait

Welk machtigingsmodel je kiest, hangt volledig af van de aard van je workload. Gedelegeerde machtigingen zijn bedoeld voor apps die draaien met de ondersteuning van een aangemelde gebruiker. Wanneer een applicatie gedelegeerde machtigingen gebruikt, handelt de app namens de gebruiker die op dat moment is aangemeld. Als een gebruiker een script draait om de eigen agenda te lezen of de profielfoto bij te werken, beoordeelt Graph het verzoek niet alleen op basis van wat de applicatie mag doen, maar ook op basis van wat die individuele gebruiker mag benaderen. Heeft de gebruiker geen recht om een bepaalde mailbox in te zien, dan geeft het gedelegeerde token die toegang ook niet. Dit model is ideaal voor gebruikersgerichte applicaties, interactieve tools en persoonlijke productiviteitsscripts.

Toepassingsmachtigingen: onbewaakte achtergrondjobs aansturen

Aan de andere kant: wat doe je als een script of service om middernacht moet draaien terwijl er niemand achter het toetsenbord zit? Voor onbewaakte achtergrondjobs, daemon-services en rapportagetools voor de hele tenant heb je toepassingsmachtigingen nodig. In dit model opereert de applicatie zelfstandig, los van elke gebruikerscontext: ze draait onder haar eigen identiteit. Omdat er geen mens is die zich interactief aanmeldt en toestemming verleent, vereisen toepassingsmachtigingen expliciete vooraf goedkeuring door een tenantbeheerder. Eenmaal verleend, kan de app gegevens van de hele organisatie benaderen. Dat maakt dit model uitzonderlijk krachtig voor beheerautomatisering, onboardingscripts en compliancebewaking, maar het vraagt ook om strikt beveiligingstoezicht.

Scopes, tokens en toestemmingsstromen onder de loep

Authenticatie- en autorisatietermen kunnen soms overweldigend aanvoelen, maar als je de workflow opdeelt, wordt het proces duidelijker. Scopes zijn de specifieke machtigingen die je applicatie aanvraagt, zoals User.Read.All of Mail.Read. Wanneer een gebruiker of beheerder een app autoriseert, controleren en keuren ze deze scopes goed. Eenmaal goedgekeurd geeft het identiteitsplatform een JSON Web Token (JWT) uit. Je code voegt dit token toe aan de HTTP Authorization-header bij elke aanvraag naar Microsoft Graph. Als je toestemming correct beheert, kan je app deze tokens soepel verkrijgen zonder onverwachte obstakels tegen te komen.

Vastlopen bij beheerderstoestemming voorkomen

Een van de meest voorkomende knelpunten waar ontwikkelaars en beheerders tegenaan lopen, is wachten op goedkeuring door een beheerder. Wanneer een applicatie om scopes met hoge bevoegdheden voor applicaties of gevoelige gedelegeerde scopes vraagt, kan Microsoft Entra ID vereisen dat een beheerder de applicatie goedkeurt voordat er tokens kunnen worden uitgegeven. Als je deploymentpijplijn ervan uitgaat dat gebruikers zelf toestemming kunnen geven, en zij plotseling worden geblokkeerd door tenantbeleid, dan stopt je automatisering volledig. Om vast te lopen bij beheerderstoestemming te voorkomen, breng je altijd vooraf in kaart welke machtigingen je nodig hebt, documenteer je de zakelijke onderbouwing en stem je af met je global admins of applicatiebeheerders om waar nodig vooraf toestemming voor de hele tenant in te richten.

Veelvoorkomende valkuilen en hoe je ze oplost

Zelfs ervaren ontwikkelaars lopen soms tegen frustrerende autorisatieproblemen aan bij het werken met Microsoft Graph. Laten we eens kijken naar een aantal veelvoorkomende problemen en hoe je ze oplost:

Best practices voor beveiliging en governance

Wanneer je via een API de deur naar je Microsoft 365-tenant openzet, moet beveiliging je topprioriteit zijn. Het principe van minimale bevoegdheden betekent dat je alleen de absolute minimumscopes aanvraagt die je applicatie nodig heeft om te functioneren. Vraag nooit Directory.AccessAsUser.All aan om alleen de weergavenaam van een gebruiker te lezen. Houd een duidelijk overzicht bij van welke apps toegang hebben tot je tenant, scheid je ontwikkel-, test- en productieregistraties volledig van elkaar, en stel een strikt schema vast voor het roteren van clientgeheimen en certificaten.

Je eerste echte queries (voorbeelden)

Zodra je authenticatiemodel op orde is, kun je beginnen met queries op de Graph API. Hier zijn enkele praktische voorbeelden die je kunt aanpassen:

Aanbevolen tools

Met de juiste tooling is het bouwen en debuggen van Microsoft Graph-queries aanzienlijk eenvoudiger. Graph Explorer is een onmisbare webspeeltuin om endpoints te testen en toestemmingshints te controleren. Voor het schrijven van code nemen de Microsoft Graph SDK's (.NET, JavaScript, Python) veel van het onderliggende HTTP-werk uit handen. Postman of REST Client-extensies in je IDE zijn geweldig om collecties en omgevingen te beheren, terwijl Power Automate, Logic Apps en PowerShell visuele en operationele workflowautomatisering uitstekend afhandelen.

Veelgestelde vragen

Gedelegeerd vs. applicatie: hoe kies ik?

Taakgerichte scenario's die gebruikersgericht zijn, passen het best bij gedelegeerde machtigingen. Onbewaakte taken, achtergronddaemons en brede beheertaken vereisen toepassingsmachtigingen in combinatie met de juiste beheerderstoestemming.

Hoe voorkom ik throttling?

Gebruik $select om de omvang van payloads te beperken, implementeer paginering en delta-query's, bundel verzoeken waar mogelijk en bouw je scripts altijd zo dat ze statuscodes 429 netjes afhandelen, met logica voor opnieuw proberen.

Kan ik Graph gebruiken zonder te coderen?

Ja! Je kunt endpoints prototypen in Graph Explorer en workflows orkestreren met Power Automate. Voor complexe logica stap je over op de officiële SDK's of PowerShell-scripts.

Is Graph veilig genoeg voor compliance-rapportages?

Absoluut. Wanneer het wordt geïmplementeerd volgens het principe van minimale privileges, met gecentraliseerde logging, gecontroleerde toestemmingsstromen en veilig geheimenbeheer, voldoet Microsoft Graph aan strenge compliancenormen voor ondernemingen.

Conclusie

Het beheersen van authenticatie binnen Microsoft Graph is dé sleutel voor elke beheerder, architect of ontwikkelaar die het volledige potentieel van Microsoft 365 wil benutten. Door het cruciale verschil tussen gedelegeerde en toepassingsmachtigingen te begrijpen, je scopes en tokens zorgvuldig te beheren en strikte beveiligingsgovernance te volgen, bouw je automatisering die zowel krachtig als veilig is. Wil je dit onderwerp nog dieper verkennen, codevoorbeelden bekijken en geavanceerde strategieën voor foutafhandeling en throttling leren? Bekijk dan zeker de bijbehorende podcastaflevering: Automate Microsoft 365 with Microsoft Graph API. Veel succes met automatiseren!

Microsoft Graph Microsoft Entra ID Microsoft 365 Automation Exchange Online Microsoft To Do SharePoint

Related articles

RSS