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.