Tokeny sieciowe JSON

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 Fleet Engine.

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 ról kont 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.

Pola nagłówka JWT

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 private_key_id w pliku JSON konta usługi. Marka sprawdź, czy używasz klucza z konta usługi o odpowiednim poziomie uprawnień.

Pola deklaracji JWT

Pole

Opis

Iss

Adres e-mail konta usługi znajdziesz w client_email w pliku JSON konta usługi.

zast.

Adres e-mail konta usługi znajdziesz w client_email w pliku JSON konta usługi.

Aud

SERVICE_NAME konta usługi, w tym przypadku: https://fleetengine.googleapis.com/

Iat

Sygnatura czasowa (w sekundach) utworzenia tokena JWT. upłynęło od 00:00:00 UTC, January 1, 1970. Odczekaj 10 minut na zniekształcenie. Jeśli sygnatura czasowa przypada w zbyt odległej przeszłości lub przyszłości, serwer może zgłosić błąd.

eksperyment

Sygnatura czasowa wygaśnięcia tokena JWT, podana w sekundach od 00:00:00 UTC, January 1, 1970. Żądanie nie powiedzie się, jeśli sygnatura czasowa przypada za więcej niż godzinę.

autoryzacja

W zależności od przypadku użycia może zawierać deliveryvehicleid, trackingid, taskid lub taskids.

Żą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ści delivervehicleid, Roszczenia: trackingid lub taskid.

  • trackingid

    Użyj przy wywołaniu GetTaskTrackingInfoAPI Roszczenie musi pasować do śledzenia Identyfikator w żądaniu. Nie uwzględniaj wartości delivervehicleid, Roszczenia: taskid lub taskids.

Co dalej?