Przejdź do głównej treści

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:

  1. Użytkownik loguje się w aplikacji.
  2. Serwer sprawdza dane logowania.
  3. Serwer zwraca token JWT.
  4. Klient wysyła token przy kolejnych żądaniach do API.
  5. 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.

Potwierdzenie

Informacja