Un token Web JSON (JWT) è uno standard aperto (RFC 7519) che definisce un modo compatto e autonomo per la trasmissione sicura di informazioni tra le parti come oggetto JSON. Queste informazioni possono essere verificate e attendibili perché sono firmate digitalmente. I JWT possono essere firmati utilizzando una coppia di chiavi segreta o pubblica/privata.
Qual è la struttura del token Web JSON?,
- Header
- Payload
- Signature
Header
L’intestazione consiste tipicamente di due parti: il tipo di token, che è JWT, e l’algoritmo di hashing utilizzato, come HMAC SHA256 o RSA.
Ad esempio:
{ "alg": "HS256", "typ": "JWT"}
Quindi, questo JSON è codificato in Base64Url per formare la prima parte del JWT.
Payload
La seconda parte del token è il payload, che contiene le attestazioni. Le affermazioni sono dichiarazioni su un’entità.,
-
Attestazioni registrate: si tratta di un insieme di attestazioni predefinite che non sono obbligatorie ma raccomandate, per fornire una serie di attestazioni utili e interoperabili. fare riferimento a questo per maggiori informazioni Nomi dei reclami registrati
-
Reclami pubblici: questi possono essere definiti a piacimento da coloro che utilizzano JWTs. Ma per evitare collisioni dovrebbero essere definite
-
Rivendicazioni private: queste sono le rivendicazioni personalizzate create per condividere informazioni tra le parti che concordano sul loro utilizzo e non sono né richieste registrate né pubbliche.,
Di seguito viene mostrato un esempio di payload:
{ "sub": "1234567890", "name": "John Doe", "admin": true}
Signature
Per creare la parte di firma, devi prendere l’intestazione codificata, il payload codificato, un segreto, l’algoritmo specificato nell’intestazione e firmarlo.
HMACSHA256( base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)
Quindi, devi mettere tutto insieme. Quanto segue mostra un JWT con l’intestazione e il payload precedenti codificati ed è firmato con un segreto.
Se vuoi giocare con JWT e mettere in pratica questi concetti, puoi usare jwt.io.
Lascia un commento