Token internetowy JSON (JWT) to otwarty standard internetowy używany do uwierzytelniania autoryzacji wymiany informacji między klientem a serwerem. Gdy aplikacja użytkownik zaloguje się za pomocą odpowiednich danych logowania roli, serwer utworzy i zwraca zakodowany, podpisany cyfrowo token JWT do użycia w kolejnych żądaniach. Ten proces uwierzytelnia użytkownika i autoryzuje do niego dostęp do tras, usług i zasobów w zależności od roli ich konta.
Fleet Engine wymaga użycia tokenów sieciowych JSON (JWT) podpisanych przez odpowiednie konto usługi do wywołań metody interfejsu API pochodzących od low-Trust . Środowiska o niskim stopniu zaufania to m.in. smartfony i przeglądarki. Token JWT zaczyna się na serwerze, który jest w pełni zaufanym środowiskiem. Token JWT jest podpisany, zaszyfrowany i przekazywany do klienta w celu kolejnego serwera. do momentu ich wygaśnięcia lub utraty ważności.
Twój backend powinien uwierzytelniać się i autoryzować we Fleet Engine za pomocą standardowych domyślnych danych logowania aplikacji. Marka używaj tokenów JWT, które zostały podpisane przez odpowiednie konto usługi. Dla lista ról konta usługi, zobacz role konta usługi Fleet Engine w artykule Podstawy floty.
W przeciwieństwie do kluczy interfejsu API tokeny JWT są tymczasowe i ograniczają operacje tylko do tych, do wykonywania których ta rola jest uprawniona. Więcej informacji o tokenach JWT znajdziesz na stronie JSON Web tokeny w Wikipedii. Szczegółowe informacje o rolach dostępu znajdziesz w sekcji Usługa rolek na koncie w tym przewodniku.
Elementy JWT
Tokeny JWT zawierają nagłówek i sekcję deklaracji. Sekcja nagłówka zawiera takie jak klucz prywatny uzyskany z kont usługi oraz algorytm szyfrowania. Sekcja deklaracji zawiera takie informacje jak tokeny JWT czas, czas życia i usługi deklarowane przez token JWT, dostęp do i inne informacje dotyczące autoryzacji w zakresie dostępu; w przypadku np. identyfikator pojazdu dostawy.
W tabeli poniżej znajdziesz opisowe ogólne informacje o polach JWT. a także szczegółowe informacje na temat tego, gdzie można znaleźć wartości tych w projekcie Fleet Engine Cloud.
Pole |
Opis |
---|---|
Alg |
Algorytm, który ma być używany. „RS256”. |
typ |
Typ tokena. JWT. |
dziecko |
Identyfikator klucza prywatnego konta usługi. Tę wartość znajdziesz w sekcji
|
Pole |
Opis |
---|---|
Iss |
Adres e-mail konta usługi znajdziesz w
|
zast. |
Adres e-mail konta usługi znajdziesz w
|
Aud |
|
Iat |
Sygnatura czasowa (w sekundach) utworzenia tokena JWT.
upłynęło od 00:00:00 |
eksperyment |
Sygnatura czasowa wygaśnięcia tokena JWT, podana w sekundach
od |
autoryzacja |
W zależności od przypadku użycia może zawierać |
Żądania JWT Fleet Engine
Fleet Engine używa deklaracji prywatnych. Używanie deklaracji prywatnych zapewnia, że tylko autoryzowani klienci mogą uzyskać dostęp do własnych danych.
Jeśli na przykład serwer wydaje token internetowy JSON dla urządzenia mobilnego kierowcy
musi zawierać twierdzenie vehicleid
lub
deliveryvehicleid
z roszczeniem dotyczącym wartości identyfikatora pojazdu kierowcy. Następnie:
w zależności od roli kierowcy tokeny JWT umożliwiają dostęp tylko dla konkretnego pojazdu
Identyfikator pojazdu, a nie dowolny inny identyfikator pojazdu.
Fleet Engine używa tych deklaracji prywatnych:
Podróże na żądanie
-
vehicleid
:- .
- Pakiet Driver SDK zawsze używa tego twierdzenia, niezależnie od tego, czy podróżujesz lub pojazdem. Backend Fleet Engine zapewnia, że pojazd powiązane z wybraną podróżą.
- Jako dostawca usług używasz tego zgłoszenia ze znakiem „*” aby dopasować wszystkie pojazdów. Pamiętaj, że token JWT może obejmować zarówno pojazd, jak i podróż operacji, nawet jeśli nie są wymagane, co może uprościć podpisywanie JWT implementacji.
-
tripid
:- .
- Pakiet SDK Consumer SDK zawsze używa tego twierdzenia.
- Jako dostawca usług używasz tego zgłoszenia z znakiem „*” aby dopasować wszystkie podróży. Pamiętaj, że token JWT może obejmować zarówno działania związane z pojazdem, jak i podróżą, nawet jeśli nie są wymagane, co może uprościć podpisywanie tokenów implementacji.
Zaplanowane zadania
-
deliveryvehicleid
Należy używać w przypadku połączeń dotyczących konkretnego pojazdu API.
-
taskid
Używaj w przypadku wywoływania interfejsów API dla poszczególnych zadań.
-
taskids
Użyj przy dzwonieniu
BatchCreateTasksAPI
To twierdzenie musi mieć postać tablicową, , a tablica powinna zawierać wszystkie identyfikatory zadań niezbędne do wykonania użytkownika. Nie uwzględniaj wartościdelivervehicleid
, Roszczenia:trackingid
lubtaskid
. -
trackingid
Użyj przy wywołaniu
GetTaskTrackingInfoAPI
Roszczenie musi pasować do śledzenia Identyfikator w żądaniu. Nie uwzględniaj wartościdelivervehicleid
, Roszczenia:taskid
lubtaskids
.
Co dalej?
- Przeczytaj o projektowaniu zabezpieczeń Fleet Engine, aby zapoznać się z pełnymi informacjami. proces uwierzytelniania.
- Dowiedz się, jak wydawać tokeny internetowe JSON z serwera.