> ## Documentation Index
> Fetch the complete documentation index at: https://auth0.generaltranslation.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Mesures contre l’usurpation d’identité d’application

Les applications natives utilisent le flux d’authentification [Authorization Code Flow with PKCE](/docs/fr-CA/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce) et emploient un `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](https://developers.google.com/identity/protocols/oauth2/native-app#installed_app_redirect_methods) (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](http://127.0.0.1:51089/callback) ou [http://localhost:61024/callback](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.

<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**, qui vous permettent d’associer un domaine Web que vous contrôlez à votre application mobile. 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 gère l’URL de rappel associée et protègent contre l’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#android-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 dans les cas suivants :

* 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.

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

L’écran de confirmation s’affiche lorsque :

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

Dans ces cas, l’application présente à l’utilisateur final une demande de confirmation.

<Frame>
  <img src="https://mintcdn.com/generaltranslationinc/GMqg_oKRfWVB3GIg/docs/images/cdy7uua7fh8z/consent-pompt-uris.png?fit=max&auto=format&n=GMqg_oKRfWVB3GIg&q=85&s=0a6c5cda8459f314336e69842bb7ecd6" alt="Mesures contre l’usurpation d’application - Demande de confirmation" width="298" height="408" data-path="docs/images/cdy7uua7fh8z/consent-pompt-uris.png" />
</Frame>

La demande de confirmation n’est pas affichée dans les flux hérités non conformes à OIDC. Pour savoir comment appliquer une protection accrue à vos tenants et à vos applications, consultez [Adopter l’authentification conforme à OIDC](/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 et les paramètres définis pour les écrans de consentement existants utilisés pour les applications tierces. Pour en savoir plus, consultez la section Prompts de [Personnaliser les modèles de page Universal Login](/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 autre indication que quelque chose s'est produit.
</Warning>

Vous pouvez configurer l'invite de confirmation en tant que paramètre global du tenant ou au niveau de l'application. Les paramètres au niveau de l'application ont priorité sur le paramètre global au niveau du tenant.

**Niveau de l'application**

1. [Accédez à Auth0 Dashboard > Applications > Application Settings > Advanced > OAuth](https://manage.auth0.com/#/applications/settings).
2. Faites défiler jusqu'au paramètre **Non-Verifiable Callback URI End-User Confirmation**.
3. Activez le bouton bascule pour activer l'invite ou désactivez le bouton bascule pour désactiver l'invite.

<Frame>
  <img src="https://mintcdn.com/generaltranslationinc/GMqg_oKRfWVB3GIg/docs/images/cdy7uua7fh8z/custom-uri-override.png?fit=max&auto=format&n=GMqg_oKRfWVB3GIg&q=85&s=2a439951f06eec606cd62ff673ae099a" alt="Auth0 Dashboard>Settings>Advanced" 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/generaltranslationinc/GMqg_oKRfWVB3GIg/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=280&fit=max&auto=format&n=GMqg_oKRfWVB3GIg&q=85&s=de50bf7222a3d002f75820462cc042a5 280w, https://mintcdn.com/generaltranslationinc/GMqg_oKRfWVB3GIg/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=560&fit=max&auto=format&n=GMqg_oKRfWVB3GIg&q=85&s=7a7bb5f203d44e63bad0c31649184c16 560w, https://mintcdn.com/generaltranslationinc/GMqg_oKRfWVB3GIg/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=840&fit=max&auto=format&n=GMqg_oKRfWVB3GIg&q=85&s=fbdfc3ff09f1e0bc04c4969976eed442 840w, https://mintcdn.com/generaltranslationinc/GMqg_oKRfWVB3GIg/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=1100&fit=max&auto=format&n=GMqg_oKRfWVB3GIg&q=85&s=cee46c89ab26eae4cc5bf4682c6fa4c0 1100w, https://mintcdn.com/generaltranslationinc/GMqg_oKRfWVB3GIg/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=1650&fit=max&auto=format&n=GMqg_oKRfWVB3GIg&q=85&s=b8dbf53f6c9d87ef168c80b9ce74f89b 1650w, https://mintcdn.com/generaltranslationinc/GMqg_oKRfWVB3GIg/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=2500&fit=max&auto=format&n=GMqg_oKRfWVB3GIg&q=85&s=97f157c3dd8583d8925881eb833ea05e 2500w" />
</Frame>

**Global**

1. Accédez à [Auth0 Dashboard > Settings > Advanced](https://manage.auth0.com/#/tenant/advanced).
2. Repérez le paramètre **Non-Verifiable Callback URI End-User Confirmation**.
3. Activez le bouton bascule pour désactiver l'invite ou désactivez le bouton bascule pour activer l'invite.

<Frame>
  <img src="https://mintcdn.com/generaltranslationinc/md6b8ua1hdYa2pM7/docs/images/cdy7uua7fh8z/skip-custom-uri.png?fit=max&auto=format&n=md6b8ua1hdYa2pM7&q=85&s=a3ec41f07f5da076fdec8ba3aaa144b4" alt="Auth0 Dashboard>Tenant Settings>Advanced>Skip Custom URI toggle" data-og-width="500" width="500" data-og-height="99" height="99" data-path="docs/images/cdy7uua7fh8z/skip-custom-uri.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/generaltranslationinc/md6b8ua1hdYa2pM7/docs/images/cdy7uua7fh8z/skip-custom-uri.png?w=280&fit=max&auto=format&n=md6b8ua1hdYa2pM7&q=85&s=d8a773a8f83e62cf0ac56421c3e572b3 280w, https://mintcdn.com/generaltranslationinc/md6b8ua1hdYa2pM7/docs/images/cdy7uua7fh8z/skip-custom-uri.png?w=560&fit=max&auto=format&n=md6b8ua1hdYa2pM7&q=85&s=63c4decf24e48f0a81b25d8c1ca5ee9c 560w, https://mintcdn.com/generaltranslationinc/md6b8ua1hdYa2pM7/docs/images/cdy7uua7fh8z/skip-custom-uri.png?w=840&fit=max&auto=format&n=md6b8ua1hdYa2pM7&q=85&s=a959ba91978b6e386bf55f963620fd47 840w, https://mintcdn.com/generaltranslationinc/md6b8ua1hdYa2pM7/docs/images/cdy7uua7fh8z/skip-custom-uri.png?w=1100&fit=max&auto=format&n=md6b8ua1hdYa2pM7&q=85&s=b9f5a289f8d96a3a34afd27e477c6235 1100w, https://mintcdn.com/generaltranslationinc/md6b8ua1hdYa2pM7/docs/images/cdy7uua7fh8z/skip-custom-uri.png?w=1650&fit=max&auto=format&n=md6b8ua1hdYa2pM7&q=85&s=11a8bce021c50525c050aa10df4209cc 1650w, https://mintcdn.com/generaltranslationinc/md6b8ua1hdYa2pM7/docs/images/cdy7uua7fh8z/skip-custom-uri.png?w=2500&fit=max&auto=format&n=md6b8ua1hdYa2pM7&q=85&s=c91726541f04129c6937656d6e916a22 2500w" />
</Frame>
