Un jeton Web JSON (JWT) est une norme Web ouverte utilisée pour authentifier et autoriser les échanges d'informations entre un client et un serveur. Lorsqu'un utilisateur d'application se connecte pour la première fois avec les identifiants de rôle appropriés, le serveur crée et renvoie un jeton JWT encodé et signé numériquement à utiliser avec les requêtes suivantes. Ce processus authentifie l'utilisateur et l'autorise à accéder aux routes, aux services et aux ressources en fonction de son rôle de compte.
Fleet Engine nécessite l'utilisation de jetons Web JSON (JWT) pour les appels de méthode API à partir d'environnements à faible niveau de confiance : smartphones et navigateurs.
Un jeton JWT provient de votre serveur, est signé, chiffré et transmis au client pour les interactions ultérieures avec le serveur jusqu'à son expiration ou sa non-validité.
Informations essentielles
- Utilisez les identifiants par défaut de l'application pour vous authentifier et vous autoriser auprès de Fleet Engine.
- Utilisez un compte de service approprié pour signer les jetons JWT. Consultez la section Rôles de compte de service Fleet Engine dans Principes de base de Fleet Engine.
Contrairement aux clés API, les jetons JWT sont de courte durée et limitent les opérations à celles que le rôle est autorisé à effectuer. Pour en savoir plus sur les jetons JWT, consultez la page Jetons Web JSON sur Wikipédia. Pour en savoir plus sur les rôles d'accès, consultez la section Rôles de compte de service 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 et l'algorithme de chiffrement. La section de revendications contient des informations telles que l'heure de création du jeton JWT, sa durée de vie, les services auxquels le jeton JWT revendique l'accès et d'autres informations d'autorisation pour limiter l'accès (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`. |
typ |
Type de jeton. `JWT`. |
enfant |
ID de la clé privée de votre compte de service. Vous trouverez cette valeur dans le
|
Champ |
Description |
|---|---|
iss |
Adresse e-mail de votre compte de service, qui se trouve dans le
|
Pub/Sub. |
Adresse e-mail de votre compte de service, qui se trouve dans le
|
aud |
|
iat |
Code temporel de création du jeton JWT, spécifié en secondes
écoulées depuis le 00:00:00 |
exp |
Code temporel d'expiration du jeton JWT, spécifié en secondes écoulées
depuis |
autorisation |
Selon le cas d'utilisation, peut contenir Si vous spécifiez des ID de tâche, le champ d'application de l'autorisation doit être un tableau dans l'un des formats suivants : "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 garantit que seuls les clients autorisés peuvent accéder à leurs propres données.
Par exemple, lorsque votre serveur émet un jeton Web JSON pour l'appareil mobile d'un chauffeur, il doit contenir la revendication vehicleid ou la
deliveryvehicleid revendication avec la valeur de l'ID du véhicule de ce chauffeur. Ensuite, en fonction du rôle du chauffeur, les jetons JWT n'autorisent l'accès qu'à l'ID de véhicule spécifique et non à un autre ID de véhicule arbitraire.
Fleet Engine utilise les revendications privées suivantes :
Trajets à la demande
-
vehicleid:- Le SDK Driver utilise toujours cette revendication, qu'il fonctionne sur un trajet ou un véhicule. Le backend Fleet Engine s'assure que le véhicule est associé au trajet demandé avant d'effectuer la modification.
- Le jeton JWT peut couvrir les opérations sur les véhicules et les trajets, même si cela n'est pas obligatoire, ce qui peut simplifier l'implémentation de la signature JWT.
-
tripid:- Le SDK Consumer utilise toujours cette revendication.
- Le jeton JWT peut couvrir les opérations sur les véhicules et les trajets, même si cela n'est pas obligatoire, ce qui peut simplifier l'implémentation de la signature de jeton.
Tâches planifiées
-
deliveryvehicleidÀ utiliser lors de l'appel d'API par véhicule de livraison.
-
taskidÀ utiliser lors de l'appel d'API par tâche.
-
taskidsÀ utiliser lors de l'appel de
BatchCreateTasksAPI. Cette revendication doit être au format tableau, et le tableau doit contenir tous les ID de tâche nécessaires pour effectuer la requête. N'incluez pas les revendicationsdelivervehicleid,trackingid, nitaskid. -
trackingidÀ utiliser lors de l'appel de
GetTaskTrackingInfoAPI. La revendication doit correspondre à l'ID de suivi dans la requête. N'incluez pas les revendicationsdelivervehicleid,taskid, nitaskids.
Étape suivante
- Consultez la page sur la conception de la sécurité de Fleet Engine pour comprendre le flux d'authentification complet.
- Découvrez comment émettre des jetons Web JSON à partir de votre serveur.