JWT (Json Web Token)

Json web token es un  protocolo compacto de autenticación que permite transportar información entre dos partes en formato JSON.


Con el creciente desarrollo de las aplicaciones distribuidas y con el surgimiento de la arquitectura Rest, también surgió la necesidad de mejorar la seguridad, ya que la  implementación tradicional de seguridad en este tipo de aplicaciones no era segura( nada que este expuesta al internet es  100% seguro).

Cuando  nos referimos a la seguridad tradicional, nos referimos al uso de sesiones  en aplicaciones monolíticas o el uso de cookies de sesiones en aplicaciones distribuidas, ambos enfoques requerían que el servidor valide su integridad.

Con las cookies de sesión, el servidor autenticaba al usuario y generaba una cookie de sesión y la enviaba al cliente, esta cookie era enviada por cada petición al servidor, sin embargo este mecanismo estaba expuesto a ser vulnerable, ya que se podían robar la cookie de sesión y realizar peticiones al servidor.

El jwt esta formado por tres partes separados por punto.

  1. Header: se especifica el tipo de token, por lo general 'JWT' y el tipo de algoritmo utilizado para firmar el token.
  2. Payload: o carga útil, en este parte contiene los datos o las afirmaciones(claims) que se trasmiten, por lo general se incluye un identificación para el usuario, el sujeto, la fecha de creación, fecha de vencimiento, roles, etc, sin embargo se recomienda no enviar información sensible como contraseñas.
  3. Firma: se utiliza para firma el token y preservar la integridad del token.

Aplicaciones sin estado o stateles.

Este concepto hace referencia  a que la información de sesión o contexto de usuario no se guarda en el servidor, por que cada solicitud que procesa el servidor es nueva.
En los microservicios se utiliza bastante esto, ya que los microservicios debe ser independientes.

Entonces cada solicitud  enviada al servidor tiene la información necesaria para que esté pueda autenticar y autorizar la solicitud.

Comentarios

Entradas populares de este blog

Instalar Java Developmet Kit(JDK)

Curso de Spring