Un jeton Web JSON (JWT) est une norme Web ouverte qui permet d'authentifier et d'autoriser les échanges d'informations entre un client et un serveur. Lorsqu'une application utilisateur se connecte d'abord avec les identifiants du rôle appropriés, le serveur crée et renvoie un jeton JWT encodé et signé numériquement à utiliser avec les requêtes ultérieures. Ce processus authentifie l'utilisateur et l'autorise à accéder aux itinéraires, services et ressources en fonction de son rôle de compte.
Pour les appels de méthode API à partir d'environnements à faible confiance, Fleet Engine requiert l'utilisation de jetons Web JSON (JWT) signés par un compte de service approprié ; Les environnements à faible confiance incluent les smartphones et les navigateurs. Un jeton JWT proviennent de votre serveur, qui est un environnement entièrement approuvé. Le jeton JWT est signé, chiffré et transmis au client pour le serveur suivant jusqu'à ce qu'il expire ou qu'il ne soit plus valide. Pour une liste des rôles de compte de service, consultez la page Rôles de compte de service Fleet Engine du cours sur les principes de base des moteurs de flotte.
À l'inverse, votre backend doit s'authentifier et autoriser l'accès à Fleet Engine à l'aide des identifiants par défaut de l'application standards. des mécanismes de sécurité.
Contrairement aux clés API, les jetons JWT ont une courte durée de vie et limitent les opérations aux seules opérations que le rôle est autorisé à exécuter. Pour en savoir plus sur les jetons JWT, consultez la section JSON Web Tokens (Jetons) sur Wikipédia. Pour plus d'informations sur les rôles d'accès, consultez la page Services les rôles de compte de ce guide.
Éléments JWT
Les jetons JWT contiennent un en-tête et une section de revendications. La section d'en-tête contient des informations telles que la clé privée obtenue à partir des comptes de service de chiffrement. La section "claim" contient des informations telles que le jeton JWT l'heure de création, la valeur TTL (Time To Live), les services revendiqués par le JWT l’accès et d’autres informations d’autorisation pour définir l’accès ; pour (par exemple, l'ID du véhicule de livraison).
Le tableau suivant fournit des informations descriptives sur les champs JWT en général, ainsi que des informations spécifiques sur l'emplacement des valeurs de ces champs dans votre projet Fleet Engine Cloud.
Champ |
Description |
---|---|
alg |
Algorithme à utiliser. "RS256". |
type |
Type de jeton. "JWT". |
enfant |
ID de la clé privée de votre compte de service. Vous trouverez cette valeur dans le champ |
Champ |
Description |
---|---|
iss |
Adresse e-mail de votre compte de service, qui figure dans la
|
Pub/Sub. |
Adresse e-mail de votre compte de service, qui figure dans la
|
aud |
Le champ |
iat |
Code temporel en secondes de la création du jeton JWT
s'est écoulé depuis 00:00:00 |
exp |
Code temporel de l'expiration du jeton JWT, spécifié en secondes écoulées
depuis le |
autorisation |
Selon le cas d'utilisation, peut contenir Si vous spécifiez des identifiants de tâche, le champ d'application de l'autorisation doit être un tableau sous les formes suivantes: "taskids": ["task_id_one","task_id_two"]
ou "taskids": ["*"] |
Revendications JWT Fleet Engine
Fleet Engine utilise des revendications privées. L'utilisation de revendications privées permet de s'assurer les clients autorisés peuvent accéder à leurs propres données.
Par exemple, lorsque votre serveur émet un jeton Web JSON pour l'adresse e-mail
appareil, il doit contenir soit la revendication vehicleid
, soit la
deliveryvehicleid
avec la valeur de l'identifiant du véhicule du conducteur. Ensuite,
Selon le rôle du conducteur, les jetons JWT n'autorisent l'accès que pour le véhicule concerné
et non tout autre identifiant arbitraire du véhicule.
Fleet Engine utilise les revendications privées suivantes:
Trajets à la demande
-
vehicleid
:- Le SDK Driver utilise toujours cette déclaration, qu'il s'agisse d'un trajet ou un véhicule. Le backend de Fleet Engine s'assure que le véhicule est associé au trajet demandé avant d'effectuer la modification.
- Le JWT peut couvrir à la fois le véhicule et le trajet. (même si elles ne sont pas obligatoires), ce qui peut simplifier la signature la mise en œuvre.
-
tripid
:- Le SDK grand public utilise toujours cette déclaration.
- Le JWT peut couvrir à la fois les opérations liées au véhicule et au trajet, même si ce n'est pas obligatoire, ce qui peut simplifier la signature la mise en œuvre.
Tâches planifiées
-
deliveryvehicleid
À utiliser lors de l'appel par véhicule livré API.
-
taskid
À utiliser lors des appels d'API par tâche.
-
taskids
Utiliser lors des appels
BatchCreateTasksAPI
Cette revendication doit se présenter sous forme de tableau, et le tableau doit contenir tous les ID de tâche nécessaires pour effectuer la requête. N'incluez pas de revendicationsdelivervehicleid
,trackingid
outaskid
. -
trackingid
À utiliser lors de l'appel de
GetTaskTrackingInfoAPI
. La revendication doit correspondre au suivi dans la requête. N'incluez pas de revendicationsdelivervehicleid
,taskid
outaskids
.
Étape suivante
- Lisez la section sur la conception de la sécurité du parc d'attractions Flowleet Engine pour connaître d'authentification unique.
- Découvrez comment émettre des jetons Web JSON à partir de votre serveur.