JSON-Webtokens

JSON Web Token (JWT) ist ein offener Webstandard, der zur Authentifizierung und und den Informationsaustausch zwischen Client und Server autorisieren. Wenn eine App meldet sich der Nutzer zuerst mit den entsprechenden Rollenanmeldedaten an, erstellt der Server und gibt ein codiertes, digital signiertes JWT zur Verwendung mit nachfolgenden Anfragen zurück. Dabei wird der Nutzer authentifiziert und autorisiert, auf Routen zuzugreifen, Dienste und Ressourcen basierend auf ihrer Kontorolle.

Fleet Engine erfordert die Verwendung von JSON Web Tokens (JWTs), die von einem Entsprechendes Dienstkonto für API-Methodenaufrufe aus Low-Trust- Umgebungen. Zu den Umgebungen mit wenig Vertrauen gehören Smartphones und Browser. Ein JWT Sie stammen von Ihrem Server, einer voll vertrauenswürdigen Umgebung. Das JWT wird signiert, verschlüsselt und an den Client für den nachfolgenden Server übergeben. Interaktionen, bis sie abläuft oder nicht mehr gültig ist.

Ihr Backend sollte sich mit der folgenden Methode bei Fleet Engine authentifizieren und autorisieren Standardmechanismen für Standardanmeldedaten für Anwendungen. Marke Verwenden Sie JWTs, die von einem entsprechenden Dienstkonto signiert wurden. Für eine Eine Liste der Dienstkontorollen finden Sie unter Fleet Engine-Dienstkontorollen. in Fleet Engine-Grundlagen.

Im Gegensatz zu API-Schlüsseln sind JWTs kurzlebig und beschränken Vorgänge auf diejenigen, die für die die Rolle autorisiert ist. Weitere Informationen zu JWTs finden Sie unter JSON im Web Tokens auf Wikipedia. Details zu Zugriffsrollen finden Sie unter Dienst Kontorollen.

JWT-Elemente

JWTs enthalten einen Header und einen Anforderungsabschnitt. Der Header-Abschnitt enthält Informationen wie den von den Dienstkonten erhaltenen privaten Schlüssel und die Verschlüsselungsalgorithmus. Der Abschnitt „Claim“ enthält Informationen wie Erstellungszeit, Gültigkeitsdauer, die Dienste, die vom JWT beansprucht werden Zugriff auf und andere Autorisierungsinformationen für den Zugriffsbereich; für z. B. die ID des Lieferfahrzeugs.

Die folgende Tabelle enthält allgemeine Informationen zu JWT-Feldern. sowie spezifische Informationen darüber, wo Sie die Werte für diese Fleet Engine Cloud-Projekt ein.

JWT-Headerfelder

Feld

Beschreibung

alg

Der zu verwendende Algorithmus. „RS256“.

Typ

Der Tokentyp. „JWT“.

Kind

Die private Schlüssel-ID Ihres Dienstkontos. Sie finden diesen Wert in der private_key_id in der JSON-Datei Ihres Dienstkontos. Marke Verwenden Sie einen Schlüssel von einem Dienstkonto mit der richtigen Berechtigungsstufe.

Felder für die JWT-Anforderung

Feld

Beschreibung

iss

Die E-Mail-Adresse Ihres Dienstkontos, die Sie im client_email in der JSON-Datei Ihres Dienstkontos.

sub

Die E-Mail-Adresse Ihres Dienstkontos, die Sie im client_email in der JSON-Datei Ihres Dienstkontos.

aud

Die SERVICE_NAME Ihres Dienstkontos, in diesem Fall https://fleetengine.googleapis.com/

iat

Der Zeitstempel für die Erstellung des JWT, angegeben in Sekunden. seit 00:00:00 UTC, January 1, 1970 verstrichen. Planen Sie 10 Minuten für die Verzerrung ein. Wenn der Zeitstempel zu weit in der Vergangenheit oder Zukunft liegt, einen Fehler meldet.

exp

Der Zeitstempel für das Ablaufen des JWT, angegeben in verstrichenen Sekunden seit 00:00:00 UTC, January 1, 1970. Die Anfrage schlägt fehl, wenn der Der Zeitstempel liegt mehr als eine Stunde in der Zukunft.

Autorisierung

Je nach Anwendungsfall kann deliveryvehicleid enthalten sein, trackingid, taskid oder taskids.

Fleet Engine-JWT-Anforderungen

Fleet Engine verwendet private Anforderungen. Durch die Verwendung privater Ansprüche wird sichergestellt, und autorisierte Clients auf ihre eigenen Daten zugreifen können.

Wenn Ihr Server beispielsweise ein JSON Web Token für das Mobilgerät eines Fahrers ausgibt, Gerät sollte sie entweder die vehicleid-Anforderung oder den deliveryvehicleid-Anspruch mit dem Wert der Fahrzeug-ID dieses Fahrers. Gehen Sie dann so vor: Je nach Fahrerrolle ermöglichen JWTs den Zugriff nur für das jeweilige Fahrzeug. und keine andere Fahrzeug-ID.

Fleet Engine verwendet die folgenden privaten Anforderungen:

On-Demand-Reisen

  • vehicleid:
    • Das Driver SDK verwendet diese Anforderung immer, unabhängig davon, ob sie während einer Fahrt tätig ist. oder ein Fahrzeug. Das Fleet Engine-Backend stellt sicher, dass das Fahrzeug die mit der angefragten Fahrt verknüpft sind, bevor die Änderung vorgenommen wird.
    • Als Dienstanbieter verwenden Sie diese Aussage mit einem „*“ für alle Übereinstimmungen Fahrzeugen. Das JWT kann sowohl das Fahrzeug als auch die Fahrt abdecken Vorgänge, selbst wenn sie nicht erforderlich sind, was die JWT-Signatur vereinfachen kann. Implementierung.
  • tripid:
    • Das Consumer SDK verwendet diese Behauptung immer.
    • Als Dienstanbieter verwenden Sie diese Aussage mit einem „*“ für alle Übereinstimmungen Fahrten. Das JWT kann sowohl Fahrzeug- als auch Fahrtvorgänge abdecken. Dies kann die Tokensignatur vereinfachen, selbst wenn sie nicht erforderlich ist. Implementierung.

Geplante Aufgaben

  • deliveryvehicleid

    Bei Aufrufen pro Lieferfahrzeug verwenden APIs

  • taskid

    Wird beim Aufrufen von aufgabenspezifischen APIs verwendet.

  • taskids

    Beim Anrufen verwenden BatchCreateTasksAPI Diese Anforderung muss in Arrayform vorliegen, und das Array sollte alle Aufgaben-IDs enthalten, die zum Abschließen der Enthalten nicht delivervehicleid, trackingid- oder taskid-Ansprüche

  • trackingid

    Verwenden Sie diese Option beim Aufrufen der GetTaskTrackingInfoAPI Der Anspruch muss mit dem Tracking-Code übereinstimmen. ID in der Anfrage. Enthalten nicht delivervehicleid, taskid- oder taskids-Ansprüche

Nächste Schritte