JWT
Zkratka pro „JSON Web Token“.
JWT je standardizovaný token, který sdílí bezpečnostní informace mezi dvěma stranami. JWT jsou kompaktní a bezpečné pro použití v URL, což umožňuje webovým serverům a klientům vyměňovat si je jako součást požadavku HTTPS. JWT se nejčastěji používá k ověření uživatele, který se přihlásil k webu nebo webové aplikaci, často prostřednictvím služby jednotného přihlašování (SSO).
JWT se skládá ze tří částí:
- Hlavička obsahuje informace o typu tokenu a algoritmu použitém k vygenerování digitálního podpisu.
- Datová část obsahuje seznam tvrzení tokenu. Tato tvrzení obvykle zahrnují informace o vydavateli tokenu, webu nebo webové aplikaci, která token používá, a uživateli. Obsahují také čas vydání tokenu a dobu jeho platnosti obojí ve formátu (epoch time). Kromě těchto běžných hodnot může JWT obsahovat libovolná tvrzení specifická pro web nebo webovou aplikaci, která token vydává.
- Podpis ověřuje, že token nebyl od svého vydání pozměněn.
Weby a webové aplikace často používají JWT jako bezstavovou metodu ověřování uživatele. Nevyžadují, aby server udržoval relaci ve své paměti nebo databázi, což snižuje režii potřebnou pro každého uživatele. Klient a server si místo toho při každém požadavku HTTPS předávají JWT a ověřují podpis, aby se ujistili, že token nebyl změněn. Po vypršení platnosti JWT se uživatel musí znovu přihlásit, aby byl vydán nový token.
Vytvoření JWT
Hlavička i datová část JWT se skládají z textu zapsaného ve formátu JSON. Hlavička a datová část se samostatně kódují pomocí algoritmu zvaného base64, který převede několik řádků textu na jediný řetězec. Zakódované řetězce hlavičky a datové části se spojí a oddělí znakem „.“.
Spojený řetězec obsahující zakódovanou hlavičku a datovou část se znovu zakóduje pomocí hashovacího algoritmu a tajného klíče, čímž vznikne podpis. Podpis se poté připojí na konec hlavičky a datové části a oddělí se dalším znakem „.“, čímž vznikne konečný JWT.
Otestujte své znalosti