Configuration de gestion des mots de passe
Toute la configuration de la gestion des mots de passe se fait dans l'interface de Sesame
Pour y acceder depuis l'interface de Sesame :
Politique de mot de passe :
Cliquez sur le menu "Politique de mot de passe " :

Les differents paramètres de composition du mot de passe
- Longueur minimale : Le mot de passe devra au moins avoir cette longueur
- Entropie minimale : Le mot de passe devra au moins avoir ce score voir Entropie de Shannon
- Entropie considéré comme bonne : A partir de ce nombre nombre l'entropie du mot de passe est considérée comme bonne
Ces deux limites sont representé dans l'interface de changement de mot de passe par une barre de progression
- Entropie en dessous sdu minimal :
- Entropie entre le minimal et le seuil bon :
- Entropie au dessus du seuil du bon :
- Caractères obligatoires : Vous pouvez régler quels caractères obligatoires doit comporter le nouveau mot de passe
- Vérifier si le mot de passe est connu avec haveibeenpwned (voir https://haveibeenpwned.com/). Si le mot de passe est connu l'utilisateur ne pourra pas l'utiliser
Vérification HIBP et empreintes planifiées
Deux niveaux complémentaires :
| Option (interface) | Champ API | Effet |
|---|---|---|
| Vérifier les mots de passe compromis | checkPwned | Refus immédiat à la saisie si le mot de passe est dans HIBP (k-anonymity) |
| Stockage des empreintes HIBP | pwnedRecheckEnabled | Enregistre une empreinte SHA-1 chiffrée dans l'historique pour re-vérifier plus tard via cron |
Le stockage d'empreintes nécessite :
- l'historique des mots de passe (
passwordHistoryEnabled, activé par défaut) ; checkPwnedactivé ;- la variable d'environnement
SESAME_PASSWORD_HISTORY_HIBP_KEYsur l'orchestrateur.
Génération de la clé
Depuis le dépôt sesame-orchestrator :
make hibp-key-hex
# affiche : SESAME_PASSWORD_HISTORY_HIBP_KEY=<64_caracteres_hex>
# alternative base64 (32 octets décodés)
make hibp-key-b64
Formats acceptés :
- Hex : exactement 64 caractères hexadécimaux (32 octets) ;
- Base64 : chaîne qui décode en 32 octets.
Configuration Docker / .env
Ajouter dans le fichier d'environnement de sesame-orchestrator :
SESAME_PASSWORD_HISTORY_HIBP_KEY=votre_cle_generee
Puis redémarrer le conteneur. Sans cette clé, l'interface désactive le toggle « Stockage des empreintes HIBP » et la sauvegarde de la policy avec pwnedRecheckEnabled=true est refusée.
Activation dans l'interface
- Menu Paramètres → Politique de mot de passe.
- Activer Vérifier les mots de passe compromis.
- Activer Stockage des empreintes HIBP (Pwned Passwords) (si la clé est valide).
- Régler Âge max avant re-check HIBP (secondes) — par défaut 7 jours.
- Sauvegarder.
- Activer la tâche cron
identities-pwned-recheck(voir Configuration cron).
Sécurité et rotation de clé
- Le mot de passe en clair n'est pas stocké pour HIBP : seule l'empreinte SHA-1 chiffrée (
hibpSha1Enc). - Le serveur peut déchiffrer l'empreinte uniquement avec
SESAME_PASSWORD_HISTORY_HIBP_KEYpour interroger l'API HIBP en mode range (5 premiers caractères du hash envoyés, reste comparé localement). - Rotation de clé : sans ré-encryptage des entrées existantes, les anciennes empreintes ne pourront plus être re-vérifiées (statut « déchiffrement impossible » côté cron).
- Réinitialisez par SMS : L'utilisateur aura le choix de recevoir son code de réinitialisation par mail ou par SMS
Les paramêtres d'envoi
Initialisation du mot de passe
L'utilisateur recevra un lien pour activer son compte et définir son mot de passe. Cet email est envoyé sur l'adresse mail definie dans l'attribut paramétré dans Attribut de l'identité contenant le mail alternatif
Ex: additionalFields.attributes.supannPerson.supannAutreMail
Le lien envoyé est valide pendant une durée de temps determinée présent dans le paramètre Temps de vie du mail d'initialisation Ce temps est exprimé en secondes
Reset du mot de passe
Un code à 6 chiffres sera envoyé soit par mail, soit par SMS si celui-ci est activé (pour l'envoi SMS le serveur SMS devra être configuré)
Le temps de validité de ce paramêtre est à definir dans le champs : Temps de vie du code de reinitialisation (en secondes aussi)
Si le changement de mot de passe a été fait l'utilisateur sera redirigé vers le site présent dans le paramêtre **Url de redirection après un changement de mot de passe
Configuration au niveau de sesame-orchestrator
Paramêtres pour l'envoi du mail de validation du compte
Dans .env il faut ajouter une variable pour la composition du lien à cliquer :
SESAME_FRONT_MDP="https://monsite.dechanegementdemotdepasse.com"
Vous devez redemarrer Sesame-oechstrateur après cette modification
Modèle des mails
Documentation à jour : Templates de mails (conventions
mail_*, envoi manuel, API, variables).
Vous pouvez genérer votre propre modèle de mail. Voici les étapes à faire pour mettre à jour votre docker-compose.yml. Si l'installation est nouvelle vous pouvez sauter cette étape
- Créer dans configs/orchestrator un repertoire mail-templates
- Modifier docker-compose pour monter ce répertoire :
Dans le paragraphe volumes de sesame-orchestrator
- ./configs/sesame-orchestrator/mail-templates:/data/templates
- Copier les deux modèles dans le repertoire ./configs/sesame-orchestrator/mail-templates
cd ./configs/sesame-orchestrator/mail-templates
curl -L 'https://raw.githubusercontent.com/Libertech-FR/sesame-orchestrator/main/templates/initaccount.hbs' --output initaccount.hbs
curl -L "https://raw.githubusercontent.com/Libertech-FR/sesame-orchestrator/main/templates/resetaccount.hbs" --output resetaccount.hbs
Faire son modèle de mail
Les élements variables liés à l'identité sont entre double crochet '{ { variable } }'
- Pour l'initialisation du compte les variables sont :
- { { uid } } L'uid de l'identité
- { { url } } L'url pour l'activation du compte
- Pour la reinitialisation du compte les variables sont :
- { { displayName } }
- { { uid } }
- { { code } }
Pour composer son mail de façon graphique
Vous pouvez vous servir de mjml : https://mjml.io/. Ce site propose un éditeur en ligne https://mjml.io/try-it-live et de nombreux modèles 
Une fois le modèle composé sauvez le en html (bouton en haut "view-html") et copiez le contenu html dans le fichier
- ./configs/sesame-orchestrator/mail-templates/initaccount.hbs (pour le mail de validation du compte )
- ./configs/sesame-orchestrator/mail-templates/resetaccount.hbs (pour une demande de reinitialisation du mot de passe )
Exemple de fichier mjml :
<mjml>
<mj-body>
<mj-section>
<mj-column>
<mj-divider border-color="#F45E43"></mj-divider>
<mj-text font-size="20px" color="#F45E43" font-family="helvetica">bonjour {{ displayname }} votre compte a été créé. Votre login est {{ uid }}</mj-text>
</mj-column>
</mj-section>
<mj-section>
<mj-button href="{{ url }}" background-color="#F45E43" href="#">ACTIVEZ MON COMPTE</mj-button>
</mj-section>
</mj-body>
</mjml>
Vous devez relancer les containers
Test de l'envoi
Pour faire les tests de mails sans reel envoi vous pouvez creer un container maildev
Voici un docker-compose tout pret :
copiez le dans un repertoire (/data/maildev par exemple) puis lancer docker compose up -d
services:
maildev:
restart: always
image: maildev/maildev
container_name: maildev.local
ports:
- "1080:1080"
networks:
- sesame
networks:
sesame:
external: true
L'url à mettre dans l'interface de sesame dans serveur SMTP est : smtp://maildev.local:1025
Vous pourrez consulter les mails envoyés en vous connectant sur votre serveur http://monserveur:1080