Set-OPS-Public/roles/resoudre_politique_mdp/defaults/main.yml

35 lines
1.9 KiB
YAML
Raw Normal View History

identite : une declaration de politique de mot de passe, deux executants Quatre defauts mesures dans l'integration Keycloak/LDAP, meme famille : une valeur declaree d'un cote, consommee de l'autre, rien qui verifie la jonction. 1. Aucune regle ne s'appliquait sur le chemin d'un vrai utilisateur. Sonde : « abcd » refuse par l'operation etendue LDAP, accepte par Keycloak (204), puis actif pour l'authentification. Keycloak ecrivait userPassword en direct (ppolicy aveugle) et le realm n'avait aucune passwordPolicy. 2. ldap_entry ne fait que CREER : la politique etait figee a sa creation. Le depot disait pwdMustChange TRUE, le serveur FALSE — une reconstruction from-zero aurait ressuscite la boucle du 2026-08-07. ldap_attrs state=exact reconcilie la politique et l'overlay (DN lu, pas devine). 3. syncRegistrations absent : un compte cree dans Keycloak n'atteignait jamais ou=people — acces web, aucune boite, invisible du modele de groupes. 4. Le prenom pointait sur cn (nom complet) : « Administrateur systeme systeme ». Ajoute roles/resoudre_politique_mdp : LA declaration, traduite en pwdPolicy, passwordPolicy et anti-force-brute. Les deux roles la consomment sans la redeclarer. usePasswordModifyExtendedOp ET validatePasswordPolicy : la seconde est porteuse, Keycloak se liant en rootDN et slapd n'appliquant pas ses controles de qualite au rootDN. La premiere seule aurait paru juste sans tenir. Verification : abcd -> 400 « minimum length 12 » et absent de LDAP ; mot de passe conforme -> 204 puis ldapwhoami accepte ; POST users -> 201 ET present dans ou=people. Second passage des deux playbooks : changed=0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-08 06:28:10 -04:00
---
# LA declaration de la politique de mot de passe — une seule, en termes neutres.
# Les deux dialectes (ppolicy OpenLDAP, passwordPolicy Keycloak) en sont DERIVES.
#
# Pourquoi un role a part : les regles vivaient dans `serveur_openldap_ppolicy` et
# nulle part ailleurs. LDAP ne sait que refuser, sans jamais dire pourquoi a l'ecran ;
# Keycloak, lui, ne validait rien du tout (`passwordPolicy` vide). Chacun des deux
# deleguait la verification a l'autre, et personne ne la faisait : mesure du
# 2026-08-08, `abcd` refuse par l'operation etendue LDAP et accepte par Keycloak,
# puis actif pour l'authentification.
resoudre_politique_mdp_longueur_min: 12
# Interdit de reprendre un mot de passe recent (0 = pas d'historique).
resoudre_politique_mdp_historique: 3
# Refuse un mot de passe qui contient l'identifiant ou l'adresse.
resoudre_politique_mdp_interdire_identifiant: true
# Verrouillage apres echecs repetes. Cote LDAP c'est `ppolicy`, cote Keycloak c'est
# la protection anti-force-brute du realm — deux mecanismes distincts, memes chiffres.
resoudre_politique_mdp_verrouillage_actif: true
resoudre_politique_mdp_verrouillage_echecs: 5
resoudre_politique_mdp_verrouillage_duree: 900 # secondes
resoudre_politique_mdp_verrouillage_fenetre: 900 # secondes
# `pwdMustChange` — DELIBEREMENT a false, et ce n'est pas un oubli.
#
# Il signifie « quand un ADMINISTRATEUR pose un mot de passe, l'utilisateur devra le
# changer ». Or Keycloak se lie en rootDN : tout changement passe par lui EST un
# changement administrateur. L'utilisateur choisissait donc un nouveau mot de passe,
# ppolicy reposait aussitot `pwdReset`, et l'ecran redemandait un changement — sans
# fin. Vecu le 2026-08-07. Le mecanisme est incompatible par construction avec un IdP
# qui relaie le changement ; le changement force a la premiere connexion est obtenu
# par l'action requise UPDATE_PASSWORD de Keycloak, qui, elle, se consomme.
resoudre_politique_mdp_changement_impose: false