Skip to main content
Todos los emitidos por Auth0 tienen JSON Web Signatures (JWSs), lo que significa que están firmados en lugar de cifrados. Un JWS representa contenido protegido con o códigos de autenticación de mensajes (MAC) mediante estructuras de datos basadas en JSON. Un JWT bien formado consta de tres cadenas codificadas en Base64url concatenadas, separadas por puntos (.):
  • Encabezado JOSE: contiene metadatos sobre el tipo de token y los algoritmos criptográficos utilizados para proteger su contenido.
  • carga útil de JWS (conjunto de claims): contiene afirmaciones de seguridad verificables, como la identidad del usuario y los permisos que se le han concedido.
  • firma de JWS: se utiliza para validar que el token es fiable y que no ha sido manipulado. Cuando utilice un JWT, debe comprobar su firma antes de almacenarlo y usarlo.
Un JWT normalmente tiene este aspecto:
JSON Web Token
Para ver por usted mismo qué hay dentro de un JWT, use el JWT.io Debugger. Le permite comprobar rápidamente que un JWT está bien formado e inspeccionar manualmente los valores de los distintos claims.
JWT Debugger

Encabezado JOSE

Objeto JSON que contiene los parámetros que describen las operaciones criptográficas y los parámetros utilizados. El encabezado JOSE (JSON Object Signing and Encryption) se compone de un conjunto de parámetros de encabezado que normalmente consisten en pares nombre/valor: el algoritmo de hash utilizado (por ejemplo, HMAC SHA256 o RSA) y el tipo de JWT.

Carga útil de JWS

La carga útil contiene afirmaciones sobre la entidad (normalmente, el usuario) y atributos adicionales de la entidad, que se denominan claims. En este ejemplo, nuestra entidad es un usuario.
Al trabajar con claims de JWT, debe tener en cuenta los distintos tipos de claims y las reglas de nomenclatura.

Firma JWS

La firma se usa para verificar que el emisor del JWT es quien dice ser y para garantizar que el mensaje no se haya modificado durante el proceso. Para crear la firma, se toman el encabezado y la carga útil codificados en Base64, junto con un secreto, y se firma todo con el algoritmo especificado en el encabezado. Por ejemplo, si está creando una firma para un token con el algoritmo HMAC SHA256, haría lo siguiente:

Más información