OAuth (Open Authorization) is een open standaard protocol voor autorisatie dat gebruikers in staat stelt om applicaties beperkte toegang te geven tot hun gegevens op andere platforms, zonder daarbij hun gebruikersnaam en wachtwoord te delen. Het is een veilige manier om applicaties met elkaar te laten communiceren en gegevens uit te wisselen.
In plaats van je wachtwoord aan een externe applicatie te geven, gebruik je OAuth om toestemming te verlenen. De applicatie ontvangt dan een toegangstoken waarmee het specifieke acties kan uitvoeren namens jou. Dit principe wordt ook wel 'delegated authorization' genoemd.
Hoe werkt OAuth?
OAuth werkt volgens een gestandaardiseerd proces waarbij verschillende partijen betrokken zijn:
- Resource Owner: De gebruiker die eigenaar is van de gegevens
- Client: De applicatie die toegang wil tot de gegevens
- Authorization Server: De server die de gebruiker authenticeert en tokens uitgeeft
- Resource Server: De server waar de beschermde gegevens staan opgeslagen
Het proces verloopt in verschillende stappen: de applicatie vraagt toestemming, de gebruiker wordt doorverwezen naar de authorization server, de gebruiker geeft toestemming, en de applicatie ontvangt een toegangstoken waarmee het de gevraagde gegevens kan ophalen.
OAuth 2.0 vs OAuth 1.0
OAuth 2.0 is de meest gebruikte versie en een complete herziening van OAuth 1.0. De belangrijkste verschillen zijn:
- Eenvoudiger implementatie: OAuth 2.0 is minder complex en makkelijker te implementeren
- Kortere tokens: Tokens zijn korter en makkelijker te verwerken
- Betere mobiele ondersteuning: Speciaal ontworpen voor mobiele en web applicaties
- Flexibelere flows: Verschillende authorization flows voor verschillende scenario's
Authorization Flows
OAuth 2.0 kent verschillende authorization flows, elk geschikt voor specifieke situaties:
- Authorization Code Flow: Meest veilige methode voor web applicaties
- Implicit Flow: Voor client-side applicaties (wordt minder gebruikt)
- Client Credentials Flow: Voor server-to-server communicatie
- Resource Owner Password Flow: Voor vertrouwde applicaties (wordt afgeraden)
- Device Code Flow: Voor apparaten zonder browser
