Authentification JWT

www.altova.com Imprimer cette rubrique Page précédente Un niveau supérieur Page suivante

Accueil >  Solutions de page web intégrée > Authentification >

Authentification JWT

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.

Click to expand/collapse

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 crypter 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 encrypter 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 encryptant, 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 crypté 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 cryptages (lorsque le JWT est créé) et le décryptage (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. Voir Clé 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 cryptage (clé privée) et le décryptage (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 d'encryptage 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 suivantes, 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 encrypté 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.

 


© 2019 Altova GmbH