Aider les utilisateurs à modifier facilement leur mot de passe en ajoutant une URL connue pour le modifier

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 accéder directement à cette page.

Introduction

Comme vous le savez peut-être, les mots de passe ne constituent pas le meilleur moyen de gérer les comptes. Heureusement, il existe des technologies émergentes telles que WebAuthn et des techniques telles que les mots de passe à usage unique qui nous aident à nous rapprocher d'un monde sans mots de passe. Toutefois, ces technologies sont toujours en cours de développement et les choses ne changeront pas rapidement. De nombreux développeurs devront continuer à gérer les mots de passe pendant au moins quelques années. En attendant que les technologies et techniques émergentes se généralisent, nous pouvons au moins faciliter l'utilisation des mots de passe.

Un bon moyen d’y parvenir est d’offrir une meilleure prise en charge des gestionnaires de mots de passe.

Avantages des gestionnaires de mots de passe

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

Saisissez automatiquement le mot de passe dans le champ de saisie approprié: certains navigateurs peuvent trouver la bonne entré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 tags d'entrée HTML.

Éviter l'hameçonnage: étant donné que les gestionnaires de mots de passe se souviennent où le mot de passe a été enregistré, le mot de passe ne peut être saisi automatiquement qu'aux URL appropriées, et non sur des sites d'hameçonnage.

Générez des mots de passe uniques et sécurisés: les mots de passe forts et uniques étant directement générés et stockés par le gestionnaire de mots de passe, les utilisateurs n'ont pas besoin de mémoriser un seul caractère du mot de passe.

La génération et la saisie automatique de mots de passe à l'aide d'un gestionnaire de mots de passe sont déjà bien diffusées sur le Web. Toutefois, compte tenu de leur cycle de vie, mettre à jour les mots de passe chaque fois que cela est nécessaire est tout aussi important que la génération et la saisie automatique. Pour en tirer le meilleur parti, les gestionnaires de mots de passe ajoutent une nouvelle fonctionnalité:

Détectez les mots de passe vulnérables et suggérez de les mettre à jour: les gestionnaires de mots de passe peuvent détecter les mots de passe réutilisés, analyser leur entropie et leurs faiblesses, et même détecter ceux qui ont pu fuir ou ceux qui sont connus pour être non sécurisés à partir de sources telles que Have I Been Pwned.

Un gestionnaire de mots de passe peut avertir les utilisateurs en cas de mots de passe problématiques. Toutefois, demander aux utilisateurs de passer de la page d'accueil à une page de modification de mot de passe, en plus de suivre le processus réel de modification du mot de passe (qui varie d'un site à l'autre), peut s'avérer très compliqué. Il serait beaucoup plus facile que les gestionnaires de mots de passe puissent 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 devient utile.

En réservant un chemin d'URL 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 changer de mot de passe"

.well-known/change-password est proposé en tant qu'URL bien connue pour changer 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 de mot de passe de votre site Web.

Par exemple, supposons 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. C'est tout. 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 sur votre 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">

Réexaminer le code HTML de la page de modification du mot de passe

L'objectif de cette fonctionnalité est de rendre le cycle de vie du mot de passe plus fluide pour l'utilisateur. Vous pouvez effectuer deux opérations pour permettre à l'utilisateur de mettre à jour son mot de passe sans friction:

  • Si votre formulaire de modification de mot de passe nécessite le mot de passe actuel, ajoutez autocomplete="current-password" à la balise <input> pour aider le gestionnaire de mots de passe à le remplir automatiquement.
  • Pour le nouveau champ de mot de passe (dans de nombreux cas, il s'agit de deux champs pour s'assurer que l'utilisateur a saisi le nouveau mot de passe correctement), 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 le formulaire de connexion.

Utilisation dans le monde réel

Exemples

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

Essayez-les et faites de même pour les vôtres !

Compatibilité du navigateur

Une URL connue pour changer les mots de passe est compatible avec Safari depuis 2019. Le gestionnaire de mots de passe de Chrome commencera à la prendre en charge à partir de la version 86 (dont la version stable est prévue pour fin octobre 2020). D'autres navigateurs basés sur Chromium pourraient également l'être par la suite. Firefox considère qu'une implémentation est utile, mais elle n'a pas signalé qu'elle prévoyait de le faire à compter d'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 vérifier les mots de passe divulgués. En accédant à about://settings/passwords, les utilisateurs peuvent exécuter Vérifier les mots de passe par rapport aux mots de passe stockés et consulter la liste des mots de passe recommandés pour la mise à jour.

Fonctionnalité Vérifier les mots de passe de Chrome

Si vous cliquez sur le bouton Modifier le mot de passe à côté d'un mot de passe dont la mise à jour est recommandée, le navigateur:

  • Ouvrez la page de modification du mot de passe du site Web si /.well-known/change-password est correctement configuré.
  • Ouvrez la page d'accueil du site Web si /.well-known/change-password n'est pas configuré et que Google ne connaît pas la création de remplacement.
Que se passe-t-il si le serveur renvoie 200 OK alors que /.well-known/change-password n'existe pas ?

Les gestionnaires de mots de passe tentent de déterminer si un site Web accepte une URL connue pour la modification des mots de passe en envoyant une requête à /.well-known/change-password avant de transférer 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. Toutefois, 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" en l'absence de contenu, mais avec 200 OK.
  • Un site Web de 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 à page unique répond avec le shell avec 200 OK et affiche la page "Introuvable" côté client en l'absence de contenu.

Dans ce cas, les utilisateurs sont redirigés vers une page "Introuvable", ce qui peut être source de 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 véritablement aucun 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. Chrome, par exemple, utilise ce chemin d'URL pour déterminer s'il peut s'attendre à obtenir à l'avance une URL de modification de mot de passe appropriée de la part de /.well-known/change-password.

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 le problème dans le dépôt des spécifications.

Ressources

Photo de Matthew Brodeur sur Unsplash