Tokeny sieciowe JSON

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.

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 użyj 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, który znajdziesz w polu client_email 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.

exp

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.

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ś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?