Home » Begrippen » Wat is OAuth?

Wat is OAuth?

OAuth is een open standaard voor veilige autorisatie waarmee je een applicatie toegang kunt verlenen tot jouw gegevens bij een andere dienst, zonder daarvoor jouw wachtwoord te hoeven delen. Denk aan de knop “Inloggen met Google” op een website: je geeft die site toestemming om bepaalde gegevens op te halen uit jouw Google-account, maar de site ziet jouw wachtwoord nooit. OAuth wordt breed ingezet voor integraties tussen apps, zoals het koppelen van Spotify aan Facebook, of het autoriseren van een GitHub-applicatie voor toegang tot jouw repositories. Zowel grote platforms als kleine SaaS-tools maken er gebruik van, omdat het de veiligheid verhoogt en de gebruikerservaring sterk vereenvoudigt. Door autorisatie en authenticatie van elkaar te scheiden, biedt OAuth een flexibel en robuust fundament voor het moderne web.

Hoe werkt OAuth?

OAuth werkt via een reeks stappen die samen een “authorization flow” vormen. In plaats van jouw wachtwoord door te sturen naar een applicatie, worden er tijdelijke digitale sleutels uitgewisseld: tokens. De meest gebruikte versie is OAuth 2.0, die sneller en eenvoudiger te implementeren is dan zijn voorganger.

De vier rollen binnen OAuth

Om OAuth goed te begrijpen, is het handig de vier betrokken partijen te kennen. De Resource Owner ben jij als gebruiker: degene die gegevens bezit. De Client is de applicatie die toegang wil tot jouw gegevens. De Authorization Server verleent toegang na jouw goedkeuring — dit is bijvoorbeeld de server van Google of GitHub. De Resource Server is de plek waar jouw gegevens daadwerkelijk staan en die de client uiteindelijk aanspreekt.

De authorization flow stap voor stap

  1. De client vraagt jouw toestemming voor specifieke gegevens, aangeduid als “scopes”.
  2. Jij logt in bij de authorization server en geeft expliciet toestemming.
  3. De authorization server stuurt een tijdelijke autorisatiecode terug naar de client.
  4. De client wisselt deze code in voor een access token via een beveiligde server-naar-server-verbinding.
  5. Met dat access token kan de client namens jou gegevens ophalen bij de resource server.

Het access token heeft een beperkte geldigheidsduur, wat de beveiliging ten goede komt. Veel implementaties maken ook gebruik van een refresh token om na het verlopen automatisch een nieuw access token op te halen, zonder dat jij opnieuw hoeft in te loggen.

OAuth versus OpenID Connect

Een veelvoorkomende bron van verwarring is het verschil tussen OAuth en OpenID Connect (OIDC). OAuth regelt autorisatie: het verlenen van toegang tot bepaalde bronnen of acties. Het zegt niets over wie jij bent als gebruiker. OpenID Connect is een laag bovenop OAuth 2.0 die authenticatie toevoegt, zodat de client ook jouw identiteit kan vaststellen.

Wanneer je op een website klikt op “Inloggen met Google”, gebruik je in de praktijk OpenID Connect. Google geeft de site dan een ID-token waarmee jouw identiteit wordt bevestigd. Puur OAuth zou de site alleen toegang geven tot bepaalde gegevens, zonder te zeggen wie jij bent. De twee protocollen vullen elkaar aan en worden in de praktijk vaak samen ingezet.

Veelgebruikte OAuth-flows

OAuth 2.0 kent meerdere flows, elk geschikt voor een ander type applicatie of scenario. De juiste keuze hangt af van de architectuur van jouw project.

Authorization Code Flow

Dit is de meest gebruikte en veiligste flow voor webapplicaties met een server-side component. De tijdelijke autorisatiecode wordt ingewisseld via een beveiligde server-naar-server-verbinding, zodat het access token nooit in de browser terechtkomt. Voor extra beveiliging wordt tegenwoordig PKCE (Proof Key for Code Exchange) aanbevolen, ook voor publieke clients zoals mobiele apps en single-page applications.

Client Credentials Flow

Deze flow is bedoeld voor machine-to-machine-communicatie, waarbij geen menselijke gebruiker betrokken is. Een backend-dienst authenticeert zich direct bij de authorization server via een client ID en een secret. Dit zie je bijvoorbeeld bij API-integraties tussen twee bedrijfssystemen of bij geautomatiseerde taken die ’s nachts draaien.

Implicit Flow (verouderd)

De implicit flow was oorspronkelijk bedoeld voor single-page applications, maar geldt inmiddels als verouderd vanwege beveiligingsrisico’s. Het access token werd direct in de browser teruggegeven, wat het kwetsbaar maakte voor onderschepping. Moderne implementaties gebruiken in plaats hiervan de Authorization Code Flow met PKCE.

Beveiliging en best practices

OAuth is een robuust protocol, maar de implementatie bepaalt uiteindelijk hoe veilig jouw applicatie is. Kleine fouten in de configuratie kunnen grote gevolgen hebben.

  • Gebruik altijd HTTPS: tokens mogen nooit via een onbeveiligde verbinding worden verstuurd.
  • Beperk scopes: vraag alleen toegang tot de gegevens die je echt nodig hebt — dit heet het principe van “least privilege”.
  • Valideer de state-parameter: dit beschermt tegen CSRF-aanvallen (Cross-Site Request Forgery), waarbij een kwaadwillende jou ongemerkt een actie laat uitvoeren.
  • Sla tokens veilig op: access tokens mogen nooit in onbeveiligde localStorage worden bewaard in een browser.
  • Gebruik korte tokenlevensduren: een kort geldig access token minimaliseert de schade bij diefstal.

OAuth in WordPress

Binnen het WordPress-ecosysteem kom je OAuth op meerdere plaatsen tegen. De WordPress REST API ondersteunt OAuth voor het beveiligen van API-verzoeken vanuit externe applicaties. Plugins zoals WooCommerce gebruiken OAuth-gebaseerde koppelingen met betalingsproviders en externe diensten, zoals Stripe of PayPal. Daarnaast bieden plugins als “Nextend Social Login” OAuth-integraties met platforms als Google, Facebook en Twitter, zodat bezoekers eenvoudig kunnen inloggen zonder een apart account aan te maken.

Conclusie

OAuth is een essentieel protocol voor iedereen die werkt met webapplicaties en API-integraties. Het stelt gebruikers in staat om veilig toegang te verlenen tot hun gegevens, zonder daarvoor hun wachtwoord te delen met derden. Door autorisatie en authenticatie te scheiden biedt OAuth een flexibel fundament dat breed wordt ingezet — van sociale logins tot complexe machine-to-machine-koppelingen. Een correcte implementatie, met aandacht voor de juiste flow, veilige tokenopslag en beperkte scopes, is cruciaal voor de veiligheid van jouw applicatie. Als WordPress-beheerder of -ontwikkelaar kom je OAuth vrijwel dagelijks tegen in plugins en API-integraties. Verdiep je in de Authorization Code Flow met PKCE als je zelf een implementatie bouwt, en controleer bestaande koppelingen regelmatig op verouderde configuraties.

Veelgestelde vragen

  1. Wat is het verschil tussen OAuth en een gewone inlog met gebruikersnaam en wachtwoord?

    Bij een gewone inlog vertrouw je jouw wachtwoord toe aan een applicatie, die dat opslaat en verifieert. OAuth omzeilt dit: jij logt in bij de oorspronkelijke dienst en die geeft de applicatie een tijdelijk token. Jouw wachtwoord komt nooit bij de derde partij terecht, wat de risico’s bij een datalek sterk beperkt.

  2. Is OAuth hetzelfde als SSO?

    Niet precies. SSO (Single Sign-On) is een concept waarbij je één keer inlogt en toegang krijgt tot meerdere systemen. OAuth is een van de protocollen die SSO kan realiseren, maar SSO kan ook worden geïmplementeerd via andere protocollen zoals SAML.

  3. Hoe lang is een OAuth access token geldig?

    Dat verschilt per implementatie, maar access tokens zijn doorgaans kort geldig: van enkele minuten tot maximaal een uur. Refresh tokens kunnen veel langer geldig zijn en worden gebruikt om automatisch nieuwe access tokens op te halen zonder dat de gebruiker opnieuw hoeft in te loggen.

  4. Kan ik OAuth gebruiken voor mijn WordPress-site?

    Ja, er zijn diverse plugins beschikbaar die OAuth-ondersteuning toevoegen aan WordPress. Voor sociale logins kun je terecht bij plugins zoals “Nextend Social Login”. Voor het beveiligen van de REST API zijn er plugins die OAuth 2.0 ondersteunen voor externe applicaties.

  5. Wat gebeurt er als ik een OAuth-koppeling intrek?

    Wanneer je via de instellingen van een dienst de toestemming voor een app intrekt, worden de bijbehorende tokens direct ongeldig. De applicatie kan daarna geen toegang meer krijgen tot jouw gegevens, zonder dat je jouw wachtwoord hoeft te wijzigen of andere accounts hoeft aan te passen.

Al onze begrippen

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0-9