OAuth2 & OpenID Connect Deep Dive · Lección

Tokens vinculados al emisor mediante mTLS

Aprenda cómo la vinculación con el certificado de cliente mediante TLS mutuo convierte los tokens bearer en tokens vinculados al emisor e impide que los atacantes reutilicen tokens robados.

Lección 4 de 413 pasos

Tokens vinculados al emisor mediante mTLS es una lección gratuita de OAuth2 & OpenID Connect Deep Dive en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de OAuth2 & OpenID Connect Deep Dive, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de OAuth2 & OpenID Connect Deep Dive incluye 4 lecciones en total.

Partes de esta lección aún no han sido traducidas y se muestran en inglés.

The Bearer Token Weakness

A plain bearer token works for anyone who holds it. If it leaks via logs, a proxy, or an XSS bug, the thief can use it freely. Sender-constrained tokens fix this by binding the token to the legitimate client.

What Is mTLS?

Mutual TLS means both sides present certificates: the server proves its identity (as usual) and the client also presents a certificate. The authorization server can then bind issued tokens to that client certificate.

RFC 8705

This is standardized in RFC 8705 (OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens). It covers both client authentication via mTLS and certificate binding of access tokens.

The cnf Claim

When the AS issues a certificate-bound token, it records a confirmation (cnf) claim containing the SHA-256 thumbprint of the client certificate under the key x5t#S256.

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

Resource Server Check

When the client calls an API over mTLS, the resource server computes the thumbprint of the presented certificate and compares it to the token's cnf.x5t#S256. If they differ, the token is rejected.

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

Why a Stolen Token Is Useless

Even with the token, an attacker cannot present the client's private key, so they cannot complete the mTLS handshake with the matching certificate. The thumbprint will not match, and the API rejects them.

mTLS Client Authentication

RFC 8705 also lets clients authenticate at the token endpoint with their certificate instead of a shared secret, using methods tls_client_auth (PKI) or self_signed_tls_client_auth.

mTLS Endpoint Aliases

Because mTLS needs a separate TLS configuration, providers publish mtls_endpoint_aliases in discovery so clients hit the certificate-bound versions of the token and other endpoints.

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

mTLS vs DPoP

Both achieve sender-constraint:

  • mTLS — relies on TLS-layer certificates, great for server-to-server and infrastructure with PKI.
  • DPoP — application-layer proof JWTs, better for browser/public clients that cannot manage client certs.

Operational Considerations

mTLS requires certificate provisioning, rotation, and a TLS terminator that forwards the client cert to your app. Plan for cert lifecycle and ensure your reverse proxy passes the verified certificate to the resource server.

When to Adopt It

Choose mTLS-bound tokens for high-assurance, regulated, or financial-grade APIs and trusted backend services where certificate management is feasible. It dramatically raises the cost of token theft.

Quick Check

Test your mTLS binding knowledge.

Recap

mTLS sender-constrained tokens (RFC 8705) bind a token to the client's certificate.

  • The token carries a cnf.x5t#S256 certificate thumbprint.
  • Resource servers match the presented cert's thumbprint; a stolen token without the private key fails.
  • mTLS also enables certificate-based client authentication and uses mtls endpoint aliases.
  • Compare with DPoP for public clients.
Gratis para empezar

Aprende OAuth2 & OpenID Connect Deep Dive con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
12
Lecciones
48

Preguntas frecuentes

¿La lección «Tokens vinculados al emisor mediante mTLS» es gratis?

Sí — el texto completo de «Tokens vinculados al emisor mediante mTLS» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de OAuth2 & OpenID Connect Deep Dive, actualiza a CoddyKit PRO. El curso de OAuth2 & OpenID Connect Deep Dive incluye 4 lecciones en total.

¿Qué aprenderé en «Tokens vinculados al emisor mediante mTLS»?

Aprenda cómo la vinculación con el certificado de cliente mediante TLS mutuo convierte los tokens bearer en tokens vinculados al emisor e impide que los atacantes reutilicen tokens robados. Practicas OAuth2 & OpenID Connect Deep Dive con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar OAuth2 & OpenID Connect Deep Dive?

No se requiere experiencia previa. OAuth2 & OpenID Connect Deep Dive en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Tokens vinculados al emisor mediante mTLS»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de OAuth2 & OpenID Connect Deep Dive?

Sí. Cada lección de OAuth2 & OpenID Connect Deep Dive incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Consentimiento y experiencia de usuario
  2. Intercambio de recursos de origen cruzado (CORS)
  3. Cierre de sesión por front-channel y back-channel
  4. Tokens vinculados al emisor mediante mTLS
← Volver a OAuth2 & OpenID Connect Deep Dive