DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Uncategorized»Authentification et autorisation JWT : une introduction détaillée
    Uncategorized

    Authentification et autorisation JWT : une introduction détaillée

    mars 13, 2023
    Authentification et autorisation JWT : une introduction détaillée
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    Dans cet article, nous discuterons de l’authentification et de l’autorisation à l’aide du jeton JWT et de différents algorithmes et techniques cryptographiques. Ainsi, nous allons examiner les éléments suivants un par un :

    • Introduction du jeton JWT
    • Pourquoi le jeton JWT ?
    • Structure du jeton JWT
    • Scénario client-serveur avec jeton JWT
    • Scénario client-serveur avec jeton d’actualisation JWT

    Commençons un par un avec les bases et les scénarios en temps réel.

    Fondamentalement, JWT est utilisé pour l’authentification et l’autorisation de différents utilisateurs.

    Authentification

    Dans ce processus, nous envoyons le nom d’utilisateur et le mot de passe au serveur d’authentification. Le serveur d’authentification validera ces informations d’identification et les stockera quelque part sur la session du navigateur et les cookies et enverra l’ID à l’utilisateur final.

    Autorisation

    Lors de l’autorisation, nous vérifions les informations d’identification saisies par l’utilisateur lors du processus « Authentification », et ce même utilisateur aura accordé l’accès à la ressource en utilisant les informations d’identification que nous stockons dans le processus « Authentification », puis autorisera cet utilisateur particulier.

    Introduction du jeton JWT

    • JSON Web Token est la norme de stylet (RFC 7519) de manière autonome qui sera utilisée pour transmettre les données en toute sécurité sur les différents environnements en tant qu’objet JSON.
    • RFC (Request for Comment) est la forme abrégée d’appel de fonction à distance et un document officiel de l’Internet Engineering Task Force.
    • JWT est le moyen d’authentification de confiance car il est signé numériquement et secret à l’aide de l’algorithme HMAC ou parfois à l’aide d’une clé publique/privée utilisant RSA.
    • HMAC signifie code d’authentification de message basé sur le hachage ; il utilise une excellente technique de hachage cryptographique qui offre une sécurité efficace.
    • JWT fait partie du grand cadre d’authentification et d’autorisation, comme OAuth et OpenID, qui fournira un excellent mécanisme pour transférer des données en toute sécurité.

    Pourquoi le jeton JWT ?

    • L’utilisateur s’authentifiera à l’aide du jeton JWT, qui est une signature signée numériquement avec une clé secrète émise par l’émetteur. Ainsi, cela sera utilisé pour authentifier l’utilisateur en toute sécurité et gérer les réclamations, et bien d’autres.
    • Au lieu de stocker les informations d’identification de l’utilisateur quelque part sur le serveur, facilement accessibles par les attaquants sur Internet, nous utilisons JWT. Lorsque nous l’utilisons, nous conservons les secrets des utilisateurs avec différents algorithmes cryptographiques et les encodons pour authentifier les utilisateurs.

    C’est pourquoi de nombreuses applications Web utilisent JWT pour l’authentification sécurisée des utilisateurs.

    Structure du jeton JWT

    Le jeton Web JSON se compose de trois parties qui stockent les informations utilisateur dans le jeton, séparées par des points (.) Par exemple :

    Trois parties

    Encodé

    Comme vous le voyez dans le schéma ci-dessus, il s’agit d’une URL Base64 encodée qui stocke les secrets d’utilisateur et les informations en trois parties :

    1. En-tête

    L’en-tête stocke des informations sur le jeton JWT, comme le type de jeton et l’algorithme que nous avons utilisé pour le créer. Par exemple:

    {
      "alg": "HS256",
      "typ": "JWT"
    }

    2. Charge utile

    La charge utile est la deuxième partie du jeton JWT, qui stocke des informations sur les utilisateurs telles que les revendications, les rôles, les sujets et des informations supplémentaires relatives à un utilisateur. Par exemple:

    {
      "sub": "1234567890",
      "name": "Jaydeep Patil",
      "admin": "true"
    }

    3. Signature

    Une signature vérifie les informations utilisateur présentes dans l’en-tête et la charge utile qui valident les choses avec la clé secrète et les données présentes dans la chaîne codée en base64. La clé secrète est présente sur le serveur, que nous utilisons lors de la création du jeton. Cette clé secrète empêche les attaquants externes de déchiffrer le jeton. Ainsi, dans ce processus, une chaîne encodée en Base64 est créée pour être utilisée pour l’authentification et l’autorisation :

    HMACSHA256(
      base64UrlEncode(header) + "." +
      base64UrlEncode(payload),//This is the Secret Key which is store at server side and use in signature
    your-256-bit-secret)

    Ce sont les trois parties du jeton qui sont présentes dans le Base64Url string, qui est séparé par un point et stocke les informations secrètes de l’utilisateur pour valider les utilisateurs.

    Scénario client-serveur avec jeton JWT

    Vous pouvez voir dans le diagramme suivant comment le processus d’authentification fonctionne pour l’utilisateur lorsqu’il souhaite accéder aux ressources à partir du serveur principal.

    Diagramme

    • Tout d’abord, l’utilisateur envoie une demande au serveur d’authentification avec des informations d’identification telles que le nom d’utilisateur et le mot de passe.
    • Ensuite, le serveur d’authentification validera ces informations, et toutes les informations fournies par l’utilisateur seront correctes et authentifiées avec succès afin que le serveur d’authentification puisse émettre le jeton d’accès valide JWT à l’utilisateur.
    • Ensuite, l’utilisateur envoie la première demande au serveur principal avec un jeton d’accès JWT valide, et le serveur fournira la ressource demandée à l’utilisateur.
    • Plus tard, si l’utilisateur souhaite accéder à un autre service depuis le serveur principal, il enverra une seconde requête au serveur.
    • Maintenant, comme vous le voyez dans le diagramme, l’utilisateur envoie la deuxième demande au serveur pour accéder à la ressource protégée, mais à ce moment-là, le jeton a expiré, de sorte que le serveur répond à l’utilisateur final.
    • Enfin, comme vous le voyez dans la dernière partie du diagramme, l’utilisateur doit à nouveau se connecter et envoyer les informations d’identification de l’utilisateur au serveur d’authentification pour obtenir un nouveau jeton d’accès valide JWT et le stocker quelque part du côté client dans le stockage local et quelque chose de similaire dans l’URL codée Base64Url. De cette façon, le processus d’authentification normal fonctionnera.

    Scénario client-serveur avec jeton d’actualisation JWT

    Vous pouvez voir dans le diagramme suivant comment le jeton de rafraîchissement JWT fonctionnera étape par étape.Jeton 2

    • Tout d’abord, l’utilisateur enverra la demande au serveur d’authentification avec des informations d’identification telles que le nom d’utilisateur et le mot de passe.
    • Ensuite, le serveur d’authentification valide les informations d’utilisateur et les informations d’identification qui seront correctes, et le serveur fournira le jeton d’accès valide JWT et le jeton d’actualisation.
    • Ensuite, l’utilisateur stockera ce jeton quelque part du côté client dans le stockage local et quelque chose de similaire, selon les besoins et les exigences.
    • Plus tard, l’utilisateur envoie la première demande au serveur principal pour accéder aux ressources protégées avec le jeton d’accès valide JWT dans l’en-tête.
    • Ensuite, le serveur principal vérifie les rôles et les autorisations de l’utilisateur, comme la connexion que l’utilisateur est autorisé à utiliser pour accéder aux ressources protégées, et qui seront valides et appropriées. Ensuite, le serveur principal fournit la ressource protégée demandée à l’utilisateur final.
    • Dans l’intervalle, l’utilisateur envoie la deuxième requête au serveur principal pour accéder à un autre service. Si le jeton d’accès valide JWT a expiré, le serveur répondra à l’utilisateur final, comme vous le voyez dans l’image ci-dessus. Ensuite, l’utilisateur envoie la demande d’authentification au serveur d’authentification avec le « jeton d’actualisation » pour obtenir un nouveau jeton d’accès JWT.
    • Ensuite, le serveur validera les informations de l’utilisateur et fournira un nouveau jeton d’accès avec un jeton d’actualisation au nom d’utilisateur final, et les jetons d’actualisation auront plus de vie que le jeton d’accès valide JWT simple.

    Toutes les étapes ci-dessus sont exécutées en continu tout en naviguant dans l’application Web et en accédant aux nouveaux services et ressources sur Internet.

    Conclusion

    Cet article portait sur le jeton JWT et sur la façon dont les choses vont fonctionner pendant le processus d’authentification et d’autorisation.

    J’espère que vous comprenez tout ce qui concerne JWT et que vous en avez maintenant une idée de base.

    Bon codage !

    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.