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
Rendez-vous à Dashboard > Applications > Applications et sélectionnez le nom de l’application que vous souhaitez afficher.
Sous Authentification cross-origin, activez le bouton bascule Autoriser l’authentification cross-origin.
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.
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.
Créez une page dans votre application qui instancie
WebAuth
depuis Auth0.js. Appelez immédiatementcrossOriginVerification
. Le titre de la page est à votre discrétion.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.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?
/Rendez-vous à Dashboard > Applications > Applications, et sélectionnez le nom de l’application que vous souhaitez afficher.
Sous Authentification cross-origin, ajoutez la page de rappel que vous avez créée au champ URL Vérification cross-origin de secours.
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 true
, false
, strict
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 seralax
.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.