Wat is OAuth en waarom vraagt een koppeling toestemming

OAuth laat een app beperkte toegang krijgen tot jouw gegevens in een ander systeem, zonder dat je je wachtwoord deelt. Zo werkt die toestemming.

Kort antwoord

OAuth is een standaard waarmee een toepassing beperkte toegang tot gegevens in een ander systeem kan krijgen, zonder dat jij je wachtwoord aan die toepassing geeft. Je logt in bij het systeem zelf en geeft daar toestemming; de toepassing krijgt een token in plaats van je wachtwoord. Daarom opent een koppeling een inlogvenster van het bronsysteem en vraagt hij om toestemming.

OAuth is de reden dat een koppeling vaak begint met een inlogvenster van een ander systeem, en niet met een veld waarin je je wachtwoord invult. Het is een standaard voor autorisatie: een app krijgt beperkte toegang tot gegevens, zonder dat jij je inloggegevens afgeeft. Hieronder lees je hoe dat werkt en wat het betekent voor een koppeling.

Wat OAuth is

OAuth 2.0 is vastgelegd in RFC 6749 en staat op oauth.net omschreven als het industriestandaardprotocol voor autorisatie. Het framework laat een externe toepassing beperkte toegang krijgen tot een systeem, namens de eigenaar van de gegevens. Dat is een ander doel dan inloggen: OAuth regelt niet wie je bent, maar wat een toepassing mag doen.

De standaard kent vier rollen. De eigenaar van de gegevens (jij) geeft toestemming. De client is de toepassing die de gegevens wil gebruiken. De autorisatieserver geeft na jouw toestemming een token uit. De resourceserver is het systeem waar de gegevens staan en dat het token controleert.

Hoe de toestemming werkt

Het verloop is steeds hetzelfde. Je klikt in de koppeling op verbinden en er opent een venster van het bronsysteem. Daar log je in en zie je welke toegang wordt gevraagd. Geef je toestemming, dan krijgt de koppeling een access token. Dat is, in de woorden van de standaard, een reeks tekens die een toestemming voor een bepaald bereik en een bepaalde duur voorstelt.

Dat bereik heet scope. Het bronsysteem bepaalt welke scopes bestaan, en kan minder toekennen dan gevraagd. Daarom zie je in het toestemmingsscherm vaak een lijst met rechten. Voor wie het verschil met een API-sleutel zoekt: bij een sleutel maak je zelf de code, bij OAuth geeft het systeem na jouw toestemming een token uit.

Waarom een token en geen wachtwoord

Een token is gekoppeld aan één toepassing en een bepaald bereik, en het systeem kan het apart intrekken. Je wachtwoord geeft toegang tot alles en blijft bij het systeem zelf. Een lopend token verloopt bovendien. De standaard noemt daarom het refresh token: een tweede token waarmee de toepassing een nieuw access token kan opvragen. Of een refresh token wordt uitgegeven, bepaalt de autorisatieserver.

Voor jou betekent dit dat je een koppeling kunt stoppen zonder je wachtwoord te wijzigen, en dat een toepassing nooit meer mag dan het systeem toestaat.

Zo ziet dat eruit bij een koppeling

In APIboard gebruikt een deel van de koppelingen OAuth. Bij Exact Online log je in bij Exact en vink je in het toestemmingsscherm de administraties aan die APIboard mag lezen. Bij HubSpot en Moneybird log je eveneens in bij het systeem zelf, en bij Google Analytics vraagt APIboard alleen leestoegang. In alle gevallen geldt wat het helpcentrum zegt: APIboard ziet je wachtwoord niet.

Verloopt de toegang of trek je hem in het bronsysteem in, dan toont de koppeling een foutstatus. Met Opnieuw verbinden log je opnieuw in; de koppeling en de opgehaalde gegevens blijven staan. Hoe je koppelingen beheert, lees je bij beheren. Bij andere systemen maak je zelf een sleutel; die gaan niet via OAuth.

Onze tip: lees het toestemmingsscherm van het bronsysteem altijd even door. Daar staat precies welke rechten je geeft en, bij Exact Online, voor welke administraties. Vink alleen aan wat de koppeling nodig heeft. Hoe een API gegevens aanbiedt, hangt af van wat het systeem toestaat; het toestemmingsscherm laat dat zien.

Veelgestelde vragen

Ziet de koppeling mijn wachtwoord bij OAuth?

Nee. Je logt in op de pagina van het systeem zelf, niet in de app die de koppeling vraagt. Die app krijgt na je toestemming een token, geen wachtwoord. Bij APIboard staat dat zo in het helpcentrum: APIboard ziet je wachtwoord niet. Het token kan daarnaast beperkt zijn tot bepaalde rechten.

Wat is het verschil tussen OAuth en een API-sleutel?

Bij een API-sleutel maak je zelf een geheime code aan in het bronsysteem en geef je die door aan de koppeling. Bij OAuth log je in via een venster van het systeem en geef je toestemming, waarna het systeem zelf een token uitgeeft. Je hoeft bij OAuth dus geen code te kopiëren of te bewaren. Beide kunnen alleen de rechten hebben die het bronsysteem toestaat.

Wat gebeurt er als de toestemming verloopt of wordt ingetrokken?

Een access token geldt maar een beperkte tijd en een systeem kan toegang ook intrekken. De koppeling heeft dan geen toegang meer en toont in APIboard de status Fout bij de koppeling. Met Opnieuw verbinden log je opnieuw in en geef je opnieuw toestemming. De koppeling en de eerder opgehaalde gegevens blijven dan staan.

Moet ik elke koppeling via OAuth maken?

Nee, dat verschilt per systeem. In APIboard koppel je bijvoorbeeld Exact Online, Moneybird en HubSpot met een inlogvenster, terwijl je bij andere systemen zelf een sleutel of beveiligingscode aanmaakt. In de koppelingpagina en het helpcentrum staat per systeem hoe het gaat.

Hier meer over weten?

Koppel binnen minuten met je software, zonder zelf te hoeven knutselen. Wij maken het eenvoudig voor je.