> ## Documentation Index
> Fetch the complete documentation index at: https://docs-staging-chore-actions-triggers-autoupdate.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Décrit comment utiliser des liens universels plutôt que des schémas d’URL personnalisés pour vérifier la légitimité des données d’authentification.

# Mesures contre l’usurpation d’application

Les applications natives utilisent le [flux de code d’autorisation avec PKCE](/docs/fr-ca/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce) pour l’authentification et emploient un `redirect_uri` pour redonner le contrôle à l’application après la connexion. Une fois l’URI chargée dans le navigateur de l’appareil, l’application s’ouvre généralement automatiquement pour permettre à l’utilisateur de poursuivre son parcours.

Historiquement, les applications mobiles utilisaient des [schémas d’URI personnalisés](https://developers.google.com/identity/protocols/oauth2/native-app#installed_app_redirect_methods) (p. ex., `com.mycompany.myapp://oauth2redirect`). Cependant, les schémas d’URI personnalisés pré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’offrent pas de mécanismes intégrés pour garantir que l’application qui reçoit la redirection est bien celle qui était visée. Dans ce scénario, des applications malveillantes se font passer pour des applications légitimes et reçoivent la réponse d’autorisation (y compris les jetons) à l’insu de l’utilisateur, surtout si l’authentification unique (SSO) est active en raison d’une session légitime existante, auquel cas aucune interaction supplémentaire de l’utilisateur n’est requise. PKCE n’est pas vraiment utile dans ces scénarios, puisque l’application malveillante peut lancer le flux de connexion et attendre de recevoir le rappel sans interaction de l’utilisateur.

Les applications qui s’exécutent sur une machine locale (p. ex., des applications de bureau, des CLI) utilisent l’interface de bouclage pour les URI de rappel (p. ex., [http://127.0.0.1:51089/callback](http://127.0.0.1:51089/callback) ou [http://localhost:61024/callback](http://localhost:61024/callback)) et sont exposées à un risque semblable. Dans ce cas, une autre application sur la même machine pourrait écouter sur le même port pour intercepter la réponse.

Nous désignons à la fois les schémas d’URI personnalisés et les URI de bouclage comme des URI de rappel non vérifiables, car le serveur d’autorisation ne peut pas vérifier l’application qui les reçoit dans l’un ou l’autre de ces scénarios.

<h2 id="recommended-mitigations-for-mobile-applications">
  Mesures d’atténuation recommandées pour les applications mobiles
</h2>

<h3 id="claimed-https-uris-universal-links-app-links">
  URI HTTPS revendiquées (Universal Links / App Links)
</h3>

Les systèmes d’exploitation mobiles modernes prennent en charge les **URI HTTPS revendiquées**, ce qui vous permet d’associer à votre application mobile un domaine de site Web que vous contrôlez. Les URI HTTPS revendiquées sont appelées :

* Universal Links sur iOS
* App Links sur Android

Les URI HTTPS revendiquées garantissent que seule votre application peut traiter l’URL de rappel associée et protègent contre tout accès non autorisé à des données d’authentification sensibles.

<Note>
  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](https://developer.apple.com/documentation/xcode/allowing-apps-and-websites-to-link-to-your-content/#Support-universal-links).
  * Pour Android : consultez [Android App Links](https://developer.android.com/training/app-links).
</Note>

<h2 id="recommended-mitigations-for-all-application">
  Mesures d’atténuation recommandées pour toutes les applications
</h2>

Auth0 ne peut pas vérifier la légitimité de l’application qui reçoit les résultats de la transaction d’authentification si :

* Votre application ne peut pas prendre en charge les URI HTTPS revendiquées en raison de la compatibilité requise avec d’anciennes versions de systèmes d’exploitation mobiles
* Votre application est une application de bureau ou une application CLI

Comme le définit la spécification [OAuth2 for Native Apps](https://datatracker.ietf.org/doc/html/rfc8252#section-8.6), Auth0 fournit un mécanisme permettant d’afficher une invite de confirmation à l’utilisateur. Les utilisateurs confirment ainsi que l’application qui reçoit le résultat de l’authentification est bien celle à laquelle ils voulaient accéder. Lorsqu’un URI de rappel non vérifiable est utilisé, l’utilisateur est invité à vérifier l’application lors de chaque transaction d’authentification.

L’écran de confirmation s’affiche lorsque :

1. Le `redirect_uri` présent dans la requête utilise un URI non vérifiable (c.-à-d. un schéma d’URI personnalisé ou un URI de bouclage).
2. L’utilisateur n’a vu aucun autre écran dans la transaction de connexion en cours (par exemple, lorsqu’un [écran de consentement](/docs/fr-ca/get-started/applications/third-party-applications/user-consent-and-third-party-applications) s’affiche pour les applications tierces, ou lorsqu’une MFA est requise).

Dans ces cas, l’application affiche une invite de confirmation à l’utilisateur final.

<Frame>
  <img src="https://mintcdn.com/docs-staging-chore-actions-triggers-autoupdate/4dCa45r2UuWBoNnL/docs/images/cdy7uua7fh8z/consent-pompt-uris.png?fit=max&auto=format&n=4dCa45r2UuWBoNnL&q=85&s=eccbdc1d456174c0226db4c97b4ac73c" alt="Mesures contre l’usurpation d’applications - Invite de confirmation" width="298" height="408" data-path="docs/images/cdy7uua7fh8z/consent-pompt-uris.png" />
</Frame>

L’invite de confirmation n’est pas affichée dans les flux Legacy non conformes à OIDC. Pour savoir comment appliquer une protection renforcée à vos tenants et à vos applications, consultez [Adopt OIDC-Conformant Authentication](/docs/fr-ca/authenticate/login/oidc-conformant-authentication).

<h4 id="prompt-customization">
  Personnalisation de l’invite
</h4>

L’invite de confirmation utilise votre image de marque personnalisée ainsi que les configurations définies pour les écrans de consentement existants utilisés par des applications tierces. Pour en savoir plus, consultez la section Prompts de [Customize Universal Login Page Templates](/docs/fr-ca/customize/login-pages/universal-login/customize-templates).

<Warning>
  Auth0 **recommande fortement** de ne pas désactiver cette protection en production. Des applications malveillantes sur l’appareil pourraient demander des `id_tokens` et des `access_tokens` sans aucune interaction de l’utilisateur ni aucun autre signe qu’il s’est passé quelque chose.
</Warning>

Vous pouvez configurer l’invite de confirmation dans les paramètres globaux du tenant ou au niveau de l’application. Les paramètres au niveau de l’application prévalent sur le paramètre global du tenant.

**Au niveau de l’application**

1. [Accédez à Auth0 Dashboard > Applications > Paramètres de l’application > Avancé > OAuth](https://manage.auth0.com/#/applications/settings).
2. Faites défiler jusqu’au paramètre **Non-Verifiable Callback URI End-User Confirmation**.
3. Activez la bascule pour activer l’invite, ou désactivez-la pour la désactiver.

<Frame>
  <img src="https://mintcdn.com/docs-staging-chore-actions-triggers-autoupdate/4dCa45r2UuWBoNnL/docs/images/cdy7uua7fh8z/custom-uri-override.png?fit=max&auto=format&n=4dCa45r2UuWBoNnL&q=85&s=aee7b9bfb2106e624807281bd6e45497" alt="Auth0 Dashboard>Paramètres>Avancé" data-og-width="602" width="602" data-og-height="227" height="227" data-path="docs/images/cdy7uua7fh8z/custom-uri-override.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-staging-chore-actions-triggers-autoupdate/4dCa45r2UuWBoNnL/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=280&fit=max&auto=format&n=4dCa45r2UuWBoNnL&q=85&s=17d3d91816b1d4f2e2f7196e62579e0c 280w, https://mintcdn.com/docs-staging-chore-actions-triggers-autoupdate/4dCa45r2UuWBoNnL/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=560&fit=max&auto=format&n=4dCa45r2UuWBoNnL&q=85&s=15d94d9972b8bd44916600beff11f4ee 560w, https://mintcdn.com/docs-staging-chore-actions-triggers-autoupdate/4dCa45r2UuWBoNnL/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=840&fit=max&auto=format&n=4dCa45r2UuWBoNnL&q=85&s=6e5d15ede9273c4749a1fc53a758a4d9 840w, https://mintcdn.com/docs-staging-chore-actions-triggers-autoupdate/4dCa45r2UuWBoNnL/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=1100&fit=max&auto=format&n=4dCa45r2UuWBoNnL&q=85&s=4247c949dcefac699abbb9a58ea7e707 1100w, https://mintcdn.com/docs-staging-chore-actions-triggers-autoupdate/4dCa45r2UuWBoNnL/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=1650&fit=max&auto=format&n=4dCa45r2UuWBoNnL&q=85&s=3db4be7fbeab4ba648c96665b4c69aa5 1650w, https://mintcdn.com/docs-staging-chore-actions-triggers-autoupdate/4dCa45r2UuWBoNnL/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=2500&fit=max&auto=format&n=4dCa45r2UuWBoNnL&q=85&s=b8e8f35f170342983bd7533e79cf71bc 2500w" />
</Frame>

**Global**

1. Accédez à [Auth0 Dashboard > Paramètres > Avancé](https://manage.auth0.com/#/tenant/advanced).
2. Repérez le paramètre **Non-Verifiable Callback URI End-User Confirmation**.
3. Activez la bascule pour activer l’invite.

<Frame>
  <img src="https://mintcdn.com/docs-staging-chore-actions-triggers-autoupdate/4dCa45r2UuWBoNnL/docs/images/cdy7uua7fh8z/enable-non-verifiable-callback.png?fit=max&auto=format&n=4dCa45r2UuWBoNnL&q=85&s=67df6d73feee72d41aca7a48710b7079" alt="Auth0 Dashboard>Tenant Settings>Advanced>Skip Custom URI toggle" data-og-width="500" width="500" data-og-height="241" height="241" data-path="docs/images/cdy7uua7fh8z/enable-non-verifiable-callback.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-staging-chore-actions-triggers-autoupdate/4dCa45r2UuWBoNnL/docs/images/cdy7uua7fh8z/enable-non-verifiable-callback.png?w=280&fit=max&auto=format&n=4dCa45r2UuWBoNnL&q=85&s=e60b59169cb916f4b2acdc08385d839b 280w, https://mintcdn.com/docs-staging-chore-actions-triggers-autoupdate/4dCa45r2UuWBoNnL/docs/images/cdy7uua7fh8z/enable-non-verifiable-callback.png?w=560&fit=max&auto=format&n=4dCa45r2UuWBoNnL&q=85&s=241dfde9d2fc58586166b97a809366dc 560w, https://mintcdn.com/docs-staging-chore-actions-triggers-autoupdate/4dCa45r2UuWBoNnL/docs/images/cdy7uua7fh8z/enable-non-verifiable-callback.png?w=840&fit=max&auto=format&n=4dCa45r2UuWBoNnL&q=85&s=90fb68cfb37c66c6c47526f9bf8b5f0c 840w, https://mintcdn.com/docs-staging-chore-actions-triggers-autoupdate/4dCa45r2UuWBoNnL/docs/images/cdy7uua7fh8z/enable-non-verifiable-callback.png?w=1100&fit=max&auto=format&n=4dCa45r2UuWBoNnL&q=85&s=56c8350b5ed54c174844a42e033727d2 1100w, https://mintcdn.com/docs-staging-chore-actions-triggers-autoupdate/4dCa45r2UuWBoNnL/docs/images/cdy7uua7fh8z/enable-non-verifiable-callback.png?w=1650&fit=max&auto=format&n=4dCa45r2UuWBoNnL&q=85&s=797883d73b6aabc90492b020d9d77b1c 1650w, https://mintcdn.com/docs-staging-chore-actions-triggers-autoupdate/4dCa45r2UuWBoNnL/docs/images/cdy7uua7fh8z/enable-non-verifiable-callback.png?w=2500&fit=max&auto=format&n=4dCa45r2UuWBoNnL&q=85&s=8413f89e899f04df86e6eb540d8914f2 2500w" />
</Frame>
