Set-OPS-Public/roles/serveur_openldap/defaults/main.yml
Daniel Allaire 6e46ace4de sondes : les cinq qui manquaient le plus (autorite, base, annuaire, zones, edge)
CORRECTION DE COMPTE D ABORD. J avais annonce cinq groupes sans sonde. La
mesure en donne VINGT-SEPT : j avais compte ceux que j avais en tete, pas
ceux que le depot contient. Il en reste vingt-deux.

LES CINQ, PAR ORDRE DE DEGAT SILENCIEUX.

autorite (step_ca) — la plus urgente : nos certificats vivent 24 h, une AC
muette ne casse rien aujourd hui et casse TOUT demain, d un coup, sur les
21 machines. Elle surveille aussi l expiration de la RACINE, que personne
ne regarde parce qu elle vit des annees (relevee a 3642 jours).

base (postgresql) — une VRAIE requete, pas pg_isready : celui-ci dit que
le port repond, pas que la base sert. Plus le compte des connexions : a
saturation, chaque application tombe sans que la base ait l air morte.

annuaire (openldap) — elle COMPTE les entrees. Un annuaire vide repond
success a tout : le mensonge des sauvegardes vides, vert et sans contenu.

zones (powerdns) — un autoritatif sans zone repond NXDOMAIN a tout, ce qui
se lit comme « ce nom n existe pas ».

edge (nginx) — elle valide la configuration SUR DISQUE : nginx sert la
derniere valide, et une configuration cassee ne se voit qu au prochain
demarrage, souvent des mois plus tard.

Les cinq eprouvees vertes sur le sain puis rouges PAR PARAMETRE, sans
toucher a un service.

Etat : 20 sondes sur 19 roles, 23 services distincts, 70 instances, 67 au
vert. Les trois autres sont connues : deux sauvegardes sans donnee a
emporter, et Loki en delai de stabilisation apres redeploiement.

make prouver : CONFORME, 64 OK, 0 echec, 0 saute.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
2026-09-10 03:47:03 -04:00

68 lines
3.5 KiB
YAML

---
serveur_openldap_paquets:
- slapd
- ldap-utils
- python3-ldap # requis par community.general.ldap_entry sur la cible
serveur_openldap_service: "slapd"
# Identite de l'annuaire.
serveur_openldap_domaine: "{{ domaine_interne }}"
serveur_openldap_organisation: "{{ organisation | default('Organisation') }}"
# Base DN derivee du domaine interne (ex. acme.local -> dc=acme,dc=local).
serveur_openldap_base_dn: "dc={{ serveur_openldap_domaine.split('.') | join(',dc=') }}"
serveur_openldap_admin_dn: "cn=admin,{{ serveur_openldap_base_dn }}"
# Secret OBLIGATOIRE (Ansible Vault).
serveur_openldap_admin_password: "{{ vault_openldap_admin | default('') }}" # rempli depuis la voute (vault_openldap_admin)
# Unites organisationnelles de base.
serveur_openldap_ou:
- people
- groups
# --- TLS (LDAPS + STARTTLS) via le certificat d'hote step_ca ---
# Requiert l'integration client_pki sur le noeud (fournit le cert + le renouvellement).
serveur_openldap_tls_actif: true
# Certificat SOURCE depose par client_pki (root:root 600, illisible par openldap).
serveur_openldap_tls_source_cert: "/etc/step/certs/{{ ansible_fqdn | default(ansible_hostname) }}.crt"
serveur_openldap_tls_source_cle: "/etc/step/certs/{{ ansible_fqdn | default(ansible_hostname) }}.key"
serveur_openldap_tls_source_ca: "/etc/step/certs/root_ca.crt"
# Emplacement PONT, lisible par openldap ; resynchronise a chaque renouvellement.
serveur_openldap_tls_dir: "/etc/ldap/tls"
# Services slapd exposes (ldaps ajoute pour le TLS ; ldapi pour l'admin local).
serveur_openldap_services: "ldap:/// ldaps:/// ldapi:///"
# --- Politique de mot de passe (overlay ppolicy) ------------------------------
# Sans cet overlay, `pwdReset` n'existe pas dans le schema : le changement force a
# la premiere ouverture est impossible, et rien ne contraint la qualite ni ne
# verrouille apres des echecs repetes. Mesure le 2026-08-07 : seul `back_mdb`
# etait charge. Voir docs/autorisation.md §3.
#
# Depuis OpenLDAP 2.5, le schema ppolicy est INTEGRE au module : aucun fichier
# `.ldif` a charger, contrairement a 2.4.
serveur_openldap_ppolicy_actif: true
# `pwdMustChange` est ce qui donne son effet a `pwdReset` : sans lui, marquer une
# entree n'oblige a rien. Les deux vont ensemble.
# Les REGLES elles-memes ne sont plus declarees ici : elles vivent dans
# `resoudre_politique_mdp`, qui les traduit AUSSI pour Keycloak. Tant qu'elles
# n'existaient que de ce cote, Keycloak n'en validait aucune et le chemin que
# prend un vrai utilisateur ne verifiait rien (mesure du 2026-08-08).
# Laisser vide ; ne surcharger que pour ajouter un attribut pwd* hors politique.
serveur_openldap_ppolicy_extra: {}
# Reglages de l'OVERLAY lui-meme (pas de la politique). `HashCleartext` hache un
# mot de passe recu en clair au lieu de le stocker tel quel : filet de securite si
# un client oublie de hacher.
# `UseLockout` laisse volontairement a FALSE : dire « ce compte est verrouille »
# renseigne un attaquant sur l'existence du compte. L'utilisateur legitime voit
# « identifiants invalides » et attend la duree de verrouillage.
serveur_openldap_ppolicy_hash_cleartext: true
serveur_openldap_ppolicy_use_lockout: false
# --- Sonde de supervision -----------------------------------------------------------
serveur_openldap_sonde_base: "{{ serveur_openldap_base_dn | default('dc=chezlepro,dc=internal') }}"
# UN MINIMUM, PAS UNE EGALITE : l'annuaire grandit. Ce chiffre dit « il reste peuple »,
# pas « il contient exactement ceci ». Trop haut, il crierait a chaque menage.
serveur_openldap_sonde_minimum: 5