Entendiendo-el-concepto-de-JWT---Tokens-Web-JSON-PORTADA

JWT – JSON Web Tokens: Entendiendo el concepto

Compártelo

JWT o JSON Web Token es un estándar abierto (RFC 7519) que se utiliza para transferir información de forma segura entre dos partes.

Para entender el concepto detallado de JWT, es muy importante conocer primero los tokens de sesión.

Los tokens de sesión son cadenas únicas encriptadas que se utilizan para identificar las instancias de sesión. Fíjate en el ejemplo comprensible que aparece a continuación.

Entendiendo-el-concepto-de-JWT---Tokens-Web-JSON-captura-1

JSON Web Tokens – JWT

Piensa en un Departamento de Atención al Cliente de una ciudad, si entra en él una persona (A) que tiene alguna duda para hablar con los representantes. Al principio, la persona habla de todos sus problemas y consultas, y normalmente el departamento de atención al cliente anota todas las consultas que tiene ese cliente en un papel o en una base de datos.

La cuestión es que le proporcionan al cliente un número de identificación de cliente o un número de identificación de caso que contiene toda la información sobre las consultas o los problemas, ya que esto hace que el departamento de atención al cliente busque un caso concreto de forma mucho más rápida la próxima vez que el mismo cliente llegue para obtener una solución.

Ahora pensemos en el mismo procedimiento con Clientes y Servidores.

Piensa en cualquier sitio web que contenga formularios de registro, aquí una vez que el usuario entra en el sitio web particular y se registra con sus datos. Estos datos llegan directamente al servidor y éste envía un token para ese navegador concreto. El token se almacena en la cookie del navegador y puede ser válido hasta que el usuario cierre la sesión o hasta cualquier periodo de tiempo. Este token valida y ayuda al usuario a acceder a todas las solicitudes posteriores que realice.

Este método de validar y autorizar al usuario era muy adecuado, pero había un inconveniente clave para utilizar tokens de sesión. Veamos un ejemplo de sistemas bancarios en línea, imaginemos un escenario en el que si una persona se registra con sus credenciales en cualquier sitio web bancario, el servidor (A) pasaría un testigo de sesión al navegador y, por tanto, aquí sólo el servidor (A) autorizaría al usuario actual, ya que tiene un testigo de sesión válido que coincide con el correspondiente. Y si cualquier solicitud posterior pasara al Servidor(B), habría un conflicto ya que el Servidor(B) no conoce los tokens históricos. Este inconveniente dio origen a JWT.

Vamos a sumergirnos directamente en el mismo ejemplo.

Si una persona, tiene problemas para pedir un representante de atención al cliente, el cliente visitaría el dpto. de Atención al Cliente y, del mismo modo, el rept. anotaría todos los problemas con una Firma o ID de cliente, de modo que si la próxima vez que un cliente entra en el dpto., un representante debe identificar los problemas una vez que verifique la Firma o ID de cliente. Pero en este caso, el documento se entregaría al cliente, que deberá traerlo cada vez que entre en el dpto. Esto ahorra la complejidad a la que se enfrentaría un representante a la hora de buscar el ID de caso de un cliente concreto y muchas otras cosas beneficiosas.

Ahora pensemos en el mismo procedimiento con Clientes y Servidores –

En este caso, una vez que un usuario se registra o inicia sesión con sus credenciales, un servidor genera un token JWT y lo asigna con los datos, y lo pasa al lado del cliente. Este token sólo puede ser verificado por el servidor, que en el lado del cliente se almacena en las cookies de los navegadores y ayuda al navegador o cliente a acceder a todas las solicitudes posteriores en poco tiempo. Esto aporta mucha fiabilidad a los usuarios y ayuda en el proceso de autenticación.

Estructura de JWT

Debe haber 3 partes en las que se divide la estructura del JWT –

1.Cabecera

Normalmente, las cabeceras son la primera parte de los JWT, que consiste en el algoritmo utilizado para codificar el JWT y el tipo de token, que es JWT por defecto.

2. Payload

La sección del payload es la parte central de los JSON Web Tokens, que consiste en los datos del usuario, que se pasan entre el cliente y el servidor.

3. Firma

La firma es la tercera parte del JWT, que es creada por el servidor y se utiliza para validar las solicitudes realizadas por el usuario. Para crear la firma, se toman la cabecera y el payload codificados en base-64, junto con una clave secreta y se firman con el algoritmo especificado en la cabecera.

Entendiendo el concepto de JWT - Tokens Web JSON Captura 1

Este JWT completo está incrustado en un tipo de cadena y estas 3 partes están separadas por puntos(.).

Y así, ni más ni menos, es como se crea un JWT. Gracias a esto podrás generar sesiones con tus aplicaciones Javascript de última generación.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *