Tokens bundna till avsändaren med mTLS
Lär Er hur bindning till klientcertifikat med ömsesidig TLS förvandlar bearer tokens till tokens bundna till avsändaren, så att stulna tokens inte kan återanvändas av angripare.
Tokens bundna till avsändaren med mTLS är en gratis lektion i OAuth2 och OpenID Connect på djupet på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för OAuth2 och OpenID Connect på djupet, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i OAuth2 och OpenID Connect på djupet innehåller totalt 4 lektioner.
Svagheten hos bearer tokens
En vanlig bearer token fungerar för vem som helst som har den. Om den läcker via loggar, en proxy eller en XSS-bugg kan tjuven använda den fritt. Sender-constrained tokens löser detta genom att binda token till den legitima klienten.
Vad är mTLS?
Mutual TLS innebär att båda sidorna presenterar certifikat: servern bevisar sin identitet, som vanligt, och klienten presenterar också ett certifikat. Auktoriseringsservern kan då binda utfärdade tokens till klientens certifikat.
RFC 8705
Detta standardiseras i RFC 8705 (OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens). Standarden omfattar både klientautentisering via mTLS och certifikatbindning av access tokens.
Claimen cnf
När AS utfärdar en certifikatbunden token registrerar den ett bekräftelsevärde (claimen cnf) som innehåller SHA-256-fingeravtrycket för klientens certifikat under nyckeln x5t#S256.
{
"sub": "client-app",
"cnf": {
"x5t#S256": "bwcK0esc3ACC3DB2Y5_lESsXE8o9ltc05O89jdN-dg2"
}
}Resursserverns kontroll
När klienten anropar ett API över mTLS beräknar resursservern fingeravtrycket för det presenterade certifikatet och jämför det med tokenens cnf.x5t#S256. Om de skiljer sig åt avvisas token.
thumb = sha256(der_of_client_cert)
if base64url(thumb) != token.cnf['x5t#S256']:
reject('certificate binding mismatch')Varför en stulen token är värdelös
Även om en angripare har token kan hen inte presentera klientens privata nyckel och kan därför inte slutföra mTLS-handskakningen med det matchande certifikatet. Fingeravtrycken matchar inte, och API:t avvisar angriparen.
mTLS-klientautentisering
RFC 8705 gör det också möjligt för klienter att autentisera sig vid token-endpointen med sitt certifikat i stället för en delad hemlighet, med metoderna tls_client_auth (PKI) eller self_signed_tls_client_auth.
Alias för mTLS-endpoints
Eftersom mTLS kräver en separat TLS-konfiguration publicerar leverantörer mtls_endpoint_aliases i discovery, så att klienter kan anropa de certifikatbundna versionerna av token-endpointen och andra endpoints.
{
"mtls_endpoint_aliases": {
"token_endpoint": "https://mtls.op.example.com/token"
}
}mTLS kontra DPoP
Båda uppnår sender constraint:
- mTLS — bygger på certifikat på TLS-lagret och passar utmärkt för server-till-server-kommunikation och infrastruktur med PKI.
- DPoP — använder JWT:er som bevis på applikationslagret och passar bättre för webbläsar- och publika klienter som inte kan hantera klientcertifikat.
Operativa överväganden
mTLS kräver provisionering och rotation av certifikat samt en TLS-termineringspunkt som vidarebefordrar klientcertifikatet till er app. Planera certifikatens livscykel och säkerställ att er reverse proxy skickar det verifierade certifikatet till resursservern.
När ska det införas?
Välj mTLS-bundna tokens för API:er med höga säkerhetskrav, reglerade eller finansiella API:er samt betrodda backend-tjänster där certifikathantering är genomförbar. Det höjer kostnaden för tokenstöld avsevärt.
Snabb kontroll
Testa era kunskaper om mTLS-bindning.
Sammanfattning
mTLS sender-constrained tokens (RFC 8705) binder en token till klientens certifikat.
- Token innehåller ett certifikatfingeravtryck i
cnf.x5t#S256. - Resursservrar jämför fingeravtrycket för det presenterade certifikatet; en stulen token utan den privata nyckeln fungerar inte.
- mTLS möjliggör även certifikatbaserad klientautentisering och använder alias för mTLS-endpoints.
- Jämför med DPoP för publika klienter.
Lär dig OAuth2 och OpenID Connect på djupet med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Tokens bundna till avsändaren med mTLS” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen OAuth2 och OpenID Connect på djupet, inklusive ”Tokens bundna till avsändaren med mTLS”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i OAuth2 och OpenID Connect på djupet innehåller totalt 4 lektioner.
Vad lär jag mig i ”Tokens bundna till avsändaren med mTLS”?
Lär Er hur bindning till klientcertifikat med ömsesidig TLS förvandlar bearer tokens till tokens bundna till avsändaren, så att stulna tokens inte kan återanvändas av angripare. Ni övar på OAuth2 och OpenID Connect på djupet med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig OAuth2 och OpenID Connect på djupet?
Du behöver inga förkunskaper. Utbildningen i OAuth2 och OpenID Connect på djupet på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.
Hur lång tid tar lektionen ”Tokens bundna till avsändaren med mTLS”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här OAuth2 och OpenID Connect på djupet-lektionen?
Ja. Varje OAuth2 och OpenID Connect på djupet-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Samtycke och användarupplevelse
- Cross-Origin Resource Sharing (CORS)
- Utloggning via front channel och back channel
- Tokens bundna till avsändaren med mTLS