Aller au contenu
ecdsa.com

PKCE (clé de preuve pour l’échange de code)

L’extension OAuth de la RFC 7636 dans laquelle le client envoie un condensat d’un code_verifier aléatoire avec la requête d’autorisation, puis le code_verifier lui-même avec la requête de jeton, de sorte qu’un code d’autorisation intercepté est inutilisable.
Autres graphiesPKCEProof Key for Code Exchangecode_verifiercode_challengeS256

Le client génère un vérificateur code_verifier de 43 à 128 caractères pris dans l’alphabet des caractères non réservés des URL, envoie code_challenge = BASE64URL(SHA256(code_verifier)) avec code_challenge_method=S256 dans la requête d’autorisation, puis prouve qu’il le possède en envoyant le vérificateur au point de terminaison de jeton. La méthode plain envoie le vérificateur lui-même comme challenge et ne devrait pas être utilisée.

Conçu pour les applications mobiles, où d’autres applications pourraient intercepter les URI de redirection, PKCE bloque aussi l’injection de code d’autorisation dans les applications web : la RFC 9700 le recommande donc pour tous les clients, et le projet OAuth 2.1 l’exige. Il ne remplace pas l’authentification des clients confidentiels, et le serveur d’autorisation doit rejeter les requêtes de jeton qui omettent le vérificateur lorsqu’un challenge a été envoyé.

Normes et références

Tous les termes