Token internetowy JSON (JWT) to otwarty standard internetowy, który służy do uwierzytelniania i autoryzacji wymiany informacji między klientem a serwerem. Gdy użytkownik aplikacji po raz pierwszy zaloguje się przy użyciu danych logowania odpowiedniej roli, serwer utworzy i zwróci zakodowany, podpisany cyfrowo token JWT do użycia w kolejnych żądaniach. Ten proces uwierzytelnia użytkownika i autoryzuje go do uzyskiwania dostępu do tras, usług i zasobów na podstawie roli jego konta.
Fleet Engine wymaga użycia tokenów internetowych JSON (JWT) do wywoływania metod interfejsu API ze środowisk o niskim poziomie zaufania: smartfonów i przeglądarek.
Token JWT pochodzi z Twojego serwera, jest podpisany, zaszyfrowany i przekazywany do klienta na potrzeby kolejnych interakcji z serwerem, dopóki nie wygaśnie lub nie straci ważności.
Najważniejsze informacje
- Użyj domyślnego uwierzytelniania aplikacji, aby uwierzytelniać i autoryzować żądania do Fleet Engine.
- Użyj odpowiedniego konta usługi do podpisywania tokenów JWT. Zobacz role konta usługi Fleet Engine w artykule Podstawowe informacje o Fleet Engine.
W przeciwieństwie do kluczy interfejsu API tokeny JWT mają krótki okres ważności i ograniczają operacje tylko do tych, do których rola jest upoważniona. Więcej informacji o tokenach JWT znajdziesz w artykule JSON Web Token w Wikipedii. Szczegółowe informacje o rolach dostępu znajdziesz w sekcji Role konta usługi w tym przewodniku.
Elementy JWT
JWT zawierają nagłówek i sekcję deklaracji. Sekcja nagłówka zawiera informacje takie jak klucz prywatny uzyskany z kont usługi i algorytm szyfrowania. Sekcja oświadczenia zawiera informacje takie jak czas utworzenia tokena JWT, czas jego ważności, usługi, do których token JWT żąda dostępu, oraz inne informacje autoryzacyjne, które określają zakres dostępu, np. identyfikator pojazdu dostawczego.
W tabeli poniżej znajdziesz ogólne informacje o polach JWT oraz szczegółowe informacje o tym, gdzie możesz znaleźć wartości tych pól w projekcie Fleet Engine Cloud.
Pole |
Opis |
|---|---|
alg |
Algorytm, którego chcesz użyć. `RS256`. |
typ |
Typ tokena. `JWT`. |
dziecko |
Identyfikator klucza prywatnego konta usługi. Tę wartość znajdziesz w polu |
Pole |
Opis |
|---|---|
iss |
Adres e-mail konta usługi, który znajdziesz w polu |
zast. |
Adres e-mail konta usługi, który znajdziesz w polu |
aud |
|
iat |
Sygnatura czasowa utworzenia tokena JWT, podana w sekundach, które upłynęły od 00:00:00 |
exp |
Sygnatura czasowa wygaśnięcia tokena JWT, określona w sekundach, które upłynęły od |
autoryzacja |
W zależności od przypadku użycia może zawierać Jeśli podajesz identyfikatory zadań, zakres autoryzacji musi być tablicą w jednej z tych form: "taskids": ["task_id_one","task_id_two"]
lub "taskids": ["*"] |
Roszczenia JWT Fleet Engine
Fleet Engine używa oświadczeń prywatnych. Korzystanie z deklaracji prywatnych gwarantuje, że tylko autoryzowani klienci będą mieli dostęp do swoich danych.
Na przykład gdy serwer wydaje token JSON Web Token dla urządzenia mobilnego kierowcy, powinien on zawierać parametr vehicleid lub deliveryvehicleid z wartością identyfikatora pojazdu tego kierowcy. Następnie, w zależności od roli kierowcy, tokeny JWT umożliwiają dostęp tylko do określonego identyfikatora pojazdu, a nie do żadnego innego dowolnego identyfikatora pojazdu.
Fleet Engine używa tych oświadczeń prywatnych:
Przejazdy na żądanie
-
vehicleid:- Pakiet SDK dla kierowców zawsze używa tego oświadczenia, niezależnie od tego, czy działa w ramach przejazdu czy pojazdu. Przed wprowadzeniem zmian backend Fleet Engine sprawdza, czy pojazd jest powiązany z żądanym przejazdem.
- Token JWT może obejmować zarówno operacje dotyczące pojazdu, jak i podróży, nawet jeśli nie jest to wymagane, co może uprościć implementację podpisywania tokena JWT.
-
tripid:- Pakiet SDK dla konsumentów zawsze używa tego oświadczenia.
- Token JWT może obejmować zarówno operacje związane z pojazdem, jak i podróżą, nawet jeśli nie jest to wymagane, co może uprościć implementację podpisywania tokenów.
Zaplanowane zadania
-
deliveryvehicleidUżywaj go podczas wywoływania interfejsów API dla poszczególnych pojazdów dostawczych.
-
taskidUżywaj podczas wywoływania interfejsów API dla poszczególnych zadań.
-
taskidsUżywaj podczas dzwonienia do:
BatchCreateTasksAPI. To oświadczenie musi mieć postać tablicy, która powinna zawierać wszystkie identyfikatory zadań niezbędne do realizacji żądania. Nie podawaj informacji odelivervehicleid,trackingidanitaskid. -
trackingidUżywaj podczas wywoływania
GetTaskTrackingInfoAPI. Roszczenie musi być zgodne z identyfikatorem śledzenia w żądaniu. Nie podawaj informacji odelivervehicleid,taskidanitaskids.
Co dalej?
- Aby dowiedzieć się więcej o pełnym procesie uwierzytelniania, przeczytaj artykuł o projekcie zabezpieczeń Fleet Engine.
- Dowiedz się, jak wydawać tokeny sieciowe JSON z serwera.