Saltar al contenido
Explorar conocimiento

concepto · intermedio · 2 min de lectura

JWT — JSON Web Token

JWT es un estándar para transmitir información entre dos partes como un token compacto y autónomo, firmado digitalmente para garantizar su integridad y opcionalmente cifrado para garantizar su confidencialidad.

No requiere conocimientos previos.

Alcance en breve

Cubre

  • JWT as an architectural concept

No cubre

  • implementation details

Supone

  • The reader understands distributed systems concepts.

Resumen

JWT —JSON Web Token— es un formato de token definido en RFC 7519. Consiste en tres partes codificadas en Base64 y separadas por puntos: el header (algoritmo de firma), el payload (claims —datos— sobre el usuario o la sesión), y la signature (firma que garantiza que el token no fue alterado).

Importa porque es el formato de token más usado en la web moderna. Los ID Tokens de OpenID Connect son JWTs. Los access tokens de muchos proveedores son JWTs. Permiten que un servidor verifique la identidad de un usuario sin consultar una base de datos: si la firma es válida, el contenido del token es confiable.

La firma garantiza integridad, no confidencialidad. Cualquiera que tenga el JWT puede leer su contenido —el payload está solo codificado, no cifrado—. Para ocultar el contenido, se usa JWE —JSON Web Encryption—, aunque es menos común.

Alcance y supuestos

Este paquete cubre JWT como formato de token, su estructura y usos. Asume familiaridad con autenticación web.

Modelo mental

Un sobre con un sello oficial. Cualquiera puede leer la carta que está adentro, pero si el sello está roto, sabés que alguien la abrió y ya no podés confiar en su contenido. El JWT es esa carta con sello: la firma garantiza que nadie la modificó, pero no la esconde.

Uso práctico

  • ✅ Tokens de sesión, autenticación entre servicios, claims de autorización.
  • ❌ Almacenar secretos o datos sensibles en el payload sin cifrar.

Ejemplo trabajado: autenticación entre servicios

Un API Gateway emite un JWT firmado con RS256 al usuario. Los microservicios internos reciben el JWT en el header Authorization, validan la firma con la clave pública del gateway, y extraen userId y roles del payload. No necesitan llamar al gateway ni a una base de datos para cada request: la firma garantiza que los claims son auténticos.

Evidencia

Fuentes citadas