Cree uid=sysadmin et cn=sysadmin dans LDAP. Prouve sur idm-01 : le compte
s'authentifie, et le second passage ne touche a rien (changed=0, 7 taches
sautees) — idempotence par EXISTENCE, pas par conformite (D-67).
Il suit l'annuaire au lieu de se declarer au plan : il ecrit par `ldapi:///` et
doit tourner sur cet hote. Le declarer comme groupe obligerait chaque instance a
le poser sur le bon hote, et elles ne le nomment pas pareil (idm-01 ici,
id-ldap-01 chez Technolibre) — je l'ai d'abord pose sur infra-pki-01 par erreur.
Trois defauts trouves en le construisant :
1. `pwdReset` n'existe pas dans ce schema (overlay ppolicy non charge) :
l'entree entiere etait rejetee et `no_log` masquait la cause. J'avais suppose
un mecanisme sans verifier. Le role le DETECTE maintenant, et la doctrine ne
promet plus un changement force qui n'a pas lieu.
2. Le mot de passe aurait ete stocke EN CLAIR : `ldap_entry` ecrit userPassword
litteralement. Hache par `slappasswd -h {SSHA}` desormais.
3. `voute.py` ne scannait que roles/<groupe> : un role applique par un playbook
sans etre un groupe echappait au recensement, ce que D-20 interdit. Il suit
maintenant les listes `roles:` des playbooks.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
36 lines
1.7 KiB
YAML
36 lines
1.7 KiB
YAML
---
|
|
# --- AMORCAGE DES ACCES (D-67) ------------------------------------------------
|
|
# Ce role cree UN acces — celui du sysadmin — puis se retire. Il n'est PAS un
|
|
# gestionnaire de comptes : apres son passage, c'est une personne qui gouverne.
|
|
#
|
|
# IDEMPOTENCE PAR EXISTENCE, PAS PAR CONFORMITE. Si le compte est la, on n'y
|
|
# touche pas : ni mot de passe, ni groupes, ni attributs. Il a pu etre renomme,
|
|
# promu, deplace — c'est le droit de celui qui exploite. Reconcilier effacerait
|
|
# le compte cree la veille pour un nouvel employe.
|
|
#
|
|
# Voir docs/autorisation.md (§6 = runbook de reprise).
|
|
|
|
amorcage_acces_actif: true
|
|
|
|
# Le compte d'amorcage. `uid` est l'identifiant de connexion.
|
|
amorcage_acces_uid: "sysadmin"
|
|
amorcage_acces_nom: "Administrateur systeme"
|
|
amorcage_acces_courriel: "" # facultatif ; vide = pas d'attribut mail
|
|
|
|
# Le groupe qui porte l'habilitation. Les services le reconnaissent par
|
|
# `meta/acces.yml` — eux sont reconcilies, l'appartenance ne l'est pas.
|
|
amorcage_acces_groupe: "sysadmin"
|
|
|
|
# Le secret d'amorcage. GENERE par le depot (il en est la source : personne
|
|
# n'existe encore pour le choisir), depose en voute, et CHANGE A LA PREMIERE
|
|
# OUVERTURE. Ce n'est donc jamais *le* mot de passe de quelqu'un : c'est un jeton
|
|
# a usage unique. Sans le changement force, l'auteur du deploiement connaitrait
|
|
# le mot de passe du sysadmin.
|
|
amorcage_acces_secret: "{{ vault_sysadmin_amorcage | default('') }}"
|
|
|
|
# Force le changement a la premiere connexion (attribut LDAP `pwdReset`, lu par
|
|
# Keycloak et par la politique de mot de passe de slapd).
|
|
amorcage_acces_changement_force: true
|
|
|
|
# Connexion a l'annuaire — DERIVEE par le role `resoudre_annuaire`, jamais ecrite.
|
|
amorcage_acces_admin_password: "{{ vault_openldap_admin | default('') }}"
|