JSON Web Token (spesso abbreviato in JWT) è uno standard web per lo scambio di dati definito dalla RFC 7519 proposto nel 2015. Un token JWT è composto da 3 sezioni: l'header, che contiene i dati relativi al tipo di algoritmo usato per la codifica, il payload, che contiene i dati in formato JSON codificati e una signature (firma) che garantisce la veridicità del token.

Struttura

Come accennato prima, un token JWT è composto da 3 sezioni

Intestazione Dall'inglese header, l'intestazione contiene un oggetto rappresentato con JSON e codificato in base64 che segue lo schema seguente:{ "alg": "HS256", "typ": "JWT" }La proprietà alg indica quale algoritmo è stato usato per generare la firma, la proprietà typ indica, invece, il tipo del token, in questo caso sarà sempre 'JWT'

Payload Il payload contiene i dati chiamati claims, esistono 7 claims registrati e sono i seguenti:

iss: sta per issuer, dall'inglese emittente, ovvero specifica chi ha emesso il token, è solito specificare l'hostname. sub: è solito indicare con sub il soggetto che può essere un utente. aud: l'audience, ovvero il pubblico, indica a chi è rivolto il token. exp: con exp si indica la data di scadenza del token. nbf: viene indicata la data in cui il token inizierà a valere. iat: indica la data di creazione del token. jti: viene utilizzato per identificare il token univocamente.

Oltre a questi 7 claims è possibile aggiungere altre proprietà in base all'uso del token.

Come l'intestazione, il payload è un oggetto JSON codificato in base64.

Firma Serve per confermare la veridicità del token. Viene generata codificando, con l'algoritmo specificato dall'intestazione, l'intestazione già codificata in base64 concatenata con un punto . concatenato con il payload anch'esso già codificato in base64.

Bibliografia

Categoria:Controllo degli accessi (informatica) Categoria:Identity management