OAuth2 en OpenID Connect diepgaand bekeken · Les

Sender-constrained tokens met mTLS

Leer hoe binding van clientcertificaten via mutual TLS bearer tokens omzet in sender-constrained tokens, zodat aanvallers gestolen tokens niet opnieuw kunnen gebruiken.

Les 4 van 413 stappen

Sender-constrained tokens met mTLS is een gratis OAuth2 en OpenID Connect diepgaand bekeken-les op CoddyKit. Dit is les 4 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject OAuth2 en OpenID Connect diepgaand bekeken. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus OAuth2 en OpenID Connect diepgaand bekeken bevat in totaal 4 lessen.

De zwakte van een bearer-token

Een gewoon bearer-token werkt voor iedereen die het in handen krijgt. Als het uitlekt via logboeken, een proxy of een XSS-bug, kan de dief het vrij gebruiken. Aan de verzender gebonden tokens lossen dit op door het token aan de legitieme client te koppelen.

Wat is mTLS?

Mutual TLS betekent dat beide kanten certificaten presenteren: de server bewijst zijn identiteit, zoals gebruikelijk, en de client presenteert ook een certificaat. De autorisatieserver kan uitgegeven tokens vervolgens aan dat clientcertificaat koppelen.

RFC 8705

Dit is gestandaardiseerd in RFC 8705 (OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens). De specificatie behandelt zowel clientauthenticatie via mTLS als het koppelen van toegangstokens aan certificaten.

De cnf-claim

Wanneer de AS een aan een certificaat gebonden token uitgeeft, legt deze een bevestigingsclaim (cnf) vast met daarin de SHA-256-vingerafdruk van het clientcertificaat onder de sleutel x5t#S256.

{
  "sub": "client-app",
  "cnf": {
    "x5t#S256": "bwcK0esc3ACC3DB2Y5_lESsXE8o9ltc05O89jdN-dg2"
  }
}

Controle door de resourceserver

Wanneer de client via mTLS een API aanroept, berekent de resourceserver de vingerafdruk van het gepresenteerde certificaat en vergelijkt deze met cnf.x5t#S256 van het token. Als ze verschillen, wordt het token geweigerd.

thumb = sha256(der_of_client_cert)
if base64url(thumb) != token.cnf['x5t#S256']:
    reject('certificate binding mismatch')

Waarom een gestolen token nutteloos is

Zelfs met het token kan een aanvaller de privésleutel van de client niet presenteren. Daardoor kan de aanvaller de mTLS-handshake met het bijbehorende certificaat niet voltooien. De vingerafdruk komt niet overeen en de API weigert de aanvraag.

mTLS-clientauthenticatie

Met RFC 8705 kunnen clients zich ook authenticeren bij het tokenendpoint met hun certificaat in plaats van met een gedeeld geheim. Hiervoor gebruik je de methoden tls_client_auth (PKI) of self_signed_tls_client_auth.

mTLS-endpointaliassen

Omdat mTLS een afzonderlijke TLS-configuratie vereist, publiceren providers mtls_endpoint_aliases in de discoverygegevens. Zo kunnen clients de aan certificaten gebonden versies van het tokenendpoint en andere endpoints gebruiken.

{
  "mtls_endpoint_aliases": {
    "token_endpoint": "https://mtls.op.example.com/token"
  }
}

mTLS versus DPoP

Beide zorgen voor een binding aan de verzender:

  • mTLS — gebruikt certificaten op de TLS-laag en is zeer geschikt voor server-naar-servercommunicatie en infrastructuur met PKI.
  • DPoP — gebruikt bewijs-JWT's op de applicatielaag en is geschikter voor browser- en openbare clients die geen clientcertificaten kunnen beheren.

Operationele aandachtspunten

Voor mTLS zijn certificaatinrichting, roulering en een TLS-terminator nodig die het clientcertificaat doorstuurt naar je app. Plan de levenscyclus van certificaten en zorg dat je reverse proxy het geverifieerde certificaat doorgeeft aan de resourceserver.

Wanneer je dit inzet

Kies voor aan mTLS gebonden tokens bij API's met hoge zekerheidseisen, gereguleerde of financiële API's en vertrouwde backendservices waarbij certificaatbeheer haalbaar is. Dit verhoogt de kosten van tokendiefstal aanzienlijk.

Korte toets

Toets je kennis van mTLS-binding.

Samenvatting

mTLS-tokens die aan de verzender zijn gebonden (RFC 8705) koppelen een token aan het certificaat van de client.

  • Het token bevat een certificaatvingerafdruk in cnf.x5t#S256.
  • Resourceservers vergelijken de vingerafdruk van het gepresenteerde certificaat; een gestolen token zonder de privésleutel mislukt.
  • Met mTLS zijn ook clientauthenticatie op basis van certificaten en mTLS-endpointaliassen mogelijk.
  • Vergelijk dit met DPoP voor openbare clients.
Gratis beginnen

Leer OAuth2 en OpenID Connect diepgaand bekeken met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
48

Veelgestelde vragen

Is de les “Sender-constrained tokens met mTLS” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad OAuth2 en OpenID Connect diepgaand bekeken, waaronder “Sender-constrained tokens met mTLS”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus OAuth2 en OpenID Connect diepgaand bekeken bevat in totaal 4 lessen.

Wat leer ik in “Sender-constrained tokens met mTLS”?

Leer hoe binding van clientcertificaten via mutual TLS bearer tokens omzet in sender-constrained tokens, zodat aanvallers gestolen tokens niet opnieuw kunnen gebruiken. Je oefent met OAuth2 en OpenID Connect diepgaand bekeken door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met OAuth2 en OpenID Connect diepgaand bekeken te beginnen?

Ervaring vooraf is niet nodig. OAuth2 en OpenID Connect diepgaand bekeken op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “Sender-constrained tokens met mTLS”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over OAuth2 en OpenID Connect diepgaand bekeken?

Ja. Elke les over OAuth2 en OpenID Connect diepgaand bekeken bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Toestemming en gebruikerservaring
  2. Cross-Origin Resource Sharing (CORS)
  3. Front-channel versus back-channel-logout
  4. Sender-constrained tokens met mTLS
← Terug naar OAuth2 en OpenID Connect diepgaand bekeken