RFC 7636 - Proof Key for Code Exchange by OAuth Public Clients
Date de publication : Septembre 2015
Statut : Standards Track
Auteurs : N. Sakimura (Nomura Research Institute), J. Bradley (Ping Identity), N. Agarwal (Google)
Résumé
Les clients publics OAuth 2.0 utilisant l'octroi de code d'autorisation (Authorization Code Grant) sont susceptibles à l'attaque d'interception du code d'autorisation. Cette spécification décrit cette attaque ainsi qu'une technique pour atténuer cette menace grâce à l'utilisation de la clé de preuve pour l'échange de code (Proof Key for Code Exchange, PKCE, prononcé "pixy").
Table des matières
- 1. Introduction
- 1.1 Flux du protocole
- 2. Conventions de notation
- 3. Terminologie
- 3.1 Abréviations
- 4. Protocole
- 4.1 Le client crée un vérificateur de code
- 4.2 Le client crée le défi de code
- 4.3 Le client envoie le défi de code avec la demande d'autorisation
- 4.4 Le serveur retourne le code
- 4.5 Le client envoie le code d'autorisation et le vérificateur de code au point de terminaison de jeton
- 4.6 Le serveur vérifie code_verifier avant de retourner les jetons
- 5. Compatibilité
- 6. Considérations IANA
- 6.1 Registre des paramètres OAuth
- 6.2 Registre des méthodes de défi de code PKCE
- 7. Considérations de sécurité
- 7.1 Entropie du code_verifier
- 7.2 Protection contre les espions
- 7.3 Saler le code_challenge
- 7.4 Considérations de sécurité OAuth
- 7.5 Considérations de sécurité TLS
- 8. Références
- 8.1 Références normatives
- 8.2 Références informatives
Annexes
- Annexe A. Notes sur l'implémentation de l'encodage Base64url sans remplissage
- Annexe B. Exemple pour la méthode code_challenge_method S256
Ressources connexes
- RFC officiel : RFC 7636
- Page officielle : RFC 7636 DataTracker
- Errata : RFC Editor Errata