Authentification inter-origine
Auth0 recommande fortement de gérer les transactions d’authentification par l’entremise de la connexion universelle, car il s’agit de la façon la plus simple et sécuritaire d’authentifier les utilisateurs. Pour en savoir plus, lisez Connexion universelle par rapport à la connexion classique. Dans un nombre limité de cas, les formulaires d’authentification doivent être intégrés directement dans une application. Bien que déconseillée, l’authentification interorigine offre un moyen d’y parvenir.
Que veut dire l’authentification cross-origin?
Lorsque des demandes d’authentification sont faites depuis votre application (via le widget Lock ou un formulaire de connexion personnalisé) vers Auth0, les identifiants de l’utilisateur sont envoyées à un domaine autre que celui qui sert votre application. La collecte des identifiants de l’utilisateur dans une application desservie par une origine et leur envoi à une autre origine peuvent présenter certaines vulnérabilités en matière de sécurité, notamment la possibilité d’une attaque par hameçonnage.
Auth0 fournit un flux d’authentification interorigine qui utilise des témoins tiers. L’utilisation de témoins tiers permet à Lock et au système dorsal d’Auth0 d’effectuer les vérifications nécessaires pour permettre des transactions d’authentification sécurisées entre différentes origines. Cela permet d’éviter les attaques par hameçonnage lorsque vous créez une expérience d’authentification unique avec le widget Lock ou un formulaire de connexion personnalisé dans votre application, et permet également de créer une expérience de connexion sécurisée, même si l’authentification unique n’est pas l’objectif recherché.
L’authentification cross-origin n’est pas recommandée et n’est nécessaire que lorsque vous vous authentifiez auprès d’un répertoire à l’aide d’un nom d’utilisateur et d’un mot de passe. Les fournisseurs d’identités sociales et les fédérations d’entreprises utilisent un mécanisme différent, redirigeant via des protocoles standard comme OpenID Connect et SAML. En outre, l’authentification cross-origin ne s’applique qu’aux connexions intégrées sur le Web (à l’aide de Lock ou auth0.js). Les applications natives employant la connexion intégrée utilisent le point de terminaison standard OAuth 2.0 Jeton.
Limites
Comme l’authentification cross-origin dépend des témoins tiers, leur désactivation entrainera un échec d’authentification. Certains navigateurs, comme la version la plus récente de Firefox, désactivent par défaut les témoins tiers, ce qui signifie que l’authentification cross-origin ne fonctionnera pas pour les utilisateurs de Firefox. La seule manière de faire fonctionner l’authentification intégrée pour les utilisateurs de Firefox consiste à utiliser un domaine personnalisé, comme indiqué ci-dessous.
Deux approches sont possibles pour remédier à ce problème :
Enable a Custom Domain on your tenant and host your web application in a domain that has the same top-level domain as your Auth0 custom domain. For example, you host an application at
https://northwind.com
and set your Auth0 custom domain ashttps://login.northwind.com
. De cette manière, les témoins ne sont plus considérés comme provenant d’une tierce partie (parce que votre locataire Auth0 et votre application utilisent le même domaine de niveau supérieur), et ne sont donc pas bloqués par les navigateurs.Créez et reliez une page de vérification cross-origin qui permettra à l’authentification cross-origin de fonctionner avec un nombre limité de navigateurs, même si les témoins tiers sont désactivés.