# Visualiseur du flux OAuth 2.0 / OIDC à code d’autorisation avec PKCE

Simule de bout en bout le flux à code d’autorisation avec PKCE : génération verifier/challenge, URL d’autorisation, échange de token, liste de validation de l’ID Token et démonstration d’attaque par interception.

> Page canonique: https://elysiatools.com/fr/tools/oauth-oidc-authorization-code-pkce-flow-visualizer

- **Catégorie:** Development

- **Mots-clés:** visualiseur flux oauth, générateur pkce s256, validation id token, vérification at_hash, démo flux code autorisation, simulateur openid connect

## Présentation

Un simulateur hors ligne fidèle aux spécifications : dérivation du défi S256 de la RFC 7636, la liste de vérifications complète de l’OIDC Core §3.1.3.7 avec un vrai token HS256 et at_hash, un scénario d’attaque et une matrice de paramètres annotée. Aucun appel réseau ; une horloge de démonstration fixe garantit des sorties reproductibles.

## Entrées

- **Variante du flux** (select)
- **code_verifier (43-128 caractères unreserved, vide = exemple de la RFC)** (text): leave blank to use the RFC 7636 Appendix B example (43 chars)
- **URL de l’émetteur** (text): https://auth.example.com
- **client_id** (text): spa-demo-client
- **redirect_uri (doit correspondre exactement à l’enregistrement)** (text): http://127.0.0.1:8080/callback
- **scope (openid active OIDC)** (text): openid profile email
- **client_secret (clé de signature HS256 de démonstration)** (text): demo-secret-not-for-production
- **state (vide = valeur de démo déterministe)** (text): opaque CSRF token, echoed back on the callback
- **nonce (vide = valeur de démo déterministe)** (text): binds the ID Token to this authentication session
- **Simuler une attaque par interception du code** (checkbox)

## Quand l'utiliser

- Pour comprendre et tester pas à pas la dérivation cryptographique PKCE (S256 ou plain) et la construction des requêtes d'autorisation.
- Pour vérifier la conformité d'une implémentation OpenID Connect par rapport aux critères d'intégrité de l'ID Token (§3.1.3.7).
- Pour démontrer les risques de sécurité d'un flux sans PKCE face à l'interception du code d'autorisation sur un client public.

## Fonctionnement

- Configurez les paramètres du client (issuer, client_id, redirect_uri, scopes, secret de test) et choisissez la variante PKCE (S256, plain ou none).
- L'outil génère localement le code_challenge dérivé du code_verifier ainsi que les paramètres d'état (state, nonce) et construit l'URL de redirection.
- Le simulateur exécute l'échange de code contre des jetons et décode le JWT pour appliquer la liste de validation complète (iss, aud, signature, exp, at_hash).
- Le résultat HTML présente les étapes détaillées, la matrice des paramètres annotée et, si activé, le comportement d'un attaquant interceptant le code.

## Cas d'usage

- Formation et sensibilisation des développeurs à la sécurité des flux OAuth 2.0 / OIDC.
- Débogage et inspection visuelle des paramètres requis lors de l'intégration d'un fournisseur d'identité.
- Démonstration technique de la vulnérabilité d'interception de code et de son atténuation par PKCE.

## Questions fréquentes

### Comment est calculé le code_challenge en mode S256 ?

Il s'obtient en appliquant un hachage SHA-256 sur le code_verifier, puis en encodant le résultat binaire en Base64URL sans remplissage (=).

### Ce simulateur effectue-t-il des requêtes réseau réelles ?

Non, toutes les étapes, signatures HS256 et validations d'horodatage sont calculées localement de manière déterministe.

### À quoi sert la vérification du paramètre at_hash dans l'ID Token ?

Le champ at_hash garantit que l'access_token délivré correspond précisément à l'ID Token émis lors de la même réponse.

### Pourquoi la variante 'none' sans PKCE est-elle déconseillée pour les SPA ?

Sans PKCE, un tiers interceptant le code d'autorisation peut l'échanger sans prouver qu'il est l'initiateur légitime de la demande.

### Quelle est la longueur requise pour le code_verifier PKCE ?

Selon la RFC 7636, le code_verifier doit comporter entre 43 et 128 caractères non réservés (A-Z, a-z, 0-9, -, ., _, ~).

## Outils associés

- [Générateur de PKCE Code Verifier et Challenge](https://elysiatools.com/fr/tools/pkce-code-verifier-generator): Génère, valide et vérifie les paires code_verifier / code_challenge PKCE (RFC 7636) OAuth2 / OIDC. Trois modes : (1) générer une nouvelle paire depuis des octets aléatoires cryptographiques (256/384/512/768 bits), (2) auditer un verifier existant selon le RFC — longueur (43–128), charset \[A-Za-z0-9-._~\] et ≥256 bits d'entropie, et (3) vérifier une paire en recalculant BASE64URL(SHA256(verifier)). Construit en option l'URL complète de requête d'autorisation et le corps d'échange de token. Complète le nonce-generator générique (qui n'émet que la paire) avec l'audit de conformité RFC et la vérification de paire.
- [Generateur de phrases mnémoniques BIP39](https://elysiatools.com/fr/tools/mnemonic-bip39-generator): Genere ou valide des phrases BIP39 de 12 a 24 mots avec entropie et seed PBKDF2-HMAC-SHA512
- [Comparateur d’algorithmes de hachage](https://elysiatools.com/fr/tools/hash-algorithm-comparator): Hache la même entrée avec MD5, SHA-1, SHA-256, SHA-512, BLAKE2b et BLAKE3 et les compare : longueur, digest hex/Base64, statut de sécurité (cassé/moderne) et benchmark de vitesse relatif. Idéal pour l’enseignement, le choix d’algorithme ou la vérification de checksums.
- [Générateur de puzzles Kakuro / Fillomino / Masyu / Yajilin / Hashiwokakero / Nurikabe / Slitherlink / Star Battle avec preuve d'unicité](https://elysiatools.com/fr/tools/kakuro-fillomino-masyu-yajilin-hashiwokakero-nurikabe-slitherlink-and-star-battle-puzzle-generator-with-uniqueness-prover): Génère de façon déterministe par graine des puzzles de 8 familles Nikoli (même graine, même grille) : Kakuro dense, Fillomino, Masyu, Yajilin, Hashiwokakero, Nurikabe, Slitherlink et Star Battle ; chaque grille naît « solution d'abord » et se vérifie par un solveur exhaustif comptant les solutions jusqu'à deux — l'unicité est prouvée, et si le budget s'épuise elle est honnêtement « non prouvée » ; SVG puzzle + solution et difficulté par nœuds de recherche inclus.
- [Sync de palette Tailwind](https://elysiatools.com/fr/tools/tailwind-color-palette-sync): Entrez des HEX, choisissez le schéma de noms (échelle 50–950 / nom unique / imbrication) et générez le fragment theme.extend.colors de tailwind.config.ts avec les niveaux WCAG AA/AAA. Dark mode optionnel.
- [Générateur de codes TOTP / HOTP hors ligne](https://elysiatools.com/fr/tools/totp-hotp-offline-generator): Génère des mots de passe à usage unique TOTP RFC 6238 (6/8 chiffres, 30/60 s) et HOTP RFC 4226 (par compteur) à partir d’un secret base32, hors ligne, avec HMAC-SHA1/256/512, et exporte une URI otpauth://
- [Indice Thyroïdien (interprétation TSH/FT4/FT3)](https://elysiatools.com/fr/tools/thyroid-index): Interprète conjointement la TSH, la FT4 et (option) la FT3 pour évaluer l'axe thyroïdien. Référence adulte : TSH 0.4–4.0 mIU/L, FT4 0.8–1.8 ng/dL (≈10–23 pmol/L), FT3 2.3–4.2 pg/mL (≈3.5–6.5 pmol/L). TSH haute + FT4 basse → hypothyroïdie primaire franche (Hashimoto, post-ablation, carence iodée, amiodarone/lithium) ; TSH haute + FT4 normale → hypothyroïdie infraclinique ; TSH basse + FT4 haute (± FT3 haute) → hyperthyroïdie primaire franche (Basedow, nodule toxique, thyroidite précoce, iode/amiodarone) ; TSH basse + FT4 normale → hyperthyroïdie infraclinique ou hormone exogène ou thyroidite débutante — doser FT3 pour éliminer une T3-toxicose ; TSH normale/basse + FT4 basse → hypothyroïdie centrale (secondaire/tertiaire, atteinte hypophysaire/hypothalamique) ; TSH haute + FT4 haute → adénome à TSH ou résistance aux hormones thyroïdiennes ; tout normal → euthyroïdie (maladie non thyroïdienne : FT3 isolément basse). Précautions : rythme circadien de TSH (pic 22:00–02:00, nadir vespéral) ; dopamine, stéroïdes, maladie grave, cabergoline abaissent la TSH ; grossesse : seuils spécifiques par trimestre ; anticorps hétérophiles faussent TSH/FT4 ; amiodarone : thyrotoxicose de type 1 (iode) ou type 2 (destructive). Sources : ATA 2014/2016, NACB 2002, Garber 2012, MDCalc. Non un avis médical.
- [Générateur de hash de texte](https://elysiatools.com/fr/tools/text-hash-generator): Calcule MD5, SHA-1, SHA-256, SHA-512 et CRC-32 de tout texte d'un coup. Renvoie hex et Base64 sur l'encodage UTF-8.

## Exemples

- [Exemples de Commentaires de Code](https://elysiatools.com/fr/samples/code-comment-samples): Fichiers de code d'exemple avec différents styles de commentaires pour tester la suppression de commentaires
- [Exemples OAuth 2.0 & OpenID Connect](https://elysiatools.com/fr/samples/oauth-openid-connect): Exemples du framework d'autorisation OAuth 2.0 et du protocole d'authentification OpenID Connect
- [Exemples de Codes QR](https://elysiatools.com/fr/samples/qrcode-samples): Images de codes QR d'exemple pour tester les outils de lecture et de génération de codes QR
- [Exemples OAuth 2.0](https://elysiatools.com/fr/samples/oauth2-samples): Exemples d'implémentation OAuth 2.0 incluant les flux d'autorisation, configurations client et meilleures pratiques de sécurité
