--- # Role utilitaire (pas un groupe deployable) : traduit LA declaration unique dans les # deux dialectes. Voir defaults/main.yml. # # Sorties (facts) : # resoudre_politique_mdp_ldap — attributs pwd* de l'entree pwdPolicy # resoudre_politique_mdp_keycloak — chaine `passwordPolicy` du realm # resoudre_politique_mdp_brute — protection anti-force-brute du realm - name: Exiger une politique coherente ansible.builtin.assert: that: - resoudre_politique_mdp_longueur_min | int >= 8 - resoudre_politique_mdp_historique | int >= 0 fail_msg: >- Politique de mot de passe incoherente : une longueur minimale sous 8 caracteres ne protege rien, et un historique negatif n'a pas de sens. - name: Dériver la politique dans les deux dialectes ansible.builtin.set_fact: resoudre_politique_mdp_ldap: >- {{ { 'pwdAttribute': 'userPassword', 'pwdCheckQuality': '1', 'pwdMinLength': resoudre_politique_mdp_longueur_min | string, 'pwdInHistory': resoudre_politique_mdp_historique | string, 'pwdMustChange': 'TRUE' if resoudre_politique_mdp_changement_impose | bool else 'FALSE', 'pwdAllowUserChange': 'TRUE', 'pwdLockout': 'TRUE' if resoudre_politique_mdp_verrouillage_actif | bool else 'FALSE', 'pwdMaxFailure': resoudre_politique_mdp_verrouillage_echecs | string, 'pwdLockoutDuration': resoudre_politique_mdp_verrouillage_duree | string, 'pwdFailureCountInterval': resoudre_politique_mdp_verrouillage_fenetre | string, } }} resoudre_politique_mdp_keycloak: >- {{ ( ['length(' ~ resoudre_politique_mdp_longueur_min | int ~ ')'] + (['passwordHistory(' ~ resoudre_politique_mdp_historique | int ~ ')'] if resoudre_politique_mdp_historique | int > 0 else []) + (['notUsername', 'notEmail'] if resoudre_politique_mdp_interdire_identifiant | bool else []) ) | join(' and ') }} resoudre_politique_mdp_brute: >- {{ { 'bruteForceProtected': resoudre_politique_mdp_verrouillage_actif | bool, 'failureFactor': resoudre_politique_mdp_verrouillage_echecs | int, 'waitIncrementSeconds': resoudre_politique_mdp_verrouillage_duree | int, 'maxFailureWaitSeconds': resoudre_politique_mdp_verrouillage_duree | int, 'maxDeltaTimeSeconds': resoudre_politique_mdp_verrouillage_fenetre | int, } }}