Hoe werkt authenticatie in een webapplicatie?
Authenticatie is het proces waarbij een webapplicatie controleert wie een gebruiker is voordat die toegang krijgt. De meest gebruikte methoden zijn een e-mail en wachtwoord combinatie, OAuth via een externe provider zoals Google of Microsoft, en twee-factor authenticatie (2FA). Wachtwoorden worden nooit in leesbare tekst opgeslagen maar gehasht. Na succesvolle login ontvangt de gebruiker een sessie of JWT-token waarmee elke vervolgaanvraag wordt geautoriseerd.
Authenticatie is het proces waarbij een webapplicatie controleert wie je bent. Hoe dat werkt, welke opties er zijn en wat past bij jouw situatie.
Authenticatie versus autorisatie
Twee begrippen die door elkaar lopen: authenticatie en autorisatie. Authenticatie controleert wie je bent: kloppen je inloggegevens? Autorisatie bepaalt wat je mag doen nadat je bent ingelogd: welke pagina’s zie je, welke data mag je bewerken?
Een goede webapplicatie regelt beide. Authenticatie zonder autorisatie betekent dat elke ingelogde gebruiker alles kan zien. Meer over hoe je dat inricht lees je in het artikel over gebruikersbeheer en toegangscontrole in een webapplicatie.
Hoe klassieke wachtwoord-login werkt
De meest vertrouwde methode: een gebruiker vult zijn e-mailadres en wachtwoord in. De applicatie vergelijkt dit met wat er in de database staat. Als het klopt, krijgt de gebruiker toegang.
Het cruciale detail: wachtwoorden worden nooit in leesbare tekst opgeslagen. Ze worden gehasht, een wiskundige berekening die het wachtwoord omzet naar een vaste tekenreeks. Als iemand de database steelt, ziet die geen wachtwoorden maar alleen hashes. Een goed hash-algoritme (zoals bcrypt of Argon2) maakt het praktisch onmogelijk om het originele wachtwoord te achterhalen.
OAuth en social login
OAuth maakt het mogelijk om in te loggen met een bestaand account bij Google, Microsoft of een andere provider. De gebruiker hoeft geen nieuw wachtwoord aan te maken bij jouw applicatie. De identiteitsprovider bevestigt wie de gebruiker is, en jouw applicatie vertrouwt die bevestiging.
Voor zakelijke toepassingen is Microsoft OAuth populair: medewerkers loggen in met hun Microsoft 365-account. Voor consumenten-apps is Google Login een logische keuze. Het voordeel is dat je geen wachtwoorden opslaat en minder verantwoordelijk bent voor de beveiliging van inloggegevens.
Twee-factor authenticatie
Twee-factor authenticatie (2FA) voegt een tweede verificatiestap toe aan het inlogproces. Na het invoeren van het wachtwoord moet de gebruiker ook een code invoeren die verloopt na 30 seconden, gegenereerd door een app als Microsoft Authenticator of Google Authenticator.
Zelfs als iemand het wachtwoord steelt, kan die niet inloggen zonder ook het apparaat van de gebruiker te hebben. Voor applicaties die werken met persoonsgegevens, financiële data of gevoelige bedrijfsinformatie is 2FA geen luxe maar een standaard vereiste.
JWT-tokens uitgelegd
Na succesvolle login geeft de server een JWT (JSON Web Token) terug aan de browser. Dit is een digitaal ondertekende string die zegt: “deze gebruiker is ingelogd en heeft deze rechten.” De browser stuurt dit token mee bij elke vervolgaanvraag.
De server hoeft dan niet bij elke aanvraag de database te raadplegen om te controleren of de gebruiker nog ingelogd is. Het token is zelfstandig verifieerbaar. Tokens hebben een vervaltijd, waarna de gebruiker opnieuw moet inloggen of een vernieuwd token moet ophalen.
Wat past bij jouw situatie
Voor een intern bedrijfstool met medewerkers die al Microsoft 365 gebruiken, is Microsoft OAuth de logische keuze. Minder wachtwoorden om te beheren, geen apart account nodig. Meer over hoe je applicaties voor meerdere organisaties inricht lees je in het artikel over wat een multi-tenant applicatie is.
Voor een klantenportaal waar mensen inloggen met een e-mailadres, is klassieke wachtwoord-login met 2FA een solide keuze. Gebruik daarvoor een gespecialiseerd authenticatieplatform zoals Supabase Auth of Auth0, in plaats van het zelf te bouwen. Die platforms zijn getest, up-to-date en besparen weken aan ontwikkeltijd.
Onze tip: bouw authenticatie nooit volledig zelf. Gebruik een gespecialiseerd platform zoals Supabase Auth, Auth0 of Azure Active Directory. Beveiliging zelf bouwen kost maanden en bevat altijd fouten. Staande oplossingen zijn getest door duizenden applicaties en worden continu bijgewerkt bij nieuwe kwetsbaarheden.
Veelgestelde vragen
Wat is het verschil tussen authenticatie en autorisatie?
Authenticatie controleert wie je bent: zijn je inloggegevens correct? Autorisatie controleert wat je mag doen nadat je bent ingelogd. Een medewerker kan inloggen (authenticatie), maar mag alleen zijn eigen dossiers zien en niet die van collega's (autorisatie). Beide processen zijn nodig in een veilige webapplicatie. Authenticatie zonder autorisatie betekent dat elke ingelogde gebruiker alles kan zien en doen.
Wat is OAuth en hoe werkt het?
OAuth is een protocol waarmee een webapplicatie de identiteitsverstrekking uitbesteedt aan een derde partij zoals Google, Microsoft of Apple. De gebruiker logt niet in bij jouw applicatie zelf, maar bij de provider. De provider stuurt een bevestiging terug dat de gebruiker wie hij zegt te zijn is. Jouw applicatie vertrouwt die bevestiging en geeft toegang. Het voordeel is dat je geen wachtwoorden opslaat en dat gebruikers een vertrouwde inlogmethode kunnen gebruiken. Het nadeel is afhankelijkheid van de beschikbaarheid van de externe provider.
Is twee-factor authenticatie verplicht?
Wettelijk verplicht is het in de meeste gevallen niet, maar voor applicaties die met persoonsgegevens, financiële data of gevoelige bedrijfsinformatie werken, is het sterk aan te raden. De AVG vereist passende technische maatregelen om persoonsgegevens te beschermen, en 2FA valt daar in de praktijk onder. Platforms zoals Microsoft 365 en Google Workspace stellen het al verplicht voor beheerders. Voor zakelijke webapplicaties is 2FA geen overkill, het is een standaard beveiligingslaag.