Token internetowy JSON (JWT) to otwarty standard internetowy, który służy do uwierzytelniania i autoryzowania 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 na koncie.
Silnik floty wymaga używania tokenów sieciowych JSON (JWT) do wywoływania metod interfejsu API z środowisk o niskim poziomie zaufania: smartfonów i przeglądarek.
Token JWT pochodzi z serwera, jest podpisywany, szyfrowany i przekazywany do klienta do dalszych interakcji z serwerem, dopóki nie wygaśnie lub nie straci ważności.
Najważniejsze informacje
- Używaj domyślnych danych logowania aplikacji do uwierzytelniania i autoryzowania w usłudze Fleet Engine.
- Użyj odpowiedniego konta usługi do podpisywania tokenów JWT. Zapoznaj się z rolami konta usługi Fleet Engine w artykule Podstawy Fleet Engine.
W przeciwieństwie do kluczy API tokeny JWT są krótkotrwałe i ograniczają operacje tylko do tych, które są autoryzowane przez daną rolę. Więcej informacji o tokenach JWT znajdziesz w artykule Tokeny sieciowe JSON w Wikipedii. Szczegółowe informacje o rolach dostępu znajdziesz w sekcji Rola konta usługi w tym przewodniku.
Elementy JWT
Tokeny JWT zawierają nagłówek i sekcję z roszczeniami. Sekcja nagłówka zawiera informacje takie jak klucz prywatny uzyskany z kont kont usługi oraz algorytm szyfrowania. Sekcja oświadczenia zawiera informacje takie jak czas utworzenia i czas ważności tokena JWT, usługi, do których token JWT ma dostęp, oraz inne informacje autoryzujące zakres dostępu, na przykład identyfikator pojazdu dostawczego.
W tabeli poniżej znajdziesz szczegółowe informacje o polach tokena JWT, a także dokładne informacje o tym, gdzie w projekcie Fleet Engine Cloud można znaleźć wartości tych pól.
Pole |
Opis |
---|---|
alg |
algorytm, `RS256`. |
typ |
Typ tokena. `JWT`. |
dziecko |
Identyfikator klucza prywatnego konta usługi. Znajdziesz ją 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 w sekundach od 00:00:00 |
exp |
Sygnatura czasowa wygaśnięcia tokena JWT podana w sekundach 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 dotyczące JWT w Fleet Engine
Silnik floty korzysta z zaświadczeń prywatnych. Dzięki używaniu prywatnych roszczeń tylko upoważnieni klienci mają dostęp do swoich danych.
Jeśli na przykład serwer wydaje token sieci Web JSON dla urządzenia mobilnego kierowcy, powinien on zawierać oświadczenie vehicleid
lub oświadczenie 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 dowolnego innego identyfikatora pojazdu.
Silnik floty korzysta z tych prywatnych roszczeń:
Przejazdy na żądanie
-
vehicleid
:- Pakiet Driver SDK zawsze używa tego roszczenia, niezależnie od tego, czy działa w ramach przejazdu czy pojazdu. Backend Fleet Engine zapewnia, że pojazd jest powiązany z wybraną podróżą przed wprowadzeniem zmian.
- Token JWT może obejmować operacje związane z pojazdem i podróżą, nawet jeśli nie są wymagane, co może uprościć implementację podpisywania tokenów JWT.
-
tripid
:- Pakiet Consumer SDK zawsze używa tego roszczenia.
- 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
-
deliveryvehicleid
Używaj podczas wywoływania interfejsów API dotyczących poszczególnych środków transportu.
-
taskid
Używaj podczas wywoływania interfejsów API na potrzeby poszczególnych zadań.
-
taskids
Używaj podczas dzwonienia do
BatchCreateTasksAPI
. Ten element musi być w postaci tablicy, a tablica powinna zawierać wszystkie identyfikatory zadań niezbędne do wykonania prośby. Nie używaj stwierdzeńdelivervehicleid
,trackingid
anitaskid
. -
trackingid
Użyj, gdy wywołujesz funkcję
GetTaskTrackingInfoAPI
. Roszczenie musi być zgodne z identyfikatorem śledzenia w prośbie. Nie używaj stwierdzeńdelivervehicleid
,taskid
anitaskids
.
Co dalej?
- Aby poznać pełny proces uwierzytelniania, zapoznaj się z projektem zabezpieczeń Fleet Engine.
- Dowiedz się, jak wydawać tokeny sieciowe JSON na serwerze.