JWT
To skrót od „JSON Web Token”.
JWT to zgodny ze standardem branżowym token, który umożliwia udostępnianie informacji zabezpieczających między dwiema stronami. Tokeny JWT są niewielkie i bezpieczne w adresach URL, dzięki czemu serwery internetowe i klienci mogą wymieniać je w ramach żądania HTTPS. Najczęściej JWT służy do uwierzytelniania użytkownika zalogowanego do witryny internetowej lub aplikacji internetowej, często za pośrednictwem usługi pojedynczego logowania (SSO).
Tokeny JWT składają się z trzech części:
- Nagłówek zawiera informacje o typie tokenu i algorytmie użytym do wygenerowania podpisu.
- Ładunek zawiera listę deklaracji tokenu. Deklaracje te zwykle obejmują informacje o wystawcy tokenu, witrynie internetowej lub aplikacji internetowej używającej tokenu oraz użytkowniku. Zawierają także czas wystawienia tokenu i czas jego wygaśnięcia w obu przypadkach zapisany jako (czas epoki). Oprócz tych typowych wartości JWT może zawierać dowolne deklaracje unikatowe dla witryny internetowej lub aplikacji internetowej wystawiającej token.
- Podpis potwierdza, że token nie został zmieniony od momentu jego wystawienia.
Witryny internetowe i aplikacje internetowe często używają tokenów JWT jako bezstanowej metody uwierzytelniania użytkownika. Nie wymagają one, aby serwer przechowywał sesję w swojej pamięci lub bazie danych, co zmniejsza obciążenie wymagane dla każdego użytkownika. Zamiast tego klient i serwer wymieniają token JWT przy każdym żądaniu HTTPS, weryfikując podpis, aby upewnić się, że token nie został zmieniony. Po wygaśnięciu tokenu JWT użytkownik musi zalogować się ponownie, aby został wystawiony nowy token.
Tworzenie tokenu JWT
Zarówno nagłówek, jak i ładunek tokenu JWT składają się z tekstu zapisanego w formacie JSON. Nagłówek i ładunek są osobno kodowane za pomocą algorytmu o nazwie base64, który przekształca kilka wierszy tekstu w pojedynczy ciąg znaków. Zakodowane ciągi nagłówka i ładunku są łączone i rozdzielane znakiem „.”.
Połączony ciąg zawierający zakodowany nagłówek i ładunek jest ponownie kodowany za pomocą algorytmu haszującego i tajnego klucza, aby utworzyć podpis. Następnie podpis jest dołączany na końcu nagłówka i ładunku, po kolejnym znaku „.”, w celu utworzenia końcowego tokenu JWT.
Sprawdź swoją wiedzę