OAuth2 PKCE

Advanced Ecosystem 🟡 Mid

Définition

Extension d'OAuth 2.0 (Proof Key for Code Exchange, RFC 7636) qui protège le flux Authorization Code contre l'interception du code : le client envoie un code_challenge (SHA-256 d'un code_vérifier aléatoire) puis prouve qu'il détient le vérifier à l'échange du jeton. OAuth 2.1 rend PKCE obligatoire pour tous les clients, publics comme confidentiels.

Analogie

Envoyer un cadenas ouvert avec la demande, puis prouver qu'on a la clé en l'ouvrant lors de l'échange.

Exemple de code

const verifier = generateRandomString(128);
const challenge = base64url(sha256(verifier));
// Step 1: Send challenge
`&code_challenge=${challenge}&code_challenge_method=S256`
// Step 2: Send verifier to get token
`&code_verifier=${verifier}`

Cas d'usage

Sécuriser le flow OAuth2 dans les SPA et apps mobiles qui ne peuvent pas garder un client_secret.

Anti-pattern

Utiliser le flow Implicit ou Authorization Code sans PKCE dans une application publique (SPA, mobile).
#security#authentication

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre