Qu'est-ce qu'un jeton opaque?

9

Et qu'est-ce que cela signifie qu'ils sont dans un "format propriétaire"? Je lis sur les jetons d'actualisation JWT et ce sont des jetons opaques, mais je ne comprends pas le terme.

sloneorzeszki
la source

Réponses:

14

Un JWT a un contenu lisible, comme vous pouvez le voir par exemple sur https://jwt.io/ . Tout le monde peut décoder le jeton et y lire les informations. Le format est documenté dans la RFC 7519 .

En revanche, un jeton opaque a un format qui n'est pas destiné à être lu par vous. Seul l'émetteur connaît le format.

Le sens du mot donne déjà un indice:

opaque / ə (ʊ) ˈpeɪk / adjectif

ne peut pas être vu à travers; pas transparent.

Voici une citation de https://auth0.com/docs/tokens :

Jetons opaques: jetons dans un format propriétaire qui contiennent généralement un identifiant à des informations dans le stockage persistant d'un serveur. Pour valider un jeton opaque, le destinataire du jeton doit appeler le serveur qui a émis le jeton.

Un "jeton de rafraîchissement JWT opaque" est une contradiction selon la définition ci-dessus. Ce que l'on veut dire ici, c'est que dans certains frameworks JWT, seul le jeton d'authentification est un JWT, mais en tant que jeton d'actualisation, ils utilisent des jetons opaques.

jps
la source
Je vous remercie. Je pense que ce qui m'a dérouté, c'est la partie signature, qui est cryptée, donc pas vraiment lisible en soi. J'ai également trouvé une excellente explication ici: community.apigee.com/questions/21139/jwt-vs-oauth.html
sloneorzeszki
1
@sloneorzeszki Dans l' explication que vous avez liée, un opaque tokenest décrit comme une chaîne aléatoire qui ne sert que de pointeur vers des informations stockées côté serveur. Ce type de jeton est décrit ici comme reference tokenalors qu'un opaque tokenpourrait contenir des informations chiffrées (lisibles uniquement pour l'émetteur d'origine). Il y a donc des définitions légèrement différentes dont nous devons être conscients.
jps
0

Ici, le terme "opaque" signifie que la chaîne (qui sert de jeton) est comme une référence (dans les POO), ou un pointeur (dans C), ou des clés étrangères (dans les bases de données relationnelles). c'est-à-dire que vous avez besoin d'un contenu externe pour le résoudre.

Simple contre composite:

La chaîne est une chaîne "simple", contrairement à JWS, où est "composite"; Il a des parties "à l'intérieur".

À l'intérieur par rapport à l'extérieur:

Vous pouvez en extraire une charge utile (avec des revendications, etc.) sans faire référence à un serveur ou un stockage externe, "en dehors" de cette chaîne.

Puisqu'un jeton opaque est une simple chaîne, il n'est qu'une référence, par conséquent, naturellement, son format est entièrement arbitrairement déterminé par le serveur qui le délivre (d'où le terme "format propriétaire"). La chaîne de jeton est déterminée au moment de la création du contenu sous-jacent (auquel il est fait référence), c'est-à-dire lorsqu'elle est associée (associée) au contenu auquel ce jeton (en tant que référence ou clé étrangère) fait référence.

Sohail Si
la source