Outils de développement · Décodeur JWT
Jeton d'identification et jeton d'accès : pourquoi un OpenID Connect JWT n'est pas une clé API
· Contexte
jwt authentification authentification
Les deux peuvent être des JWT du même fournisseur, mais ils répondent à des questions différentes. Cet article explique ce que contiennent chacun un jeton d'identification et un jeton d'accès, qui doit les consommer et comment les distinguer par décodage.
L'API rejette un jeton qui semble parfaitement valide, car il n'a jamais été destiné à l'API
Une API peut rejeter un jeton bien formé et correctement signé, car ces informations d'identification ont été émises pour un autre consommateur et à d'autres fins. « C'est un JWT » décrit un format possible, pas l'autorisation de l'envoyer partout. Les jetons d'identification et les jetons d'accès répondent à différentes questions dans un flux d'identité.
ToolAcre peut exposer des modèles d'en-tête et de charge utile qui prennent en charge le débogage, mais il ne peut pas authentifier le jeton ni valider un profil OpenID Connect. La classification finale doit provenir du contrat du fournisseur, du flux d'émission et du résultat de la vérification fiable plutôt que d'une inspection visuelle.
Les revendications de jetons d'identification peuvent suggérer une utilisation d'identité ; ce décodeur générique ne valide pas un profil OpenID Connect
Un jeton d'ID communique des informations d'authentification au client qui a demandé la connexion. Selon le profil, les revendications visibles peuvent inclure un nom occasionnel, une heure d'authentification, des méthodes d'authentification ou un hachage lié à un autre jeton. Ces champs ne sont pas des autorisations d'API génériques.
Le décodeur traite `auth_time` comme un champ temporel et affiche les autres noms comme spécifiques à l'application, à moins qu'ils ne fassent partie de ses sept principaux. Il ne valide pas le nonce, `at_hash`, `amr` ou la sémantique de l'audience client. Une charge utile d'identité lisible reste non fiable jusqu'à ce que le client la valide correctement.
Les jetons d'accès peuvent être des JWT ou opaques ; seuls les JWT en trois parties conviennent à ce décodeur
Un jeton d'accès autorise les appels vers un serveur de ressources sous un système d'autorisation. Il peut s'agir d'un JWT ou d'une chaîne opaque. Seule la forme signée en trois parties correspond au parcours de ToolAcre ; un jeton opaque n'a pas de structure générale côté client à décoder et ne doit pas être forcé via cet outil.
Un jeton d'accès JWT peut contenir des informations d'audience et de portée, mais ces valeurs nécessitent une vérification authentifiée et une stratégie de ressources. Le panneau du navigateur n'implémente pas de serveur de ressources et ne peut pas dire si une étendue autorise une opération particulière.
Jetons d'actualisation – généralement opaques, jamais destinés à être décodés et à ne jamais être envoyés à une API
Un jeton d'actualisation prend en charge l'obtention d'informations d'identification d'accès de remplacement selon les règles du fournisseur. Il est généralement opaque et n’est pas destiné aux API de ressources. Il s’agit également d’un titre de grande valeur, donc le coller dans un décodeur crée un risque sans avantage diagnostique fiable.
N'en déduisez pas que chaque valeur en forme de jeton doit être décodée. Utilisez les outils du fournisseur et les journaux contrôlés pour les échecs d’actualisation. L'avertissement explicite de ToolAcre contre les jetons de production s'applique ici avec une force particulière, et son analyseur à trois segments n'offre aucune opération d'actualisation.
Les audiences diffèrent : l'ID client dans un jeton d'identification par rapport à la ressource dans un jeton d'accès
L'audience est un indice puissant car le consommateur visé diffère. Un jeton d'identification cible souvent le client, tandis qu'un jeton d'accès cible une ressource. Les identifiants et représentations exacts dépendent du fournisseur et du profil, c'est pourquoi cet article n'invente pas de modèle de chaîne universel.
Un en-tête `typ` peut également fournir une étiquette explicite, mais il reste une donnée contrôlée par jeton jusqu'à vérification. ToolAcre avertit uniquement lorsqu'une chaîne `typ` diffère de `JWT` ; il ne reconnaît pas chaque étiquette de profil et n'en transforme pas une en décision d'autorisation.
Exemple concret : comparer les champs visibles sans les traiter comme une preuve du type de jeton
Décodez deux exemples synthétiques : l'un portant des revendications d'authentification orientées client et l'autre portant une audience et une portée de ressource. Enregistrez les différences dans `aud`, `typ` et les noms de charge utile. L’exercice enseigne quoi demander à l’émetteur, et non comment prouver l’identité de l’un ou l’autre exemple.
Un jeton fabriqué peut copier les mêmes étiquettes, et un jeton réel peut utiliser des conventions spécifiques au fournisseur. Confirmez le type à partir de la réponse d’émission et de la documentation, puis validez-le auprès du consommateur prévu. Le résultat du décodeur constitue une preuve à l’appui, jamais l’autorité décisionnelle.
Ce que cela ne couvre pas : les flux OAuth qui émettent ces jetons, qui constituent un sujet distinct
Cette comparaison n'explique pas le code d'autorisation, l'appareil ou les autres flux qui émettent des jetons. Il ne couvre pas non plus les étapes de validation spécifiques au fournisseur, l’introspection opaque des jetons d’accès ou la rotation des actualisations. Ces sujets dépendent de l'écosystème sélectionné et du déploiement.
Gardez la question de débogage immédiate étroite : quelles informations d'identification le client a-t-il reçues, qui est son consommateur prévu et quel composant de confiance le valide ? Répondre à ces trois questions empêche une forme générique JWT d'effacer les rôles de protocole.
À retenir : regardez aud et tapez avant d'envoyer - le décodeur ToolAcre JWT vous permet de vérifier quel type de jeton vous détenez
Examinez l'audience et tapez avant d'envoyer un jeton, mais ne faites confiance à aucun des deux champs jusqu'à ce que la vérification réussisse. Un jeton d'identification appartient à sa limite de validation client ; un jeton d'accès appartient à son serveur de ressources. Un jeton d’actualisation appartient au processus d’actualisation du fournisseur, pas à une API.
ToolAcre permet de lire des exemples sûrs en trois parties et ne prétend pas les classer ou les valider. Utilisez-le pour repérer les erreurs probables, puis laissez le flux documenté et le vérificateur configuré indépendamment établir le véritable objectif des informations d'identification.