Token internetowy JSON (JWT) to otwarty standard internetowy używany do uwierzytelniania i autoryzowania wymiany informacji między klientem a serwerem. Gdy użytkownik aplikacji zaloguje się po raz pierwszy za pomocą odpowiednich danych logowania do roli, serwer utworzy i zwróci zakodowany, podpisany cyfrowo token JWT do użycia w kolejnych żądaniach. Ten proces uwierzytelnia użytkownika i przyznaje mu uprawnienia dostępu do tras, usług i zasobów na podstawie jego roli na koncie.
Fleet Engine wymaga używania tokenów sieciowych JSON (JWT) w przypadku wywołań metod interfejsu API z środowisk o niskim poziomie zaufania: smartfonów i przeglądarek.
Token JWT pochodzi z Twojego serwera, jest podpisany, zaszyfrowany i przekazywany do klienta w celu dalszych interakcji z serwerem, dopóki nie wygaśnie lub nie będzie już ważny.
Najważniejsze informacje
- Użyj domyślnego uwierzytelniania aplikacji, aby uwierzytelnić się i uzyskać autoryzację w Fleet Engine.
- Używaj odpowiedniego konta usługi do podpisywania tokenów JWT. Więcej informacji o rolach konta usługi Fleet Engine znajdziesz w artykule Podstawowe informacje o Fleet Engine.
W odróżnieniu od kluczy API tokeny JWT mają krótki okres ważności i ograniczają operacje tylko do tych, które może wykonywać dana rola. Więcej informacji o tokenach JWT znajdziesz w artykule JSON Web Tokens w Wikipedii. Więcej informacji o rolach dostępu znajdziesz w sekcji Role kont usługi w tym przewodniku.
Elementy tokena JWT
Tokeny 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 roszczeń zawiera informacje takie jak czas utworzenia JWT, czas życia, usługi, do których JWT twierdzi, że ma dostęp, oraz inne informacje o autoryzacji, które ograniczają dostęp, np. identyfikator pojazdu dostawczego.
W tabeli poniżej znajdziesz ogólne informacje o polach JWT oraz szczegółowe informacje o tym, gdzie w projekcie Google Cloud Fleet Engine możesz znaleźć wartości tych pól.
Pole |
Opis |
|---|---|
alg |
Algorytm do użycia. `RS256`. |
typ |
Typ tokena. `JWT`. |
dziecko |
Identyfikator klucza prywatnego konta usługi. Znajdziesz go 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 godziny 00:00:00 |
exp |
Sygnatura czasowa wygaśnięcia tokena JWT podana w sekundach, które upłynęły od |
autoryzacja |
W zależności od przypadku użycia może zawierać Jeśli określasz identyfikatory zadań, zakres autoryzacji musi być tablicą w jednej z tych form: "taskids": ["task_id_one","task_id_two"]
lub "taskids": ["*"] |
Roszczenia JWT w usłudze Fleet Engine
Fleet Engine używa prywatnych roszczeń. Używanie prywatnych roszczeń zapewnia, że tylko autoryzowani klienci mogą uzyskać dostęp do swoich danych.
Na przykład, gdy serwer wydaje token internetowy JSON na urządzenie mobilne kierowcy, powinien on zawierać roszczenie vehicleid lub roszczenie deliveryvehicleid z wartością identyfikatora pojazdu tego kierowcy. W zależności od roli kierowcy tokeny JWT umożliwiają dostęp tylko do konkretnego identyfikatora pojazdu, a nie do dowolnego innego identyfikatora pojazdu.
Fleet Engine używa tych prywatnych roszczeń:
Przejazdy na żądanie
-
vehicleid:- Driver SDK zawsze korzysta z tego oświadczenia, niezależnie od tego, czy dotyczy ono podróży, czy pojazdu. Backend Fleet Engine przed wprowadzeniem zmiany upewnia się, że pojazd jest powiązany z odpowiednim przejazdem.
- Token JWT może obejmować operacje związane z pojazdem i przejazdem, nawet jeśli nie jest to wymagane, co może uprościć implementację podpisywania tokena JWT.
-
tripid:- Consumer SDK zawsze korzysta z tego oświadczenia.
- Token JWT może obejmować zarówno operacje związane z pojazdem, jak i z przejazdem, nawet jeśli nie jest to wymagane, co może uprościć implementację podpisywania tokena.
Zaplanowane zadania
-
deliveryvehicleidUżywaj podczas wywoływania interfejsów API dotyczących poszczególnych pojazdów dostawczych.
-
taskidUżywaj podczas wywoływania interfejsów API dla poszczególnych zadań.
-
taskidsUżywaj podczas dzwonienia na numer
BatchCreateTasksAPI. To roszczenie musi mieć formę tablicy, która powinna zawierać wszystkie identyfikatory zadań niezbędne do zrealizowania żądania. Nie uwzględniaj roszczeńdelivervehicleid,trackingidanitaskid. -
trackingidUżyj podczas wywoływania
GetTaskTrackingInfoAPI. Roszczenie musi być zgodne z identyfikatorem śledzenia podanym we wniosku. Nie uwzględniaj roszczeńdelivervehicleid,taskidanitaskids.
Co dalej?
- Aby poznać pełny proces uwierzytelniania, zapoznaj się z informacjami o zabezpieczeniach Fleet Engine.
- Dowiedz się, jak wydawać tokeny sieciowe JSON z serwera.