Flux de code d’autorisation avec Proof Key for Code Exchange (PKCE)
Overview
Principaux concepts
Découvrez le type d’autorisation OAuth 2.0, le Flux de code d’autorisation avec Proof Key for Code Exchange (PKCE).
Utilisez ce type d’aurorisation pour les applications incapables de stocker un secret client, comme les applications natives ou à page unique.
Passez en revue différentes méthodes d’implémentation avec les trousses SDK Auth0.
Lorsque des clients publics (par exemple, des applications natives et monopages) demandent des jetons d’accès, d’autres problèmes de sécurité se posent, qui ne sont pas atténués par le seul flux de code d’autorisation. La raison en est que les
applications natives
ne peuvent pas stocker un Secret clientrenvoyé. La décompilation de l’application révèle le secret client, qui est associé à l’application et qui est le même pour tous les utilisateurs et tous les appareils.
Peut utiliser un schéma d’URL personnalisé pour capturer des redirections (par ex., MyApp://) permettant potentiellement à des applications malveillantes de recevoir une Code d’autorisation de votre part Serveur d’autorisations :renvoyé.
Applications à page unique
Ne peuvent pas stocker de manière sécurisée un secret client parce que l’intégralité de leur source est accessible au navigateur.
Compte tenu de ces situations, OAuth 2.0 fournit une version du flux de code d’autorisation qui utilise une Proof Key for Code Exchange (PKCE) (définie dans OAuth 2.0 RFC 7636).
Le flux de code d’autorisation amélioré par la PKCE introduit un secret créé par l’application appelante qui peut être vérifié par le serveur d’autorisations; ce secret est appelé le vérificateur de code. En outre, l’application appelante crée une valeur de transformation du Vérificateur de code appelée Défi de code et envoie cette valeur via HTTPS pour récupérer un code d’autorisation. De cette manière, un attaquant malveillant ne peut intercepter que le code d’autorisation et ne peut pas l’échanger contre un jeton sans le Vérificateur de code.
Fonctionnement
Étant donné que le flux de code d’autorisation amélioré par la PKCE s’appuie sur le flux de code d’autorisation standard , les étapes sont très similaires.

L’utilisateur clique sur Connexion dans l’application.
La trousse SDK Auth0 crée un
code_verifier
à chiffrement aléatoire et génère à partir de celui-ci uncode_challenge
.La trousse SDK Auth0 redirige l’utilisateur vers le serveur d’autorisation Auth0 (
/authorize
) avec lecode_challenge
.Votre serveur d’autorisations Auth0 redirige l’utilisateur vers l’invite de connexion et d’autorisation.
L’utilisateur s’authentifie en choisissant l’une des options de connexion configurées et peut voir apparaître une page de consentement énumérant les autorisations qu’Auth0 accordera à l’application.
Votre serveur d’autorisations Auth0 stocke le
code_challenge
et redirige l’utilisateur vers l’application avec uncode
d’autorisation, qui est valable pour une seule utilisation.La trousse SDK Auth0 envoie ce
code
et lecode_verifier
(créé à l’étape 2) au serveur d’autorisations Auth0(
/oauth/token
).Votre serveur d’autorisations Auth0 vérifie le
code_challenge
et lecode_verifier
.Votre serveur d’autorisations Auth0 répond avec un jeton d’ID et un jeton d’accès (et éventuellement un jeton d’actualisation).
Votre application peut utiliser le jeton d’accès pour appeler une API afin d’accéder aux informations concernant l’utilisateur.
L’API répond avec les données demandées.
Comment la mettre en œuvre?
La manière la plus simple de mettre en œuvre le flux de code d’autorisation avec PKCE est de suivre notre Guide rapide pour applications natives ou de suivre notre Guide rapide pour applications monopages.
En fonction de l’application que vous souhaitez utiliser, vous pouvez également recourir à nos trousses SDK pour applications mobiles ou pour applications à page unique :
Mobile
Page unique
Vous pouvez suivre nos tutoriels pour utiliser nos points de terminaison d’API pour Ajouter une connexion en utilisant le flux de code d’autorisation avec PKCE ou Appeler votre API en utilisant le flux de code d’autorisation avec PKCE.