Aider les utilisateurs à changer facilement de mot de passe en ajoutant une URL connue pour changer de mot de passe

Rediriger une requête vers /.well-known/change-password vers l'URL de modification des mots de passe

Définissez une redirection de /.well-known/change-password vers la page de modification du mot de passe de votre site Web. Les gestionnaires de mots de passe pourront ainsi rediriger directement vos utilisateurs vers cette page.

Introduction

Comme vous le savez peut-être, les mots de passe ne sont pas le meilleur moyen de gérer les comptes. Heureusement, des technologies émergentes telles que WebAuthn et des techniques comme les mots de passe à usage unique nous aident à nous rapprocher d'un monde sans mot de passe. Toutefois, ces technologies sont encore en cours de développement, et les choses ne changeront pas rapidement. De nombreux développeurs devront encore gérer des mots de passe pendant au moins les prochaines années. En attendant que les technologies et techniques émergentes deviennent courantes, nous pouvons au moins rendre les mots de passe plus faciles à utiliser.

Pour ce faire, nous proposons une meilleure prise en charge des gestionnaires de mots de passe.

Comment les gestionnaires de mots de passe peuvent vous aider

Les gestionnaires de mots de passe peuvent être intégrés aux navigateurs ou fournis en tant qu'applications tierces. Ils peuvent aider les utilisateurs de différentes manières:

Saisie automatique du mot de passe dans le champ de saisie approprié: certains navigateurs peuvent trouver la saisie appropriée de manière heuristique, même si le site Web n'est pas optimisé à cette fin. Les développeurs Web peuvent aider les gestionnaires de mots de passe en annotant correctement les balises d'entrée HTML.

Empêcher l'hameçonnage: comme les gestionnaires de mots de passe se souviennent de l'emplacement où le mot de passe a été enregistré, il ne peut être renseigné automatiquement que dans les URL appropriées, et non sur les sites Web d'hameçonnage.

Générer des mots de passe sécurisés et uniques: comme les mots de passe sécurisés et uniques sont générés et stockés directement par le gestionnaire de mots de passe, les utilisateurs n'ont pas besoin de se souvenir d'un seul caractère du mot de passe.

La génération et la saisie automatique des mots de passe à l'aide d'un gestionnaire de mots de passe ont déjà été utiles sur le Web. Toutefois, compte tenu de leur cycle de vie, la mise à jour des mots de passe chaque fois que cela est nécessaire est aussi importante que la génération et la saisie automatique. Pour exploiter pleinement ce potentiel, les gestionnaires de mots de passe ajoutent une nouvelle fonctionnalité:

Détection des mots de passe vulnérables et suggestion de les mettre à jour: les gestionnaires de mots de passe peuvent détecter les mots de passe réutilisés, analyser leur entropie et leur faiblesse, et même détecter les mots de passe potentiellement divulgués ou ceux qui sont connus comme étant dangereux à partir de sources telles que Have I Been Pwned.

Un gestionnaire de mots de passe peut avertir les utilisateurs des mots de passe problématiques, mais il est très contraignant de demander aux utilisateurs de passer de la page d'accueil à une page de modification de mot de passe, en plus de suivre la procédure de modification du mot de passe (qui varie d'un site à l'autre). Il serait beaucoup plus facile si les gestionnaires de mots de passe pouvaient rediriger l'utilisateur directement vers l'URL de modification du mot de passe. C'est là qu'une URL bien connue pour modifier les mots de passe est utile.

En réservant un chemin d'URL bien connu qui redirige l'utilisateur vers la page de modification du mot de passe, le site Web peut facilement rediriger les utilisateurs vers le bon endroit pour modifier leurs mots de passe.

Configurer "une URL bien connue pour modifier les mots de passe"

.well-known/change-password est proposée comme URL bien connue pour modifier les mots de passe. Il vous suffit de configurer votre serveur pour rediriger les requêtes pour .well-known/change-password vers l'URL de modification du mot de passe de votre site Web.

Par exemple, imaginons que votre site Web soit https://example.com et que l'URL de modification du mot de passe soit https://example.com/settings/password. Il vous suffit de configurer votre serveur pour rediriger une requête pour https://example.com/.well-known/change-password vers https://example.com/settings/password. Et voilà ! Pour la redirection, utilisez le code d'état HTTP 302 Found, 303 See Other ou 307 Temporary Redirect.

Vous pouvez également diffuser du code HTML à l'URL .well-known/change-password avec une balise <meta> à l'aide d'un http-equiv="refresh".

<meta http-equiv="refresh" content="0;url=https://example.com/settings/password">

Revoir le code HTML de votre page de modification du mot de passe

L'objectif de cette fonctionnalité est de fluidifier le cycle de vie des mots de passe des utilisateurs. Vous pouvez faire deux choses pour permettre à l'utilisateur de mettre à jour son mot de passe sans friction:

  • Si le mot de passe actuel est nécessaire pour votre formulaire de modification de mot de passe, ajoutez autocomplete="current-password" à la balise <input> pour aider le gestionnaire de mots de passe à le renseigner automatiquement.
  • Pour le champ du nouveau mot de passe (dans de nombreux cas, il s'agit de deux champs pour s'assurer que l'utilisateur a correctement saisi le nouveau mot de passe), ajoutez autocomplete="new-password" à la balise <input> pour aider le gestionnaire de mots de passe à suggérer un mot de passe généré.

Pour en savoir plus, consultez les bonnes pratiques concernant les formulaires de connexion.

Comment l'utiliser dans le monde réel

Exemples

Grâce à l'implémentation d'Apple Safari, /.well-known/change-password est déjà disponible sur certains sites Web majeurs depuis un certain temps:

Essayez-les par vous-même et faites de même pour les vôtres.

Compatibilité du navigateur

Une URL well-known pour modifier les mots de passe est compatible avec Safari depuis 2019. Le Gestionnaire de mots de passe de Chrome commence à le prendre en charge à partir de la version 86 (dont la version stable est prévue pour fin octobre 2020), et d'autres navigateurs basés sur Chromium pourraient suivre. Firefox considère que cette fonctionnalité est intéressante à implémenter, mais n'a pas indiqué qu'il prévoyait de le faire en août 2020.

Comportement du Gestionnaire de mots de passe de Chrome

Voyons comment le Gestionnaire de mots de passe de Chrome traite les mots de passe vulnérables.

Le Gestionnaire de mots de passe de Chrome peut détecter les mots de passe divulgués. En accédant à about://settings/passwords, les utilisateurs peuvent exécuter Vérifier les mots de passe sur les mots de passe stockés et afficher une liste des mots de passe à mettre à jour.

La fonctionnalité Vérifier les mots de passe de Chrome

Lorsque vous cliquez sur le bouton Modifier le mot de passe à côté d'un mot de passe que vous devez mettre à jour, le navigateur:

  • Ouvrez la page de modification du mot de passe du site Web si /.well-known/change-password est configuré correctement.
  • Ouvre la page d'accueil du site Web si /.well-known/change-password n'est pas configuré et que Google ne connaît pas l'option de remplacement.

Les gestionnaires de mots de passe tentent de déterminer si un site Web accepte une URL bien connue pour modifier les mots de passe en envoyant une requête à /.well-known/change-password avant de rediriger réellement un utilisateur vers cette URL. Si la requête renvoie 404 Not Found, il est évident que l'URL n'est pas disponible, mais une réponse 200 OK ne signifie pas nécessairement que l'URL est disponible, car il existe quelques cas particuliers:

  • Un site Web avec rendu côté serveur affiche "Introuvable" lorsqu'il n'y a pas de contenu, mais avec 200 OK.
  • Un site Web avec rendu côté serveur répond avec 200 OK lorsqu'il n'y a pas de contenu après la redirection vers la page "Introuvable".
  • Une application monopage répond avec le shell avec 200 OK et affiche la page "Introuvable" côté client lorsqu'il n'y a pas de contenu.

Dans ces cas limites, les utilisateurs seront redirigés vers une page "Introuvable", ce qui peut prêter à confusion.

C'est pourquoi un mécanisme standard proposé permet de déterminer si le serveur est configuré pour répondre avec 404 Not Found lorsqu'il n'y a pas de contenu, en demandant une page aléatoire. En fait, l'URL est également réservée : /.well-known/resource-that-should-not-exist-whose-status-code-should-not-be-200. Par exemple, Chrome utilise ce chemin d'URL pour déterminer s'il peut s'attendre à une URL de modification de mot de passe appropriée de la part de /.well-known/change-password à l'avance.

Lorsque vous déployez /.well-known/change-password, assurez-vous que votre serveur renvoie 404 Not Found pour tout contenu inexistant.

Commentaires

Si vous avez des commentaires sur la spécification, veuillez signaler un problème dans le dépôt de spécifications.

Ressources

Photo de Matthew Brodeur sur Unsplash