> ## Documentation Index
> Fetch the complete documentation index at: https://translations.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.

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

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

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>

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

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/translations/mMSz-RNYLuOm2GmQ/docs/images/cdy7uua7fh8z/consent-pompt-uris.png?fit=max&auto=format&n=mMSz-RNYLuOm2GmQ&q=85&s=8a0550c3a720e2e31482d9bae953c1a8" 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).

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

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/translations/mMSz-RNYLuOm2GmQ/docs/images/cdy7uua7fh8z/custom-uri-override.png?fit=max&auto=format&n=mMSz-RNYLuOm2GmQ&q=85&s=e5f9a2c190540fb9dc264e9ae1819cdf" 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/translations/mMSz-RNYLuOm2GmQ/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=280&fit=max&auto=format&n=mMSz-RNYLuOm2GmQ&q=85&s=bdfad6eed55d85238b3912c05c1796b7 280w, https://mintcdn.com/translations/mMSz-RNYLuOm2GmQ/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=560&fit=max&auto=format&n=mMSz-RNYLuOm2GmQ&q=85&s=1be8b875e055586c6282840a007fc4b2 560w, https://mintcdn.com/translations/mMSz-RNYLuOm2GmQ/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=840&fit=max&auto=format&n=mMSz-RNYLuOm2GmQ&q=85&s=1d1ede7f25342c71af2eb5344e661335 840w, https://mintcdn.com/translations/mMSz-RNYLuOm2GmQ/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=1100&fit=max&auto=format&n=mMSz-RNYLuOm2GmQ&q=85&s=fa90ee9d0979769310b2c1b04bb34bdd 1100w, https://mintcdn.com/translations/mMSz-RNYLuOm2GmQ/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=1650&fit=max&auto=format&n=mMSz-RNYLuOm2GmQ&q=85&s=3ee0c4223d309a46dd7eb1026934599b 1650w, https://mintcdn.com/translations/mMSz-RNYLuOm2GmQ/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=2500&fit=max&auto=format&n=mMSz-RNYLuOm2GmQ&q=85&s=bc7bafe44cd3c098ce3e8263658c795a 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/translations/mMSz-RNYLuOm2GmQ/docs/images/cdy7uua7fh8z/enable-non-verifiable-callback.png?fit=max&auto=format&n=mMSz-RNYLuOm2GmQ&q=85&s=9e2585711e79f97da564af4fd4f13566" 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/translations/mMSz-RNYLuOm2GmQ/docs/images/cdy7uua7fh8z/enable-non-verifiable-callback.png?w=280&fit=max&auto=format&n=mMSz-RNYLuOm2GmQ&q=85&s=b2325296b96c1182023a05799dd18dde 280w, https://mintcdn.com/translations/mMSz-RNYLuOm2GmQ/docs/images/cdy7uua7fh8z/enable-non-verifiable-callback.png?w=560&fit=max&auto=format&n=mMSz-RNYLuOm2GmQ&q=85&s=2e9477e113f6ed441ce14c433de54735 560w, https://mintcdn.com/translations/mMSz-RNYLuOm2GmQ/docs/images/cdy7uua7fh8z/enable-non-verifiable-callback.png?w=840&fit=max&auto=format&n=mMSz-RNYLuOm2GmQ&q=85&s=fc23d572bc5f4fb6159aad54830154ef 840w, https://mintcdn.com/translations/mMSz-RNYLuOm2GmQ/docs/images/cdy7uua7fh8z/enable-non-verifiable-callback.png?w=1100&fit=max&auto=format&n=mMSz-RNYLuOm2GmQ&q=85&s=22239c99293ffe8a9bb33df67dce8f6b 1100w, https://mintcdn.com/translations/mMSz-RNYLuOm2GmQ/docs/images/cdy7uua7fh8z/enable-non-verifiable-callback.png?w=1650&fit=max&auto=format&n=mMSz-RNYLuOm2GmQ&q=85&s=398dfa4bb83d4efb44c5a97e5810e541 1650w, https://mintcdn.com/translations/mMSz-RNYLuOm2GmQ/docs/images/cdy7uua7fh8z/enable-non-verifiable-callback.png?w=2500&fit=max&auto=format&n=mMSz-RNYLuOm2GmQ&q=85&s=3a5222a50191cdd221639f5c3fc04524 2500w" />
</Frame>
