redirect_uri pour rendre le contrôle à l’application après la connexion. Une fois l’URI chargée dans le navigateur de l’appareil, l’application se rouvre généralement automatiquement pour permettre à l’utilisateur de poursuivre son parcours.
Historiquement, les applications mobiles utilisaient des schémas d’URI personnalisés (par exemple, com.mycompany.myapp://oauth2redirect). Cependant, les schémas d’URI personnalisés représentent un risque, car plus d’une application sur l’appareil peut enregistrer le même schéma. Les systèmes d’exploitation mobiles n’incluent pas de mécanismes intégrés pour s’assurer que l’application qui reçoit la redirection est bien celle prévue. Dans ce scénario, des applications malveillantes peuvent usurper des applications légitimes et recevoir la réponse d’autorisation (y compris les jetons) à l’insu de l’utilisateur, en particulier si le SSO (Single Sign-On) est actif en raison de l’existence d’une session légitime précédente, auquel cas aucune interaction supplémentaire de l’utilisateur n’est requise. PKCE n’est pas vraiment utile dans ces scénarios, car l’application malveillante peut initier le flux de connexion et attendre de recevoir le rappel sans interaction de l’utilisateur.
Les applications s’exécutant sur une machine locale (par exemple, applications de bureau, interfaces de ligne de commande (CLI)) utilisent l’interface de boucle locale (loopback) pour les rappels (par exemple, http://127.0.0.1:51089/callback ou http://localhost:61024/callback) et sont exposées à un risque similaire. Dans ce cas, une autre application sur la même machine pourrait écouter sur le même port pour intercepter la réponse.
Nous appelons à la fois les schémas d’URI personnalisés et les URI de boucle locale des URI de rappel non vérifiables, car le serveur d’autorisation ne peut vérifier l’application destinataire dans aucun de ces scénarios.
Mesures d’atténuation recommandées pour les applications mobiles
URI HTTPS revendiquées (Universal Links / App Links)
- Universal Links sur iOS
- App Links sur Android
Auth0 recommande fortement d’utiliser des URI HTTPS revendiquées comme URI de redirection pour toutes les applications natives.
- Pour iOS : consultez Support Universal Links.
- Pour Android : consultez Android App Links.
Mesures d’atténuation recommandées pour toutes les applications
- Votre application ne peut pas prendre en charge les URI HTTPS déclarées en raison d’une compatibilité requise avec d’anciennes versions de systèmes d’exploitation mobiles.
- Votre application est une application de bureau ou une application CLI.
- Le
redirect_uriprésent dans la requête utilise une URI non vérifiable (c.-à-d. un schéma d’URI personnalisé ou une URI de bouclage). - L’utilisateur n’a pas vu d’autre écran dans la transaction de connexion en cours (par exemple lorsqu’un écran de consentement s’affiche pour des applications tierces, ou lorsque l’AMF (MFA) est requise).

Personnalisation de l’invite
- Accédez à Auth0 Dashboard > Applications > Application Settings > Advanced > OAuth.
- Faites défiler jusqu’au paramètre Non-Verifiable Callback URI End-User Confirmation.
- Activez le bouton bascule pour activer l’invite ou désactivez le bouton bascule pour désactiver l’invite.

- Accédez à Auth0 Dashboard > Settings > Advanced.
- Repérez le paramètre Non-Verifiable Callback URI End-User Confirmation.
- Activez le bouton bascule pour désactiver l’invite ou désactivez le bouton bascule pour activer l’invite.
