Accueil Architecture Comprendre le concept de JWT – JSON Web Tokens

Comprendre le concept de JWT – JSON Web Tokens

0
117

JWT ou JSON Web Token est une norme ouverte (RFC 7519) qui est utilisée pour transférer des informations de manière sécurisée entre deux parties.

Pour comprendre le concept détaillé de JWT, il est très important de connaître d’abord les jetons de session.

Les jetons de session (Session Tokens) sont une chaîne unique cryptée qui est utilisée pour identifier les instances de session. Regardez l’exemple compréhensible ci-dessous.

Pensez à un service d’assistance à la clientèle dans une ville, si une personne (A) y entre qui a des questions pour parler avec des représentants. Au départ, la personne parle de tous ses problèmes et de ses questions, puis normalement, le service d’assistance prend note de toutes les questions posées par un client particulier sur une seule feuille de papier ou dans une base de données. Le but est de fournir au client un numéro d’identification du client ou un numéro d’identification du dossier qui contient toutes les informations sur les questions ou les problèmes, car cela permet au service d’assistance de rechercher un dossier particulier beaucoup plus rapidement la prochaine fois que le même client se présente pour obtenir une solution.

Pensons maintenant à la même procédure avec les clients et les serveurs

Pensez à n’importe quel site web qui contient des formulaires d’inscription, ici une fois que l’utilisateur entre dans un site web particulier et s’enregistre avec ses données. Ces données arrivent directement sur le serveur et le serveur envoie un jeton pour ce navigateur particulier. Le jeton est stocké dans le cookie du navigateur et peut être valide jusqu’à ce que l’utilisateur se déconnecte ou jusqu’à une période quelconque. Ce jeton valide et aide l’utilisateur à accéder à toutes les demandes ultérieures qu’il fait.

Cette méthode de validation et d’autorisation de l’utilisateur était tout à fait appropriée, mais l’utilisation de jetons de session présentait un inconvénient majeur. Prenons un exemple de système de banque en ligne, imaginons un scénario dans lequel une personne se connecte avec ses identifiants sur un site bancaire, le serveur (A) transmet un jeton de session au navigateur et, par conséquent, seul le serveur (A) autorise l’utilisateur actuel, car il dispose d’un jeton de session valide correspondant. Et si une demande ultérieure était transmise au serveur (B), il y aurait un conflit car le serveur (B) ne connaît pas les jetons historiques. Cet inconvénient a donné naissance à JWT.

Jetons Web JSON

Plongeons directement dans le même exemple

Si une personne a des problèmes pour demander un représentant, elle se rendra au service de soins. De même, le représentant notera tous les problèmes avec une signature ou un numéro d’identification du client, de sorte que si un client entre dans le service la prochaine fois, le représentant devra identifier les problèmes après avoir vérifié la signature ou le numéro d’identification du client. Mais dans ce cas, le document serait remis aux clients, qui doivent l’apporter chaque fois qu’ils entrent dans le service. Cela évite la complexité à laquelle un représentant serait confronté au moment de rechercher l’identification d’un client particulier et bien d’autres choses encore.

Maintenant, pensons à la même procédure avec les clients et les serveurs

Dans ce cas, une fois qu’un utilisateur s’enregistre ou se connecte avec ses identifiants, un serveur génère un jeton JWT et l’affecte avec les données, puis le transmet au côté client. Ce jeton ne peut être vérifié que par le serveur, qui, côté client, le stocke dans les cookies des navigateurs et aide le navigateur ou le client à accéder à toutes les demandes ultérieures en un rien de temps. Cela apporte une grande fiabilité aux utilisateurs et facilite le processus d’authentification.

Structure de JWT

La structure de JWT doit être divisée en trois parties

1. En-têtes (Headers)

Habituellement, les en-têtes sont la première partie des JWT qui consistent en un algorithme utilisé pour coder les JWT et le type de jeton qui est JWT par défaut.

2. Payload

La section « Payload » est la partie centrale des jetons web JSON, qui se compose des données de l’utilisateur, qui sont transmises entre le client et le serveur.

3. Signature

La signature est la troisième partie du JWT qui est créée par le serveur, et utilisée pour valider les demandes, faites par l’utilisateur. Pour créer la signature, l’en-tête codé en base-64 et la charge utile sont pris, ainsi qu’une clé secrète et signée avec les algorithmes spécifiés dans l’en-tête.

Cette JWT entière est intégrée dans un type de chaîne et ces 3 parties sont séparées par des points (.).

AUCUN COMMENTAIRE

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici