Pregunta ¿Cuál es la diferencia entre JSON Web Signature (JWS) y JSON Web Token (JWT)?


He estado codificando un servicio RESTful en Java. Esto es lo que he entendido hasta ahora (corríjanme si estoy equivocado):

La autorización del token se hace usando Tokens web JSON (JWT) que tienen tres partes: el encabezado, la carga útil y el secreto (compartido entre el cliente y el servidor).

Entendí este concepto y tropecé con JSON Web Signature (JWS) mientras lees sobre JWT.

JWS también es una entidad codificada similar a JWT que tiene un encabezado, una carga útil y un secreto compartido.

Pregunta: ¿Cuál es la diferencia entre los dos conceptos, a saber, JWT y JWS? Y si se parecen técnicamente, ¿cuál es la diferencia en su implementación?

Esta es la primera vez que estoy trabajando con autenticación basada en tokens, por lo que es posible que haya entendido mal el concepto por completo.

PD Aprendí sobre JWS mientras navego por los ejemplos en este sitio web.


32
2017-12-24 18:28


origen


Respuestas:


JWT en realidad usos JWS por su firma, de la especificación:

JSON Web Token (JWT) es un medio compacto y seguro de URL para representar   afirma que se transfiere entre dos partes. Los reclamos en un JWT son   codificado como un objeto JavaScript Object Notation (JSON) que se utiliza como   la carga útil de una estructura JSON Web Signature (JWS) o como   Texto sin formato de una estructura JSON Web Encryption (JWE), habilitando   afirma tener firma digital o MACed y / o cifrado.

Entonces, un JWT es una estructura JWS con un objeto JSON como carga útil. Se han definido algunas claves (o reclamos) opcionales, como iss, aud, exp etc.

Esto también significa que su protección de integridad no se limita a los secretos compartidos, sino que también se puede usar la criptografía de clave pública / privada.


32
2017-12-24 21:51