28

Sto codificando un servizio RESTful in Java. Questo è quello che ho capito fino ad ora (correggetemi se sbaglio):Qual è la differenza tra JSON Web Signature (JWS) e JSON Web Token (JWT)?

autorizzazione provvisoria viene fatto usando JSON web Gettoni (JWT) che hanno tre parti: l'intestazione, il carico utile, e il segreto (condiviso tra il client e il server).

Ho capito questo concetto e sono inciampato su JSON Web Signature (JWS) durante la lettura di JWT.

JWS è anche un'entità codificata simile a JWT con un'intestazione, un carico utile e un segreto condiviso.

Domanda: Qual è la differenza tra i due concetti, vale a dire JWT e JWS? E se sono tecnicamente simili, allora qual è la differenza nella loro implementazione ?

Questa è la prima volta che lavoro con l'autenticazione basata su token, quindi è possibile che abbia frainteso il concetto.

P.S. Ho saputo di JWS mentre sfogliavo gli esempi su this website.

risposta

27

JWT realtà utilizza JWS per la sua firma, dal spec:

JSON Web Token (JWT) è un compatto, mezzo sicuro per le URL di rappresentazione pretese di essere trasferiti tra due parti. Le attestazioni in un JWT sono codificate come oggetto JSON (JavaScript Object Notation) utilizzato come carico utile di una struttura JSON Web Signature (JWS) o come il testo di una struttura JSON Web Encryption (JWE), che abilita il afferma di essere firmato digitalmente o MACed e/o crittografato.

Quindi un JWT è una struttura JWS con un oggetto JSON come carico utile. Alcuni tasti opzionali (o pretese) sono stati definiti come iss, aud, exp ecc

Questo significa anche che la sua integrità di protezione non è solo limitato a segreti condivisi ma/crittografia a chiave privata pubblica può anche essere usato.

+0

Ok, questo ha senso. Allora, dove vanno le mie informazioni utente, se il carico contiene il reclamo impostato? Puoi mostrarmi un esempio? – leo

+0

si prega di dare un'occhiata agli esempi in Appendice A nelle specifiche qui: https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32 –

+0

Le rivendicazioni avranno le informazioni dell'utente. Ecco un esempio di codice con commenti che parlano di cosa sta succedendo https://bitbucket.org/b_c/jose4j/wiki/JWT%20Esempi –

Problemi correlati