JWT
È l'acronimo di "JSON Web Token".
Un JWT è un token conforme agli standard del settore che condivide informazioni di sicurezza tra due parti. I JWT sono compatti e sicuri per l'uso negli URL, consentendo a server Web e client di scambiarseli nell'ambito di una richiesta HTTPS. L'uso più comune di un JWT è autenticare un utente che ha effettuato l'accesso a un sito Web o a un'app Web, spesso tramite un servizio di accesso singolo (SSO).
I JWT sono costituiti da tre parti:
- L'intestazione include informazioni sul tipo di token e sull'algoritmo usato per generare la firma.
- Il payload include l'elenco delle dichiarazioni effettuate dal token. In genere, queste dichiarazioni includono informazioni sull'emittente del token, sul sito Web o sull'app Web che lo usa e sull'utente. Includono anche l'ora in cui il token è stato emesso e quella in cui scadrà entrambe espresse usando l'(orario epoch). Oltre a questi valori comuni, un JWT può includere dichiarazioni arbitrarie specifiche del sito Web o dell'app Web che emette il token.
- La firma verifica che il token non sia stato manomesso dal momento della sua emissione.
I siti Web e le app Web usano spesso i JWT come metodo senza stato per autenticare un utente. Non richiedono che il server mantenga una sessione nella propria memoria o nel proprio database, riducendo così il sovraccarico richiesto per ogni utente. Il client e il server si scambiano invece il JWT a ogni richiesta HTTPS, verificando la firma per assicurarsi che il token non sia stato modificato. Quando il JWT scade, l'utente deve effettuare nuovamente l'accesso per riceverne uno nuovo.
Creazione di un JWT
Sia l'intestazione sia il payload di un JWT sono costituiti da testo scritto in JSON. L'intestazione e il payload vengono codificati separatamente usando un algoritmo chiamato base64, che trasforma diverse righe di testo in un'unica stringa. Le stringhe dell'intestazione e del payload codificate vengono combinate e separate da un carattere '.'.
La stringa combinata, contenente l'intestazione e il payload codificati, viene codificata nuovamente usando un algoritmo hash e una chiave segreta per creare la firma. La firma viene quindi aggiunta alla fine dell'intestazione e del payload, separata da un altro carattere '.', per creare il JWT finale.
Metti alla prova le tue conoscenze