Passer au contenu principal

Avant de commencer

  • Pour des raisons de sécurité, l’URL d’origine de votre application doit faire partie de la liste des URL approuvées. Si vous ne l’avez pas déjà ajouté aux URL de rappel autorisées pour votre application, vous devrez l’ajouter à la liste Allowed Origins (CORS) (Origines autorisées).
  • Assurez-vous que Origines Web autorisées dans l’affichage des **Settings (Paramètres)**de votre application est définie sur le domaine effectuant la requête. Les URL peuvent contenir des caractères génériques pour les sous-domaines, mais pas de chemins relatifs après l’URL du domaine. Pour en savoir plus, lisez Espaces réservés pour les sous-domaines.
  • Si vous n’activez pas Domaines personnalisés, vous devrez créer une page de vérification qui utilise Auth0.js comme solution de secours pour l’authentification interorigine.
Auth0 recommande fortement que les transactions d’authentification soient gérées à partir de la Connexion universelle. Il s’agit de la manière la plus simple et la plus sûre d’authentifier les utilisateurs. Cependant, certaines situations peuvent nécessiter que la connexion soit directement intégrée dans une application. Lorsqu’une connexion intégrée est requise, une application doit être configurée pour le partage de ressources cross-origin (CORS). Vous pouvez configurer CORS pour une application à l’aide d’Auth0 Dashboard.

Configurer l’authentification cross-origin

  1. Rendez-vous à Dashboard > Applications > Applications et sélectionnez le nom de l’application que vous souhaitez afficher.
  2. Sous Authentification cross-origin, activez le bouton bascule Autoriser l’authentification cross-origin.
  3. Rendez-vous à Origines autorisées (CORS) et saisissez l‘URL d’origine de votre application. Pour en savoir plus sur les Origines, veuillez consulter Origines sur Mozilla MDN Web Docs.
  4. Cliquez sur Enregistrer les modifications.
Si vous n’avez pas besoin d’utiliser CORS pour votre application, assurez-vous que l’option Permettre l’authentification cross-origin est désactivée.

Créer une page de vérification cross-origin

Dans certains cas, les témoins de tiers ne sont pas pris en charge. Certaines versions de navigateur ne prennent pas en charge les témoins de tiers et, si elles le font, elles peuvent être désactivées dans les paramètres de l’utilisateur. Pour les navigateurs pris en charge, vous pouvez utiliser la méthode crossOriginVerification de la trousse SDK Auth0.js dans votre application sur une page dédiée pour gérer les cas où les témoins de tiers sont désactivés. Pour les navigateurs qui ne sont pas pris en charge, tels que Chrome, Opera et Safari, l’authentification cross-origin ne fonctionnera pas lorsque les témoins de tiers sont désactivés, sauf si vous active les domaines personnalisés.
La configuration de Safari est intitulée « Empêcher le suivi multidomaine » et utilise Prévention intelligente du suivi. Malheureusement, cela empêche également les témoins tiers d’être utiles dans les scénarios d’authentification. Voici un exemple de l’impact sur le renouvellement des jetons.
  1. Créez une page dans votre application qui instancie WebAuth depuis Auth0.js. Appelez immédiatement crossOriginVerification. Le titre de la page est à votre discrétion.
    <!-- callback-cross-auth.html -->
    
    <head>
      <script src="https://cdn.auth0.com/js/auth0/9.11/auth0.min.js"></script>
      <script type="text/javascript">
        var auth0Client = new auth0.WebAuth({
          clientID: '{yourClientId}',
          domain: '{yourDomain}'
        });
        auth0Client.crossOriginVerification();
      </script>
    </head>
    
    Lorsque les témoins de tiers ne sont pas pris en charge, Auth0.js génère un iframe pour appeler un flux de vérification cross-origin différent.
  2. Rendez-vous à Dashboard > Applications > Applications, et sélectionnez le nom de l’application que vous souhaitez afficher.
  3. Sous Authentification cross-origin, ajoutez la page de rappel que vous avez créée au champ URL Vérification cross-origin de secours.
    Pour les environnements de production, vérifiez que l’URL de la page ne pointe pas vers localhost. La page doit se trouver dans le même domaine que celui où est hébergé le formulaire de connexion intégré et doit comporter un schéma https.
  4. Cliquez sur Enregistrer les modifications.
Pour plus de détails, veuillez consulter Exemple d’authentification cross-origin sur GitHub.

Codes d’erreur et descriptions

Les descriptions d’erreurs sont destinées à être lues par un être humain. Elles sont sujettes à modification à tout moment et ne doivent être analysées par aucun code.
Lorsqu’Auth0.js v9 (et Lock) est utilisé pour une connexion intégrée, il appelle le point de terminaison /co/authenticate, qui comporte les erreurs suivantes :
ÉtatCodeDescription
400invalid_requestCorps de requête non valide. Tous les paramètres uniquement du type client_id, credential_type, username, OTP et realm sont requis.
400unsupported_credential_typeParamètre de type d’identifiant inconnu.
400invalid_requestDomaine inconnu, connexion-inexistante.
401unauthorized_clientConnexion d’origine croisée non autorisée.
401password_leakedCette tentative de connexion a été bloquée car le mot de passe que vous utilisez a été précédemment divulgué suite à une violation de données (pas dans cette application).
403access_deniedCourriel ou mot de passe incorrect.
403access_deniedErreur d’authentification
403blocked_userUtilisateur bloqué
429too_many_attemptsVotre compte a été bloqué après plusieurs tentatives de connexion consécutives. Nous vous avons envoyé une notification par votre méthode de contact préférée avec des instructions sur la façon de le débloquer.
429too_many_attemptsNous avons détecté un comportement de connexion suspect et les prochaines tentatives seront bloquées. Veuillez communiquer avec l’administrateur.
De plus, vous pouvez également obtenir un code d’erreur 403 générique sans propriété error ou error_description Le corps de la réponse n’incluerait que quelque chose de similaire à ce qui suit : Origine https://test.app non permise.

Prise en charge des tests de navigateur

Les navigateurs suivants peuvent utiliser l’authentification cross-origin lorsque les témoins de tiers sont désactivés :
  • Microsoft Internet Explorer

Attributs des témoins samesite

Précédemment, les options des attributs de témoinssamesiteétaient truefalsestrict ou lax. Si vous n’aviez pas défini l’attribut manuellement, Auth0 utilisait la valeur par défaut false.Depuis en février 2020, Google Chrome v80 a modifié la manière de gérer les témoins, et Auth0 a implémenté les modifications suivantes :
  • La valeur des témoins dont l’attribut samesite n’a pas été défini sera lax.
  • Les témoins sameSite=none doivent être sécurisés, sinon ils ne peuvent pas être enregistrés dans le groupe de témoins du navigateur.
L’objectif de ces modifications est d’améliorer la sécurité et d’éviter les attaques CSRF.

En savoir plus

I