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.
- ne peuvent pas stocker un renvoyé. 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 de votre part renvoyé.
- 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.
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.
Si la Rotation des jetons d’actualisation est activée, un nouveau jeton d’actualisation est généré pour chaque demande et émis en même temps que le jeton d’accès. Lorsqu’un jeton d’actualisation est échangé, le jeton d’actualisation précédent est invalidé, mais les informations concernant leur relation sont conservées par le serveur d’autorisations.
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 uniqueLes progrès récents en matière de contrôle de la vie privée dans les navigateurs ont un impact négatif sur l’expérience de l’utilisateur en empêchant l’accès aux témoins tiers; par conséquent, les flux basés sur les navigateurs doivent utiliser la Rotation des jetons d’actualisation, qui offre une méthode sécurisée pour utiliser les jetons d’actualisation dans les SPA, tout en fournissant un accès intégré aux ressources sans interruption dans l’expérience utilisateur causée par les technologies de confidentialité comme ITP.