Logo Logo
GitHub Designed by Logto

Wat is een autorisatieserver?

De term “autorisatieserver” kan een algemene term zijn die verwijst naar elke server die autorisatie uitvoert. We richten ons op de definitie in de context van de OAuth 2.0 en OpenID Connect (OIDC) frameworks.

In OAuth 2.0 is een autorisatieserver een component dat toegangstokens (access tokens) uitgeeft aan clients na succesvolle authenticatie en autorisatie. De toegangstokens worden door clients gebruikt om toegang te krijgen tot beschermde bronnen namens de gebruiker (resource owner).

Te veel termen? Laten we een voorbeeld uit de echte wereld bekijken: een gebruiker klikt op “Aanmelden met Google” op een applicatie “MyApp” die Autorisatiecode stroom (Authorization code flow) gebruikt voor Google-aanmelding.

In dit voorbeeld fungeert Google als de autorisatieserver die een toegangstoken uitgeeft aan de client (MyApp) nadat de gebruiker succesvol is aangemeld. De client kan dan het toegangstoken gebruiken om het gebruikersprofiel (beschermde bron) op Google op te halen.

Autorisatieserver in OpenID Connect (OIDC)

Aangezien OpenID Connect is gebouwd bovenop OAuth 2.0, hergebruikt het sommige termen en concepten van OAuth 2.0. OIDC voegt de authenticatiefunctie toe aan de OAuth 2.0 autorisatieserver, waardoor de autorisatieserver ook een OpenID Provider (OP) wordt. Om dubbelzinnigheid te voorkomen, raden we aan altijd de term “OpenID Provider” te gebruiken wanneer wordt verwezen naar de autorisatieserver in OIDC.

Naast het uitgeven van toegangstokens geeft de OpenID Provider (autorisatieserver) in OIDC ook ID-tokens aan clients uit. De ID-tokens bevatten gebruikersinformatie en worden gebruikt om gebruikers te authenticeren.

Hoe werkt een autorisatieserver?

Een autorisatieserver moet de OAuth 2.0 grants (flows) ondersteunen om toegangstokens aan clients uit te geven. Een grant type bestaat meestal uit een reeks stappen die de client en de autorisatieserver volgen om een toegangstoken te verkrijgen.

De autorisatieserver moet ook het verzoek van de client valideren, de client authenticeren en de identiteit van de gebruiker verifiëren voordat hij een toegangstoken uitgeeft. Het kan ook aanvullende beveiligingsmaatregelen afdwingen, zoals Bewijs Sleutel voor Code Uitwisseling (Proof Key for Code Exchange, PKCE) voor de Autorisatiecode stroom (Authorization code flow) .

Gebruikscases voor autorisatieservers

Zoals de naam suggereert, worden autorisatieservers gebruikt om Autorisatie (Authorization) te verwerken. De autorisatieserver kan eerste en derde partijen betreffen:

  • Het bovengenoemde Google-aanmelding voorbeeld.
  • Een e-commercewebsite (client) die toegang vraagt tot de betalingsinformatie van een gebruiker (beschermde bron) van een andere website.
  • Een mobiele app (client) die toegang vraagt tot de locatiegegevens van een gebruiker (beschermde bron) van een locatieprovider.

Of het kan alleen worden gebruikt voor interne autorisatie, zoals:

  • Een gebruiker moet toegang krijgen tot hun bestellingen (beschermde bron) op een e-commercewebsite (client).
  • Een service (client) moet toegang krijgen tot een database (beschermde bron) in een microservices-architectuur.

In moderne applicaties kan een autorisatieserver ook een Identiteitsprovider (Identity provider, IdP) zijn die ook OpenID Connect (OIDC) ondersteunt voor gebruikersauthenticatie.

Zie ook