OAuth is de standaard waarmee één app een deel van je account bij een andere dienst kan gebruiken zonder dat je je wachtwoord afgeeft. Als je op ‘Koppel met Google’ of ‘Inloggen met GitHub’ klikt, is OAuth de handdruk die op de achtergrond werkt: de andere dienst controleert wie je bent en geeft de app een beperkt en intrekbaar toegangsbriefje in plaats van je inloggegevens.

Denk aan een valetsleutel van een hotel. Je geeft hem aan de parkeerhulp zodat die je auto kan verzetten, maar met die sleutel gaat de kofferbak of het dashboardkastje niet open. OAuth doet hetzelfde met softwarerechten: een app mag bijvoorbeeld je agenda lezen maar verder niets, en je kunt die toegang weer intrekken wanneer je wilt. Dit is een vorm van autorisatie, beslissen wat een app mag doen, en dat is iets anders dan authenticatie, bewijzen wie je bent.

In de praktijk wordt die afbakening bepaald door de delen van je account die de app vraagt, vaak getoond op een toestemmingsscherm voordat je akkoord gaat. Een fotoprintdienst kan leesrecht op één album vragen in plaats van je hele bibliotheek, en jij beslist of die ruil het waard is.

Het toegangsrecht komt meestal binnen als een token dat de app bewaart en bij elk verzoek meestuurt, vaak een JWT. Omdat er nooit iets over je wachtwoord wordt gedeeld, kan een datalek bij de gekoppelde app je hoofdwachtwoord niet blootleggen. De keerzijde is dat die tokens op zichzelf waardevol zijn, dus ze moeten zorgvuldig worden bewaard en een verstandige vervaltijd krijgen in plaats van eeuwig te blijven leven.

Bij TopDevs gebruiken we OAuth om klantsystemen te koppelen aan diensten als Google, Microsoft en betaalproviders, zodat integraties veilig blijven en toegang kan worden ingetrokken zonder wachtwoordreset.