authentication oauth saml jwt bearer-token security decoding

Guide de décodage des jetons d'authentification : OAuth, SAML et jetons Bearer

Un guide technique pour décoder et déboguer les jetons d'authentification modernes. Apprenez à analyser les jetons d'accès OAuth, les assertions SAML et les jetons Bearer pour l'analyse de sécurité.

Guide de décodage des jetons d'authentification : OAuth, SAML et jetons Bearer

Dans le développement web moderne, l'authentification se résume rarement à un simple nom d'utilisateur et un mot de passe. Au lieu de cela, les systèmes échangent des « jetons » (tokens) — des chaînes opaques ou semi-transparentes qui transportent des données d'identité et de permission. Lors du débogage des flux d'authentification ou de la réalisation d'audits de sécurité, être capable de décoder et d'inspecter ces jetons est une compétence critique.

Ce guide explore la structure technique des jetons d'authentification les plus courants et la manière de les décoder.


1. Le jeton Bearer (JWT et au-delà)

Le jeton Bearer (porteur) est la méthode la plus courante pour authentifier les requêtes API. Il est généralement envoyé dans l'en-tête Authorization :

Authorization: Bearer <token>

Qu'est-ce qu'un jeton Bearer ?

Un jeton Bearer est un jeton de sécurité qui accorde l'accès à quiconque le « porte ». C'est comme une clé physique ; le système ne se soucie pas de savoir qui vous êtes, seulement que vous possédez la clé.

Décodage des jetons Bearer

La plupart des jetons Bearer modernes sont des JWT (JSON Web Tokens). Un JWT se compose de trois parties encodées en Base64Url :

  1. Header (En-tête) : Métadonnées sur le jeton (algorithme, type).
  2. Payload (Charge utile) : Les « claims » ou revendications (ID utilisateur, expiration, portées).
  3. Signature : Preuve cryptographique que le jeton n'a pas été altéré.

Pour décoder un JWT manuellement, vous pouvez diviser la chaîne par les points et utiliser un décodeur Base64Url sur les deux premières parties. Pour une expérience plus visuelle, vous pouvez utiliser un Décodeur JWT.


2. Décodage des jetons OAuth

OAuth 2.0 utilise plusieurs types de jetons, mais celui que vous rencontrerez le plus souvent est le jeton d'accès (Access Token).

Jetons opaques vs structurés

  • Jetons structurés (JWT) : Comme décrit ci-dessus, ils peuvent être décodés localement pour voir les données de l'utilisateur.
  • Jetons opaques : Ce sont des chaînes aléatoires (comme ghp_... pour GitHub) qui n'ont aucune signification pour le client. Ils ne peuvent être « décodés » que par le serveur d'autorisation qui les a émis, généralement via un point de terminaison d'introspection (Introspection Endpoint).

Comment inspecter un jeton OAuth

Si le jeton est un JWT, suivez le processus de décodage standard du JWT. S'il est opaque, vous devrez peut-être consulter la documentation du fournisseur spécifique (Google, Microsoft, GitHub) pour voir s'il propose un outil de débogage ou une API pour inspecter les métadonnées du jeton (portées, expiration, etc.).


3. Décodeur d'assertion SAML

SAML (Security Assertion Markup Language) est le grand frère du JWT, basé sur le XML. Il est massivement utilisé dans l'authentification unique (SSO) en entreprise.

Le flux SAML

Lorsque vous vous connectez via SAML, le fournisseur d'identité (IdP) envoie une SAMLResponse à votre application, généralement sous la forme d'un champ de formulaire caché.

Comment décoder une assertion SAML

Une assertion SAML est généralement un document XML encodé en Base64.

  1. Décodage Base64 : Reconvertissez la chaîne en XML brut.
  2. Mise en forme (Pretty Print) : Formatez le XML pour qu'il soit lisible.
  3. Inspecter les revendications : Recherchez <saml:AttributeStatement> pour trouver l'e-mail de l'utilisateur, ses rôles et d'autres attributs.

Comme les assertions SAML sont en XML, elles sont beaucoup plus verbeuses que les JWT et incluent souvent des signatures numériques (<ds:Signature>) et parfois du chiffrement.


4. Décodeur d'authentification de base (Basic Auth)

Bien qu'ancienne, l'authentification de base est encore courante pour les API simples ou les outils internes.

Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=

Décodage du Basic Auth

La chaîne après Basic est une simple chaîne encodée en Base64 au format nom_utilisateur:mot_de_passe. Pour la décoder :

  1. Prenez la chaîne dXNlcm5hbWU6cGFzc3dvcmQ=.
  2. Décodez-la en Base64 pour obtenir nom_utilisateur:mot_de_passe.

Tableau récapitulatif : Le décodage des jetons en un coup d'œil

Type de jeton Préfixe d'en-tête Format Méthode de décodage
JWT Bearer JSON / Base64Url Décodage Base64Url + Analyse JSON
OAuth (opaque) Bearer Chaîne aléatoire API d'introspection de jeton
SAML N/A (Formulaire) XML / Base64 Décodage Base64 + Analyse XML
Basic Auth Basic Chaîne / Base64 Décodage Base64

Conclusion

Comprendre comment décoder les jetons d'authentification est essentiel pour résoudre les erreurs « Non autorisé » et s'assurer que votre application transmet les bonnes permissions. Que vous ayez affaire à un JWT moderne ou à une assertion SAML héritée, la première étape consiste toujours à identifier l'encodage (généralement Base64) et le format sous-jacent (JSON ou XML).

Besoin d'un moyen rapide d'inspecter un jeton ? Utilisez notre Décodeur JWT pour analyser vos jetons en toute sécurité, localement dans votre navigateur.