Réinitialisation & gestion des mots de passe

Réinitialisation & gestion des mots de passe

Processus complets pour demander une réinitialisation, recevoir les instructions par email et définir un nouveau mot de passe en toute sécurité.

Protégez vos utilisateurs et simplifiez le parcours de récupération de mot de passe : validations, expirations, messages clairs et bonnes pratiques UX.

Ce que couvre cette page

Réinitialisation par email

Processus complet pour solliciter une réinitialisation et envoyer un lien sécurisé à l’adresse enregistrée.

Définition d’un nouveau mot de passe

Écran de définition du mot de passe avec validations, confirmations et retours utilisateurs explicites.

Scénarios OAuth & comptes créés

Cas particuliers : comptes créés automatiquement via OAuth (GitHub/GitLab) et flux spécifiques pour ces utilisateurs.

Sécurité & expirations

Liens à usage unique, durée limitée et recommandations pour invalidation des sessions après changement.

Expérience utilisateur (UX)

Messages, instructions claires, feedback immédiat et gestion des erreurs courantes.

Surveillance et prévention

Conseils pour limiter les abus (taux de requêtes), détection d’éligibilité et bonnes pratiques anti-phishing.

Conseil UX — Soyez explicite dans l'email

Indiquez clairement l’objet du message, l’adresse d’envoi, la durée de validité du lien (ex. “valide 1 heure”) et la valeur de l’action (ex. “Si vous n’avez pas demandé ce changement, ignorez cet email ou contactez le support”). Cela réduit les doutes et les heuristiques de sécurité chez l’utilisateur.

Introduction

Cette page explique, étape par étape, comment offrir un parcours de réinitialisation de mot de passe à la fois sécurisé et simple pour l’utilisateur. Vous trouverez des procédures complètes : comment demander une réinitialisation, quoi afficher dans l’email, comment guider l’utilisateur pour définir un mot de passe conforme, et quelles actions effectuer côté produit après un changement (ex. invalidation des sessions). Sont aussi traités les cas liés aux connexions via GitHub/GitLab et les comportements attendus pour les comptes auto-créés.

Workflow : Demander une réinitialisation (utilisateur) — côté interface

1

Step 1 — Page 'Mot de passe oublié'

Placez un lien visible « Mot de passe oublié ? » sur l’écran de connexion. Le libellé doit indiquer l’étape suivante : saisir l’email pour recevoir un lien de réinitialisation.

2

Step 2 — Saisie de l'email

Affichez un champ email unique. Validez côté client : format d’email correct et suppression des espaces en début/fin. Indiquez immédiatement les erreurs de format.

3

Step 3 — Soumission et retour

Après envoi, montrez un message neutre et sécurisé : “Si un compte existe pour cette adresse, un email a été envoyé.” N’exposez pas l’existence d’un compte pour éviter la fuite d’informations.

4

Step 4 — Protection contre les abus

Implémentez un mécanisme côté service pour limiter la fréquence des demandes (ex. 5 requêtes/heure par IP ou par compte). Si le seuil est atteint, affichez un message utile : “Trop de tentatives. Réessayez dans X minutes.”

5

Step 5 — Feedback et suivi

Proposez un lien d’aide ou un moyen de contacter le support si l’utilisateur ne reçoit pas l’email (vérifier dossier spam, adresse correcte, délai de propagation).

Workflow : Recevoir l'email et suivre le lien (utilisateur)

1

Step 1 — Vérifier la boîte de réception

Indiquez d’attendre quelques minutes et de vérifier le dossier spam / Promotions. Expliquez quel expéditeur s’attendre à voir et le sujet type du message.

2

Step 2 — Contrôles pour éviter le phishing

Dans l’email, l’utilisateur doit vérifier : l’URL de destination (dommaine officiel), l’adresse d’envoi et le texte qui explique pourquoi il reçoit l’email. Encouragez à ne jamais entrer son mot de passe si l’URL semble suspecte.

3

Step 3 — Date d'expiration du lien

Expliquez que le lien est à usage unique et expire rapidement (par exemple 1 heure). Si le lien est expiré, indiquer comment demander un nouveau lien.

4

Step 4 — Gestion d'un lien invalide

Si le lien est utilisé ou invalide, redirigez vers une page qui explique clairement la situation et propose de renvoyer une demande. N’affichez pas d’erreur technique confuse.

Workflow : Définir un nouveau mot de passe (interface de réinitialisation)

1

Step 1 — Présentation du formulaire

Affichez deux champs : Nouveau mot de passe et Confirmer le mot de passe. Affichez la durée restante de validité du lien si possible (ex. “Lien valide encore 45 min”).

2

Step 2 — Politique de mot de passe et validation instantanée

Définissez et affichez clairement les règles (ex. longueur minimale 8–12, inclusion de maj/min, chiffres, symboles si nécessaire). Offrez un retour en temps réel (barre de force + liste de règles cochées).

3

Step 3 — Masquer/Montrer & conseils

Ajoutez un bouton pour montrer/masquer le mot de passe, et des suggestions UX : générateur de mot de passe, copier dans le presse-papiers, ou proposer une phrase de passe.

4

Step 4 — Confirmation et erreurs

Vérifiez la correspondance des deux champs avant envoi. Si une règle n’est pas respectée, affichez un message précis (ex. “Le mot de passe doit contenir au moins 10 caractères”).

5

Step 5 — Après le succès

Après mise à jour, affichez une confirmation : “Mot de passe changé”. Recommandez à l’utilisateur de se reconnecter et invaliderez automatiquement les sessions actives pour plus de sécurité.

6

Step 6 — Notifications supplémentaires

Envoyez un email de notification indiquant qu’un mot de passe a été modifié. Mentionnez la date et l’heure, et proposez un lien pour contacter le support si le changement n’a pas été initié par l’utilisateur.

Conseil sécurité — Invalidation des sessions

Après un changement de mot de passe, invalidez les sessions existantes et les tokens d’accès. Informez l’utilisateur qu’il devra se reconnecter sur ses autres appareils : c’est un signal de sécurité rassurant.

Conseil UX — Rendre le formulaire résilient

  • Pré-remplissez le champ email quand possible (si l’utilisateur a cliqué depuis l’email).
  • Fournissez un message clair en cas de lien expiré avec un bouton unique “Renvoyer un email”.
  • Affichez une estimation du temps restant pour éviter la frustration.

Attention aux comptes créés via OAuth / fournisseurs externes

Certains utilisateurs se connectent via GitHub ou GitLab et leur compte peut avoir été créé automatiquement. Ces comptes peuvent ne pas avoir de mot de passe défini ou utiliser une adresse temporaire. Dans ce cas, introduisez un flux explicite “Définir un mot de passe” avec vérification de l’email réel et instructions claires. Évitez d’autoriser la définition d’un mot de passe sans vérification de l’email.

  • Flux classique : utilisateur clique “Mot de passe oublié”, saisit son email et reçoit le lien.
  • Autoriser la définition immédiate du mot de passe si le lien est valide.
  • Recommandations : exigence de force, force meter, invalidation des sessions.
  • Si l’utilisateur s’est inscrit via OAuth, il se peut qu’il n’ait jamais choisi de mot de passe. Proposez un flux “Définir un mot de passe” accessible depuis le profil ou via le lien de réinitialisation.
  • Soyez explicite si l’email utilisé provient du fournisseur : vérifiez que l’adresse est confirmée.
  • Indiquez que la connexion OAuth reste possible (ne pas forcer la conversion en authentification locale sans raison).
  • Certaines connexions issues d’une installation peuvent utiliser des jetons temporaires pour se connecter. Si l’utilisateur souhaite un accès par mot de passe local, proposez une procédure sécurisée de définition de mot de passe et la confirmation de l’email.
  • Informez clairement l’utilisateur des méthodes de connexion disponibles (OAuth vs mot de passe).

Avant : messages vagues comme “Erreur” ou “Lien invalide”.

Après : messages clairs — “Le lien a expiré après 1 heure. Cliquez ici pour renvoyer un email.” Montrer l’étape suivante guide l’utilisateur et réduit les tickets support.

Bonnes pratiques détaillées et validations recommandées

  • Expiration courte et unique : utilisez un lien à usage unique et une durée courte (par exemple 1 heure). Affichez la durée restante si possible.
  • Messages non révélateurs : lors de la demande de réinitialisation, répondez toujours de façon neutre pour éviter de confirmer l’existence d’un compte.
  • Validation côté client + côté service : validez les formats et la conformité aux règles de mot de passe, mais appliquez aussi des vérifications côté service pour sécurité.
  • Limiter les tentatives : appliquez des limites par adresse email et par IP pour éviter les abus automatisés.
  • Notifications post-changement : envoyez une notification email après toute modification de mot de passe.
  • Historique et réutilisation : empêcher la réutilisation immédiate d’un ancien mot de passe (politique de rotation) si cela s’applique à votre produit.
  • Afficher l’origine du compte : si un compte provient d’un fournisseur externe, informez l’utilisateur et offrez la marche à suivre pour définir un mot de passe local si souhaité.
  • Aide contextuelle : proposez un lien d’aide bien visible lorsque le lien est expiré ou invalide.

Gotcha fréquent — phishing et usurpation d'email

Les attaquants peuvent envoyer des emails de phishing imitant vos messages de réinitialisation. Rappelez aux utilisateurs : jamais de demande de mot de passe par email, toujours vérifier le domaine de destination et préférer ouvrir le site manuellement plutôt que de cliquer directement si quelque chose semble suspect.

Exemples concrets de messages

  • Email à l’envoi : “Demande de réinitialisation de votre mot de passe — valable 1 heure” + bouton visible “Réinitialiser mon mot de passe”.
  • Page lien expiré : “Ce lien a expiré. Cliquez ici pour renvoyer un email de réinitialisation.”
  • Confirmation : “Votre mot de passe a été modifié. Si vous n’êtes pas à l’origine de ce changement, contactez le support immédiatement.”

Frequently Asked Questions

Rappel pratique

Priorité à l’expérience : un processus simple et guidé réduit l’anxiété de l’utilisateur. Priorité à la sécurité : liens uniques, expiration courte, notifications et invalidation des sessions renforcent la protection.

Besoin d'aide pour affiner votre flux ?

Nous pouvons vous aider à revoir les messages, les timers d’expiration, et les règles UX pour minimiser les tickets support et maximiser la sécurité.