JWT (JSON Web Token)
Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji
Co to jest JWT?
JWT (JSON Web Token) to otwarty standard służący do bezpiecznego przekazywania informacji między stronami w postaci obiektu JSON. Najczęściej jest używany w aplikacjach webowych i API do uwierzytelniania oraz autoryzacji użytkownika.
JWT ma postać ciągu znaków składającego się z trzech części oddzielonych kropkami:
header.payload.signature
Z czego składa się JWT?
- Header - zawiera informacje o typie tokena i algorytmie podpisu, np. HS256.
- Payload - zawiera dane, tzw. claims, np. identyfikator użytkownika, rolę lub czas wygaśnięcia tokena.
- Signature - podpis kryptograficzny, który pozwala sprawdzić, czy token nie został zmieniony.
Do czego służy JWT?
Typowy scenariusz użycia:
- Użytkownik loguje się w aplikacji.
- Serwer sprawdza dane logowania.
- Serwer zwraca token JWT.
- Klient wysyła token przy kolejnych żądaniach do API.
- Serwer weryfikuje token i decyduje, czy użytkownik ma dostęp do zasobu.
Ważne zasady bezpieczeństwa
JWT jest zwykle podpisany, ale niekoniecznie zaszyfrowany. Oznacza to, że nie należy umieszczać w nim haseł ani danych wrażliwych. Token powinien mieć ustawiony czas ważności, np. pole exp, aby ograniczyć skutki jego przechwycenia.
W egzaminacyjnym ujęciu JWT to przede wszystkim standard bezpiecznego przekazywania informacji jako JSON, a nie biblioteka, baza danych ani protokół komunikacyjny.