Politique de mot de passe
Logto applique la politique de mot de passe de différentes manières selon la façon dont le mot de passe est créé ou mis à jour :
- Les parcours utilisateur finaux tels que l'expérience de connexion prête à l'emploi, l’Experience API et l’Account API appliquent toujours la politique de mot de passe actuelle.
- Les actions administrateur via la Management API
patch /api/users/{userId}/passwordsont exemptées, ce qui vous permet de provisionner ou de réinitialiser des identifiants sans vérification de la politique si nécessaire. - Pour auditer les mots de passe existants selon les règles actuelles, appelez
POST /api/sign-in-exp/default/check-passwordet agissez selon le résultat de validation retourné. Lisez Vérification de conformité du mot de passe pour en savoir plus.
Configurer la politique de mot de passe
Pour les nouveaux utilisateurs ou ceux qui mettent à jour leur mot de passe, vous pouvez définir une politique de mot de passe afin d’imposer des exigences de robustesse. Rendez-vous dans Console > Sécurité > Politique de mot de passe pour configurer les paramètres de la politique.
- Longueur minimale du mot de passe : Définissez le nombre minimal de caractères requis pour le mot de passe. (Le NIST recommande d’utiliser au moins 8 caractères)
- Nombre minimal de types de caractères requis : Définissez le nombre minimal de types de caractères requis pour le mot de passe. Les types de caractères disponibles sont :
- Lettres majuscules :
(A-Z) - Lettres minuscules :
(a-z) - Chiffres :
(0-9) - Caractères spéciaux :
(!"#$%&'()\*+,-./:;<>=?@[]^\_`|{}~ )
- Lettres majuscules :
- Vérification d’historique de violation : Activez ce paramètre pour rejeter les mots de passe ayant déjà été exposés lors de fuites de données. (Propulsé par Have I Been Pwned)
- Vérification de répétition : Activez ce paramètre pour rejeter les mots de passe contenant des caractères répétitifs. (ex. : "11111111" ou "password123")
- Vérification des informations utilisateur : Activez ce paramètre pour rejeter les mots de passe contenant des informations utilisateur telles que le nom d’utilisateur, l’adresse e-mail ou le numéro de téléphone.
- Mots personnalisés : Fournissez une liste de mots personnalisés (insensibles à la casse) que vous souhaitez rejeter dans le mot de passe.
Expiration du mot de passe
L’expiration du mot de passe oblige les utilisateurs à réinitialiser leur mot de passe après un certain nombre de jours. Vous pouvez également expirer manuellement le mot de passe d’un utilisateur spécifique, par exemple si vous savez qu’il a été compromis.
La politique n’est vérifiée qu’après que l’utilisateur a saisi le bon mot de passe lors de la connexion par mot de passe. Les utilisateurs qui se connectent avec un code de vérification, une connexion sociale, SSO ou une passkey ne sont pas concernés.
Activer l’expiration du mot de passe
Allez dans Console > Sécurité > Politique de mot de passe et trouvez la carte Expiration du mot de passe :
- Activez Activer l’expiration du mot de passe.
- Définissez la Période de validité du mot de passe (jours), entre 1 et 9999 jours.
- Enregistrez les modifications.
Le bouton reste désactivé tant que l’expérience de connexion ne dispose pas d’au moins une méthode mot de passe oublié (e-mail ou téléphone) avec un connecteur fonctionnel, car les utilisateurs ne peuvent réinitialiser un mot de passe expiré que via ce parcours. Pour la même raison, tant que la politique est activée, vous ne pouvez pas supprimer le dernier connecteur e-mail ou SMS qui prend en charge le mot de passe oublié. Si votre inscription ne nécessite pas d’adresse e-mail ou de numéro de téléphone, certains utilisateurs pourraient ne pas pouvoir recevoir de code de réinitialisation ; pensez donc à en collecter un lors de l’inscription.
Logto enregistre la date à laquelle le mot de passe d’un utilisateur a été défini ou modifié pour la dernière fois. Lorsque ce mot de passe atteint la durée de validité, la prochaine connexion par mot de passe de l’utilisateur est bloquée jusqu’à ce qu’il le réinitialise. Les utilisateurs sans date de changement de mot de passe enregistrée sont mesurés à partir du moment où vous activez la politique, donc l’activer n’expire pas tous les mots de passe d’un coup. Désactiver puis réactiver la politique réinitialise ce point de départ.
Lorsque l’utilisateur définit un nouveau mot de passe, que ce soit via mot de passe oublié, l’Account API ou la Management API, l’âge du mot de passe repart à zéro et toute expiration manuelle est effacée.
Expirer manuellement le mot de passe d’un utilisateur
Lorsque la politique d’expiration du mot de passe est activée, vous pouvez forcer un utilisateur spécifique à réinitialiser son mot de passe lors de sa prochaine connexion :
-
Console : Rendez-vous dans Console > Gestion des utilisateurs, ouvrez la page de détails de l’utilisateur et cliquez sur Expirer à côté du mot de passe de l’utilisateur. Confirmez ensuite l’action. Le bouton n’est disponible que si l’utilisateur a un mot de passe.
-
Management API : Appelez
PATCH /api/users/{userId}/password/expirationavec le corps suivant :{"isExpired": true}
Si la politique n’est pas activée, l’API retourne 400 avec le code d’erreur sign_in_experiences.password_expiration_not_enabled, et le bouton Expirer dans la Console est désactivé.
Un cas courant est un mot de passe dont on sait qu’il a été compromis. L’expirer oblige l’utilisateur à prouver qu’il possède son adresse e-mail ou son numéro de téléphone avec un code de vérification avant de pouvoir définir un nouveau mot de passe et se reconnecter. Si vous souhaitez uniquement expirer les mots de passe manuellement et ne pas imposer de rotation régulière à tous les utilisateurs, activez la politique avec une longue période de validité, par exemple 3650 jours.
Expirer un mot de passe ne déconnecte pas l’utilisateur de ses sessions existantes. Pour couper l’accès immédiatement, révoquez également les sessions actives de l’utilisateur et les applications tierces autorisées.
Ce que voient les utilisateurs finaux
Lorsqu’un utilisateur se connecte avec un mot de passe expiré, après avoir saisi le bon mot de passe, la page de connexion affiche une fenêtre modale avec le message "Votre mot de passe a expiré et doit être réinitialisé avant de pouvoir vous connecter." Cliquer sur Réinitialiser le mot de passe amène l’utilisateur vers le parcours mot de passe oublié avec son identifiant pré-rempli. Après vérification avec un code envoyé par e-mail ou téléphone et définition d’un nouveau mot de passe, il peut se reconnecter.
Si vous construisez votre propre interface de connexion avec l’Experience API, la requête de vérification du mot de passe échoue avec le code d’erreur password.expired (HTTP 422). Gérez cette erreur en envoyant l’utilisateur vers votre parcours de réinitialisation du mot de passe.
Vérification de conformité du mot de passe
Après avoir mis à jour la politique de mot de passe dans Logto, les utilisateurs existants peuvent toujours se connecter avec leur mot de passe actuel. Seuls les nouveaux comptes devront respecter la politique mise à jour.
Pour renforcer la sécurité, vous pouvez utiliser l’API POST /api/sign-in-exp/default/check-password API pour vérifier si le mot de passe d’un utilisateur respecte la politique actuelle définie dans l’expérience de connexion par défaut. Si ce n’est pas le cas, vous pouvez inviter l’utilisateur à mettre à jour son mot de passe via un parcours personnalisé utilisant l’Account API.
Ressources associées
Gérer les utilisateurs Inscription et connexionParamètres du compte via Account API
Concevoir votre politique de mot de passe