Token internetowy JSON (JWT) to otwarty standard internetowy używany do uwierzytelniania oraz autoryzowanie 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.
W przypadku wywołań metod interfejsu API ze środowisk o niskim poziomie zaufania Fleet Engine wymaga: użycie tokenów sieciowych JSON (JWT) podpisanych przez odpowiednie konto usługi. Ś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. Dla lista ról konta usługi, zobacz role konta usługi Fleet Engine w artykule Podstawy floty.
W przeciwieństwie do tego Twój backend powinien się uwierzytelniać i autoryzować za pomocą Fleet Engine. przy użyciu standardowych domyślnych danych logowania aplikacji. i zbierania danych.
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 konta usługi znajdziesz w tym przewodniku w sekcji Rola konta usługi.
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, który znajdziesz w polu
|
Aud |
|
iat |
Sygnatura czasowa (w sekundach) utworzenia tokena JWT.
upłynęło 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ć W przypadku określania identyfikatorów zadań zakres autoryzacji musi być tablicą w jednej tych form: "taskids": ["task_id_one","task_id_two"]
lub "taskids": ["*"] |
Żądania JWT Fleet Engine
Fleet Engine używa deklaracji prywatnych. Użycie 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óżą.
- 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.
- Token JWT może obejmować zarówno operacje 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, gdy dzwonią do Ciebie
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.