Applicaties 6 min

Wat is OAuth 2.0 en hoe werkt het?

Kort antwoord

OAuth 2.0 is een open standaard die applicaties toestaat om namens een gebruiker beperkte toegang te krijgen tot een externe dienst, zonder dat de gebruiker zijn wachtwoord deelt. Je kent het als 'Inloggen met Google' of 'Verbinden met Microsoft'. De gebruiker logt in bij de vertrouwde partij (Google, Microsoft), geeft toestemming voor specifieke acties, en de applicatie ontvangt een tijdelijk access token waarmee die acties mag uitvoeren.

OAuth 2.0 laat jou een app toegang geven tot je account zonder je wachtwoord te delen. Het is de standaard achter 'Inloggen met Google'.

Waarom OAuth 2.0 bestaat

Voor OAuth was er een probleem: als je een app toegang wilde geven tot je e-mails of agenda bij een andere dienst, moest je die app je wachtwoord geven. De app kon dan alles doen wat jij ook kon, inclusief je wachtwoord wijzigen of je account verwijderen.

OAuth 2.0 lost dit op door een tussenpersoon te introduceren: de autorisatieserver van de dienst zelf. De app krijgt nooit je wachtwoord. Ze krijgt een tijdelijk token met specifiek omschreven rechten, dat op elk moment ingetrokken kan worden.

Meer over hoe authenticatie werkt in webapplicaties lees je in het artikel over authenticatie in een webapplicatie.

Hoe de Authorization Code Flow werkt

De meest gebruikte variant van OAuth 2.0 is de Authorization Code Flow. Stap voor stap:

  1. Je klikt op “Inloggen met Google” in een app
  2. De app stuurt je door naar Google met een beschrijving van welke rechten het wil
  3. Google toont een scherm: “App X wil je agenda lezen, is dat goed?”
  4. Je klikt op Toestaan
  5. Google stuurt je terug naar de app met een tijdelijke code
  6. De app wisselt die code in bij Google voor een access token (dit gebeurt op de achtergrond, server-to-server)
  7. De app gebruikt het access token bij elk verzoek aan de Google API

Jij hebt op geen enkel moment je wachtwoord gedeeld met de app. Je kunt de toegang op elk moment intrekken via je Google-instellingen.

Access tokens, refresh tokens en scopes

Een access token is een tijdelijke sleutel die de app meestuurt bij elke API-aanroep. De API controleert of de token geldig is. Access tokens verlopen snel, typisch na 1 uur, om schade te beperken als ze onderschept worden.

Een refresh token is een langlevende sleutel waarmee de app automatisch een nieuw access token kan ophalen zonder dat de gebruiker opnieuw toestemming hoeft te geven. Refresh tokens verlopen na weken of maanden.

Scopes definiëren wat de app precies mag. Een app die jouw agenda wil lezen vraagt scope calendar.readonly. Als die app later ook e-mails wil versturen, moet ze opnieuw toestemming vragen voor scope mail.send. Je ziet altijd precies wat je goedkeurt.

Praktische voorbeelden

Een agendatool die vergaderingen inplant in jouw Google Agenda: de tool vraagt OAuth-toegang tot je agenda, je keurt het goed, en de tool kan afspraken aanmaken zonder ooit je wachtwoord te kennen.

Een dashboard dat data uit Microsoft 365 haalt: via OAuth 2.0 koppel je je Microsoft-account. Het dashboard kan daarna SharePoint-bestanden lezen of Teams-data ophalen met jouw toestemming.

Een n8n-workflow die e-mails verstuurt vanuit jouw Gmail: je autoriseert n8n eenmalig via OAuth, n8n slaat een refresh token op en kan voortaan e-mails versturen zonder dat je elke keer opnieuw inlogt.

OAuth 2.0 in jouw applicatie

Als je een applicatie laat bouwen met gebruikersbeheer, kom je vrijwel zeker OAuth 2.0 tegen, zowel als methode voor gebruikers om in te loggen (via Google of Microsoft) als als manier om met externe APIs te koppelen.

Implementeer OAuth 2.0 nooit volledig zelf. Gebruik een authenticatieplatform als Supabase Auth, Auth0 of Azure Entra ID. Die platforms hebben de complexe delen al correct gebouwd en onderhouden ze actief.

Onze tip: wil je weten welke apps toegang hebben tot je Google- of Microsoft-account via OAuth? Controleer dan Google Account beveiligingsinstellingen onder “Toegang van derden” of Microsoft Account instellingen onder “Privacy en beveiliging”. Zie je apps staan die je niet herkent of niet meer gebruikt? Trek de toegang direct in.

Veelgestelde vragen

Wat is het verschil tussen OAuth 2.0 en OpenID Connect?

OAuth 2.0 regelt autorisatie: een applicatie krijgt toestemming om bepaalde acties uit te voeren namens een gebruiker. Het vertelt niets over wie die gebruiker is. OpenID Connect (OIDC) is een laag bovenop OAuth 2.0 die authenticatie toevoegt: het bevestigt ook de identiteit van de gebruiker via een ID token. Wanneer je 'Inloggen met Google' gebruikt om in te loggen bij een app, wordt OAuth 2.0 gecombineerd met OpenID Connect. OAuth 2.0 alleen wordt gebruikt voor API-toegang, zoals een app die jouw Google Agenda mag lezen.

Wat is een access token en wanneer verloopt het?

Een access token is een tijdelijke digitale sleutel die een applicatie meestuurt bij elk verzoek aan een API. De API controleert of de token geldig is en of de bijbehorende rechten (scopes) de gevraagde actie toestaan. Access tokens verlopen na een korte periode, typisch 1 uur. Daarna kan de applicatie een refresh token gebruiken om automatisch een nieuwe access token op te halen zonder dat de gebruiker opnieuw hoeft in te loggen. Refresh tokens verlopen na langere tijd, bijvoorbeeld 30 dagen.

Wat zijn scopes in OAuth 2.0?

Scopes definiëren welke specifieke rechten een applicatie aanvraagt. In plaats van volledige toegang tot een account vraagt een applicatie alleen de rechten die het echt nodig heeft. Een agendatool vraagt scope 'agenda.readonly' (lezen maar niet wijzigen). Een e-mailtool vraagt 'mail.send' (versturen maar geen inbox lezen). De gebruiker ziet welke rechten worden gevraagd voor hij toestemming geeft. Zo heeft een kwaadwillende app die toestemming krijgt om je agenda te lezen geen toegang tot je e-mail of bestanden.

Is OAuth 2.0 veilig?

OAuth 2.0 is veilig als het correct is geimplementeerd. Het voorkomt dat gebruikers hun wachtwoord delen met derde partijen, wat een groot risico elimineert. De kwetsbaarheden die bestaan zijn voornamelijk implementatiefouten: een verkeerd geconfigureerde redirect URI, tokens die niet verlopen, of een onveilige opslag van tokens in de browser. Gebruik daarom altijd een bewezen OAuth-bibliotheek of authenticatiedienst zoals Supabase Auth of Auth0, in plaats van OAuth 2.0 zelf te implementeren.

Hier over sparren?

Plan een vrijblijvend gesprek. We luisteren mee, schetsen een aanpak en geven een eerlijk beeld van wat haalbaar is, zonder verkoopdruk.