Altova MobileTogether Designer

Une solution de page web intégrée peut également être authentifiée en utilisant des JSON Web Tokens (JWT, prononciation recommandée : "jot"). En principe, l'authentification JWT est traitée en dehors du système d'authentification MobileTogether Server. Un utilisateur authentifié reçoit un JWT, qui est transmis par le biais de la page web au MobileTogether Server. Sur le serveur, le JWT est vérifié ; Il est aussi parsé pour découvrir l'utilisateur. Si le JWT est valide, la communication entre la solution intégrée et le serveur se poursuit pour l'utilisateur spécifié dans le JWT.

 

L'illustration ci-dessous montre le fonctionnement de l'authentification JWT.

Cliquer pour agrandir/réduire

 

Veuillez noter les points suivants :

 

Le serveur d'authentification et le serveur d'application (www) ne doivent pas nécessairement être séparés.

Le scénario dans lequel la solution de page web intégrée est utilisé, ainsi que le système d'authentification utilisé est à définir entièrement par l'exécutant.

Lorsqu'un JWT est créé (après l'authentification réussie d'un utilisateur), un paramètre qui spécifie l'utilisateur est défini. Si l'utilisateur correspond à un de ces utilisateurs configurés sur MobileTogether Server, l'accès au serveur est déterminé par les permissions qui ont été configurées pour cet utilisateur. Tout autre utilisateur est automatiquement importé dans la liste des utilisateurs configurés ; néanmoins, les permissions pour cet utilisateur devront être configurées sur MobileTogether Server.

L'exécutant saisit le secret partagé ou la clé publique dans les paramètres MobileTogether Server. Le secret partagé est le même string de caractères que l'exécutant utilise pour générer le JWT sur le serveur d'authentification. La clé publique est celle qui correspond à la clé privée utilisée pour chiffrer le JWT.

Le JWT est transmis au IFrame avec le premier appel que la solution passe à MobileTogether Server.

Sur MobileTogether Server, le secret partagé ou la clé publique contenus dans les paramètres MobileTogether Server sont utilisés pour vérifier le JWT entrant.

Dès que le JWT entrant est vérifié, une session de communication authentifié est établie entre la solution dans l'IFrame intégré et MobileTogether Server.

L'utilisateur de la session sera celui spécifié dans le JWT

 

Qu'est-ce qu'un JWT?

Un JWT est un ensemble de revendications (paires de propriété–valeur JSON) qui, ensemble, constituent un objet JSON. Celui-ci se compose de trois parties :

 

En-tête : consiste en deux propriétés { "alg": "HS256", "typ": "JWT" }. alg est l'algorithme utilisé pour chiffrer le JWT.

Charge : c'est là que les données à envoyer sont stockées ; ces données sont stockées en tant que paires de propriété–valeur JSON.

Signature : elle est créée en chiffrant, avec l'algorithme spécifiée dans l'en-tête, (i) l'en-tête encodée en base64Url, (ii) la charge encodée en base64Url et (iii) un secret (ou une clé privée)

HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), secret|privateKey)

 

Le JWT final consiste en trois parties. Chaque partie est encodée en base64Url et est séparée de la suivante par un point. Voir les sites web openid.net et jwt.io pour plus de détails.

 

Clé symétrique et clés asymétrique

Un JWT peut être chiffré soit avec une clé symétrique (secret partagé) ou des clés asymétriques (la clé privée d'une paire privée–publique).

 

Clé symétrique : la même clé est utilisée pour les deux chiffrages (lorsque le JWT est créé) et le déchiffrage (MobileTogether Server utilise la clé pour vérifier le JWT). La clé symétrique (le secret partagé) est stockée en tant qu'un paramètre dans MobileTogether Server. VoirClé symétrique : Secret partagé pour plus de détails concernant le travail avec des clés symétriques.

Clés asymétriques : les clés différentes sont utilisées pour le chiffrage (clé privée) et le déchiffrage (clé publique) La clé publique est stockée en tant que paramètre dans MobileTogether Server de manière à ce que le JWT puisse être vérifié. Pour plus d'informations concernant l'utilisation de chiffrage asymétrique pour les JWT, voir Clés asymétriques : clé publique.

 

Essayer JWT

Pour essayer JWT vous pouvez :

 

1.Créer votre propre JWT dans le Générateur de JWT en ligne de Jamie Kurtz. Voir la section Clé symétrique : Secret partagé pour une description.

2.Sur le site web jwt.io, vérifier votre clé comme cela : (i) saisir le JWT chiffré dans le volet Encodé ; (ii) dans le volet Vérifier la signature, saisir le secret que vous avez utilisé pour créer le JWT. Le débogueur du site web vous informera que la signature a été vérifiée.

 

Voir aussi l'exemple Authentification JWT.

 

© 2017-2023 Altova GmbH