Configurer le partage des ressources cross-origin

Before you start

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

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.

  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.

    codeblockOld.header.login.configureSnippet
    <!-- 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>

    Was this helpful?

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

  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

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 :

État Code Description
400 invalid_request Corps de requête non valide. Tous les paramètres uniquement du type client_id, credential_type, username, OTP et realm sont requis.
400 unsupported_credential_type Paramètre de type d’identifiant inconnu.
400 invalid_request Domaine inconnu, connexion-inexistante.
401 unauthorized_client Connexion d’origine croisée non autorisée.
401 password_leaked Cette 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).
403 access_denied Courriel ou mot de passe incorrect.
403 access_denied Erreur d’authentification
403 blocked_user Utilisateur bloqué
429 too_many_attempts Votre 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.
429 too_many_attempts Nous 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