Skip to main content
Auth0 met progressivement fin à l’utilisation du point de terminaison /passwordless/start par les applications confidentielles lorsqu’Auth0 ne peut pas authentifier que la requête est effectuée au nom de l’application. utilise le terme ‘confidential’ pour désigner les applications qui peuvent stocker des secrets. Dans Auth0, il s’agit des ‘Regular Web Applications’, qui servent des pages Web à partir d’une application côté serveur. Les Single Page Applications et les Native Applications sont considérées comme des applications ‘public’ et ne sont pas touchées par ce changement. Auth0 peut authentifier les appels à /passwordless/start lorsqu’ils incluent un client_secret comme paramètre, ou lorsqu’ils sont effectués depuis la page de connexion personnalisée dans Classic Login et transmettent le paramètre state.

Fonctionnalités touchées

Si l’une de vos applications envoie actuellement une requête directement au point de terminaison /passwordless/start pour lancer l’ depuis une Application Web, et que vous n’envoyez pas le paramètre client_secret, cette dépréciation vous concerne. Si vous implémentez l’authentification sans mot de passe au moyen de la page Classic Login et que vous avez modifié la méthode d’initialisation par défaut des bibliothèques Auth0, cela pourrait aussi vous concerner. Vous pouvez vérifier si vous êtes concerné en consultant les journaux du tenant, en filtrant par “Avis de dépréciation” et en recherchant des journaux indiquant “Enforce client authentication for passwordless connections”. Vous pouvez aussi effectuer cette recherche directement avec la requête suivante : type:depnote AND description:*passwordless*. Notez que cette requête précise ne fonctionne que pour les tenants en Public Cloud, car il n’est pas possible d’effectuer une recherche dans le champ description des journaux en Private Cloud.

Actions

Si vous appelez le point de terminaison /passwordless/start sans authentification appropriée de l’application, vous devez :
  • Suivre les instructions ci-dessous pour ajuster le code afin d’appeler correctement /passwordless/start.
  • Vérifier vos journaux du tenant pour vous assurer que la modification a bien été effectuée et qu’aucun journal de dépréciation n’est généré pour « Enforce client authentication for passwordless connections ».
  • Dans la section Migrations des Paramètres avancés du tenant, activez la bascule Enforce client authentication for passwordless connections.
Quelques cas d’utilisation pourraient être touchés, mais, dans chaque cas, le parcours de migration est assez simple :

Appels d’API depuis le backend

Pour tout appel provenant de votre backend vers le point de terminaison /passwordless/start, votre requête doit inclure le en tant que paramètre. Si vous envoyez une requête POST directement à /passwordless/start, incluez client_secret dans la charge utile : Si vous utilisez un SDK, ajoutez le paramètre à la méthode qui lance le flux d’authentification sans mot de passe. La procédure diffère selon le SDK, et tous les SDK n’ont pas encore été mis à jour. Si vous utilisez un SDK qui n’a pas encore été mis à jour, vous pouvez effectuer la requête HTTP directement en attendant que la mise à jour soit terminée.

Auth0.js ou Lock.js dans la page Classic Login

Si la page Classic Login est utilisée pour l’authentification sans mot de passe d’une application Web, elle effectuera des appels au point de terminaison /passwordless/start, en utilisant soit Lock.js, soit Auth0.js. Comme vous ne pouvez pas stocker de secret client dans une page Web, la façon d’authentifier la requête consiste à transmettre au point de terminaison /passwordless/start le paramètre state reçu dans la page Classic Login. Ce paramètre est stocké dans le champ config.internalOptions de la page de connexion personnalisée. Les modèles par défaut pour personnaliser la page de connexion l’utilisent comme suit lors de l’initialisation de Lock.js ou d’auth0.js :
Veuillez vérifier dans la mise en œuvre de votre page personnalisée que ce code n’a pas été supprimé.

Faire une requête à /passwordless/start depuis le client dans une application web

Si vous faites une requête au point de terminaison /passwordless/start à partir d’une page qui utilise JavaScript (par exemple, avec auth0.js sur la page) dans des applications de type Regular Web Apps, vous ne pourrez pas préciser de client secret dans une requête effectuée au moyen de JavaScript. Si c’est le cas pour votre application, vous devrez modifier vos applications pour que /passwordless/start soit appelé depuis le backend de votre application web plutôt que depuis le frontend.

Limites de débit

Une conséquence de l’ajout de l’authentification du client à /passwordless/start est qu’Auth0 peut faire confiance aux en-têtes envoyés avec la requête. Si vous définissez l’en-tête auth0-forwarded-for, l’adresse IP apparaîtra dans les journaux et sera utilisée à des fins de . Les requêtes authentifiées vers /passwordless/start seront traitées comme des requêtes authentifiées standard, et la limite de débit globale correspondante de l’Authentication API s’appliquera.