> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-actions-modules-ga.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-dev-actions-modules-ga/C3SJpte_tBJchX_T/docs/images/cdy7uua7fh8z/consent-pompt-uris.png?fit=max&auto=format&n=C3SJpte_tBJchX_T&q=85&s=d5e0fe9fb73b4d78e96e17bf72a33b27" 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-dev-actions-modules-ga/C3SJpte_tBJchX_T/docs/images/cdy7uua7fh8z/custom-uri-override.png?fit=max&auto=format&n=C3SJpte_tBJchX_T&q=85&s=f8ac18f5f5ff653c05728559bbd0089d" 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-dev-actions-modules-ga/C3SJpte_tBJchX_T/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=280&fit=max&auto=format&n=C3SJpte_tBJchX_T&q=85&s=29cc77e18a777a702bc2d9458c4026a7 280w, https://mintcdn.com/docs-dev-actions-modules-ga/C3SJpte_tBJchX_T/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=560&fit=max&auto=format&n=C3SJpte_tBJchX_T&q=85&s=34ddc385f44cf5172278e63277d7c670 560w, https://mintcdn.com/docs-dev-actions-modules-ga/C3SJpte_tBJchX_T/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=840&fit=max&auto=format&n=C3SJpte_tBJchX_T&q=85&s=40d7140447108a6a319be573c233e8ba 840w, https://mintcdn.com/docs-dev-actions-modules-ga/C3SJpte_tBJchX_T/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=1100&fit=max&auto=format&n=C3SJpte_tBJchX_T&q=85&s=33835a6f2ccf630ab7c169e49b8c943c 1100w, https://mintcdn.com/docs-dev-actions-modules-ga/C3SJpte_tBJchX_T/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=1650&fit=max&auto=format&n=C3SJpte_tBJchX_T&q=85&s=2fb112e646d39f87c153888003d79a8a 1650w, https://mintcdn.com/docs-dev-actions-modules-ga/C3SJpte_tBJchX_T/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=2500&fit=max&auto=format&n=C3SJpte_tBJchX_T&q=85&s=d7269579942c2bf2b0f5b91c9d1b79fd 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-dev-actions-modules-ga/C3SJpte_tBJchX_T/docs/images/cdy7uua7fh8z/enable-non-verifiable-callback.png?fit=max&auto=format&n=C3SJpte_tBJchX_T&q=85&s=9bdc34dc5bd1bb2b8ff88b4b35f8b483" 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-dev-actions-modules-ga/C3SJpte_tBJchX_T/docs/images/cdy7uua7fh8z/enable-non-verifiable-callback.png?w=280&fit=max&auto=format&n=C3SJpte_tBJchX_T&q=85&s=69fdfe65136f1643a7b6109b3fe7584b 280w, https://mintcdn.com/docs-dev-actions-modules-ga/C3SJpte_tBJchX_T/docs/images/cdy7uua7fh8z/enable-non-verifiable-callback.png?w=560&fit=max&auto=format&n=C3SJpte_tBJchX_T&q=85&s=405947c04acec22257ecc7c39a61d46f 560w, https://mintcdn.com/docs-dev-actions-modules-ga/C3SJpte_tBJchX_T/docs/images/cdy7uua7fh8z/enable-non-verifiable-callback.png?w=840&fit=max&auto=format&n=C3SJpte_tBJchX_T&q=85&s=99a16b45fe0af367c9dca2b0c029a7c7 840w, https://mintcdn.com/docs-dev-actions-modules-ga/C3SJpte_tBJchX_T/docs/images/cdy7uua7fh8z/enable-non-verifiable-callback.png?w=1100&fit=max&auto=format&n=C3SJpte_tBJchX_T&q=85&s=7598a0e38112f3e47015d1edfbaa9444 1100w, https://mintcdn.com/docs-dev-actions-modules-ga/C3SJpte_tBJchX_T/docs/images/cdy7uua7fh8z/enable-non-verifiable-callback.png?w=1650&fit=max&auto=format&n=C3SJpte_tBJchX_T&q=85&s=705f562825144e8f6fadd08abed600f6 1650w, https://mintcdn.com/docs-dev-actions-modules-ga/C3SJpte_tBJchX_T/docs/images/cdy7uua7fh8z/enable-non-verifiable-callback.png?w=2500&fit=max&auto=format&n=C3SJpte_tBJchX_T&q=85&s=cfe346d3fff4706403c45666d8af750a 2500w" />
</Frame>
