Ein JSON Web Token (JWT) ist ein offener Webstandard, der zum Authentifizieren und Autorisieren des Informationsaustauschs zwischen einem Client und einem Server verwendet wird. Wenn sich ein App-Nutzer zum ersten Mal mit den entsprechenden Rollenanmeldedaten anmeldet, erstellt und gibt der Server ein codiertes, digital signiertes JWT für die Verwendung bei nachfolgenden Anfragen zurück. Dabei wird der Nutzer authentifiziert und autorisiert, auf Routen zuzugreifen, Dienste und Ressourcen basierend auf ihrer Kontorolle.
Für API-Methodenaufrufe aus Umgebungen mit geringem Vertrauen ist in der Fleet Engine die Verwendung von JSON Web Tokens (JWTs) erforderlich, die von einem geeigneten Dienstkonto signiert wurden. Zu den Umgebungen mit wenig Vertrauen gehören Smartphones und Browser. Ein JWT stammt von Ihrem Server, einer voll vertrauenswürdigen Umgebung. Das JWT wird signiert, verschlüsselt und für nachfolgende Serverinteraktionen an den Client übergeben, bis es abläuft oder nicht mehr gültig ist. Für eine Eine Liste der Dienstkontorollen finden Sie unter Fleet Engine-Dienstkontorollen. in Fleet Engine-Grundlagen.
Im Gegensatz dazu sollte sich Ihr Backend bei Fleet Engine authentifizieren und autorisieren mit standardmäßigen Standardanmeldedaten für Anwendungen Mechanismen.
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 Anspruchsbereich. 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 vom JWT beanspruchten Dienste 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.
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
|
Feld |
Beschreibung |
---|---|
iss |
Die E-Mail-Adresse Ihres Dienstkontos, die Sie im
|
sub |
Die E-Mail-Adresse Ihres Dienstkontos, die Sie im
|
aud |
Die |
iat |
Der Zeitstempel für die Erstellung des JWT, angegeben in Sekunden.
seit 00:00:00 |
exp |
Der Zeitstempel für den Ablauf des JWT, angegeben in verstrichenen Sekunden
seit |
Autorisierung |
Kann je nach Anwendungsfall Wenn Sie „taskids“ angeben, muss der Autorisierungsbereich ein Array in einem folgenden Formen: "taskids": ["task_id_one","task_id_two"]
oder "taskids": ["*"] |
Fleet Engine-JWT-Anforderungen
Fleet Engine verwendet private Anforderungen. Die Verwendung privater Ansprüche stellt sicher, dass nur 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 ausstellt, sollte es entweder die vehicleid
-Anforderung oder die deliveryvehicleid
-Anforderung mit dem Wert der Fahrzeug-ID dieses Fahrers enthalten. 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:
Fahrten auf Abruf
-
vehicleid
:- Das Driver SDK verwendet diese Anforderung immer, unabhängig davon, ob sie während einer Fahrt ausgeführt wird 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.
- Das JWT kann sowohl Fahrzeug- als auch Fahrtvorgänge abdecken, auch wenn dies nicht erforderlich ist. Dies kann die Implementierung der JWT-Signatur vereinfachen.
-
tripid
:- Das Consumer SDK verwendet diese Behauptung immer.
- Das JWT kann sowohl Fahrzeug- als auch Fahrtvorgänge abdecken, auch wenn dies nicht erforderlich ist. Dies kann die Implementierung der Tokensignatur vereinfachen.
Geplante Aufgaben
-
deliveryvehicleid
Bei Aufrufen pro Lieferfahrzeug verwenden APIs
-
taskid
Verwenden Sie diesen Wert, wenn Sie APIs aufrufen, die pro Aufgabe ausgeführt werden.
-
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 nichtdelivervehicleid
,trackingid
- odertaskid
-Ansprüche -
trackingid
Wird verwendet, wenn die
GetTaskTrackingInfoAPI
Der Anspruch muss mit dem Tracking-Code übereinstimmen. ID in der Anfrage. Fügen Sie keinedelivervehicleid
-,taskid
- odertaskids
-Ansprüche hinzu.
Nächste Schritte
- Weitere Informationen zum vollständigen Authentifizierungsablauf finden Sie unter Fleet Engine-Sicherheitsdesign.
- Weitere Informationen zum Ausstellen von JSON Web Tokens über Ihren Server