Try using it in your preferred language.

English

  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar
translation

Esta es una publicación traducida por IA.

Seize the day

¿Qué es JWT (JSON Web Token)?

Seleccionar idioma

  • Español
  • English
  • 汉语
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar

Texto resumido por la IA durumis

  • JSON Web Token (JWT) es un estándar que utiliza objetos JSON para transmitir información de forma segura, incorporando la información necesaria en el token y encriptándolo para su uso.
  • JWT se compone de cabecera, carga útil y firma, la cabecera contiene el tipo de token y el algoritmo de firma utilizado, la carga útil almacena información sobre el token en forma de clave-valor.
  • La firma solo puede ser descifrada por el servidor que emitió el token utilizando la clave privada, y JWT contiene toda la información por sí mismo, por lo que no se necesita un almacenamiento separado, lo que aumenta la escalabilidad en sistemas distribuidos.

¿Qué es JWT?

JSON Web Token (JWT) es un tipo de estándar abierto (RFC 7519) que proporciona una forma segura de transmitir información como un objeto JSON. En otras palabras, se utiliza para cifrar la información necesaria en un token y utilizarla.


JWT se destaca como un token firmado (signed token). Cuando se utiliza un par de claves pública/privada para la firma, esta firma garantiza que solo la parte que posee la clave privada firmó el token. Es decir, el servidor que posee la clave puede saber si este token es legítimo.


Estructura de JWT

JWT se compone de un encabezado (Header), una carga útil (Payload) y una firma (Signature).

Cada parte se codifica en Base64 y se utiliza un punto (.) como separador. 

Encabezado

{
    "alg": "HS256",
    "typ": "JWT"

El encabezado contiene dos piezas de información principal. El tipo de token (typ) y el algoritmo de firma utilizado (alg). El algoritmo de firma se utiliza para generar y verificar la firma.

typ se establece en "JWT" y alg se establece en HMAC, SHA256, etc. Como en el ejemplo anterior, significa que se utiliza el algoritmo HS256 con la clave privada. 

Carga útil

{
    "sub": "1234567890",
    "name": "John Doe",
    "iat": 1516239022


La carga útil contiene las afirmaciones (Claim) que desea transmitir en el token. La información de identificación del usuario o las propiedades del token se almacenan en formato clave-valor. En otras palabras, ¡el desarrollador puede agregar lo que quiera!

Según las especificaciones estándar, el nombre de la clave se define de forma compacta en 3 caracteres.

Las afirmaciones registradas son las siguientes: 

  • iss (Emisor): Emisor del token (incluye la información de identificación única del emisor del token)
  • sub (Asunto): El sujeto al que se dirige el token
  • aud (Público): El receptor del token
  • exp (Tiempo de caducidad): Tiempo de caducidad del token (el token ya no es válido después de este tiempo)
  • nbf (No antes): Fecha de activación del token (el token no se puede utilizar antes de esta hora)
  • iat (Emitido en): Hora de emisión del token
  • jti (ID de JWT): Identificador de token JWT (valor para distinguir entre varios emisores)


Si hay otros valores necesarios, puede agregarlos y usarlos. 

Sin embargo, la carga útil no es un valor firmado encriptado, por lo que no contiene información confidencial.

Cualquiera puede leerlo si lo decodifica. jwt.io También se puede verificar directamente en el sitio.

Firma

HMACSHA256(
    base64UrlEncode(header) + "." +
    base64UrlEncode(payload),
    your-256-bit-secret

El servidor cifra el encabezado y la carga útil codificados en base64 conectados por un punto (.) utilizando la clave privada your-256-bit-secret. 

Por lo tanto, solo el servidor que emitió el token puede descifrar la firma (Signature) con la clave privada.

Si se considera la decodificación, se puede saber si base64UrlEncode (header) coincide con el valor de header de JWT y si base64UrlEncode (payload) coincide después de descifrar la firma con la clave privada. 

El encabezado y la carga útil, excluyendo la firma, solo están codificados, por lo que se puede ver la información del cuerpo, pero la integridad y la seguridad de la información se mantienen a través de la firma. 



JWT contiene toda la información necesaria por sí solo. Como JWT fue creado para compensar las desventajas de las sesiones que deben ser stateful, no requiere un almacén separado. 

No es necesario mantener una sesión en el lado del servidor, por lo que es stateless, lo que aumenta la escalabilidad en sistemas distribuidos o arquitecturas de microservicios. 

Se protege mediante una firma, una firma digital, y se puede garantizar la integridad de los datos.

nofunfromdev
Seize the day
Seize the day
nofunfromdev
¡Utiliza un certificado de autenticación financiera gratuito en lugar de un certificado de autenticación conjunto de pago! Presentamos un certificado de autenticación financiera que se puede obtener de forma gratuita en lugar de un certificado de autenticación conjunto. La emisión tarda solo 3 minutos y se puede utilizar durante 3 años, por lo que es conveniente. Se puede sol
길리
길리
길리
길리
길리

17 de abril de 2024

Consideremos el método de fábrica estática en lugar del constructor Los métodos de fábrica estática tienen la ventaja de poder controlar la creación de objetos con nombres. Son eficientes porque no tienen que crear una nueva instancia cada vez, sino que pueden devolver una instancia existente. La desventaja es que son más
제이온
제이온
제이온
제이온

27 de abril de 2024

¿Qué es Java Collections Framework (JCF)? - Definición y características de JCF (JAVA) Java Collections Framework (JCF) es un conjunto de clases que proporciona un método estandarizado para manejar datos de manera fácil y eficiente en Java. JCF implementa estructuras de datos para almacenar datos y algoritmos de procesamiento como clases pa
제이온
제이온
제이온
제이온

27 de abril de 2024

[Java] Colección sincronizada vs Colección concurrente Analicé comparativamente las diversas formas y ventajas y desventajas para resolver los problemas de sincronización cuando se utiliza una colección en un entorno multihilo en Java. Vector, Hashtable, Collections.synchronizedXXX y otras colecciones sincron
제이온
제이온
제이온
제이온

25 de abril de 2024

¿Qué es el etiquetado de datos? Tipos, ventajas y desventajas El etiquetado de datos es un proceso esencial para ayudar a las computadoras a comprender los datos, como etiquetar fotos de perros y gatos con 'perro' y 'gato' respectivamente, lo que permite el aprendizaje automático. Existen varios métodos de etiquetad
세상 모든 정보
세상 모든 정보
세상 모든 정보
세상 모든 정보

29 de marzo de 2024

Pila completa de IA con código abierto Nuevos modelos de LLM (modelos de lenguaje grandes) de código abierto están apareciendo rápidamente en el ecosistema de IA. Modelos como Mistral, Llama y phi-2, con un rendimiento potente y licencias abiertas, se han puesto a disposición del público, y se
RevFactory
RevFactory
RevFactory
RevFactory

5 de febrero de 2024