Le realm portait une politique d'acces complete et aucun moyen d'ecrire a qui que ce soit. Tout oubli remontait donc a l'exploitant, qui n'avait d'autre choix que de manipuler le mot de passe d'autrui. - serveur_keycloak/tasks/courriel-realm.yml : reconcilie smtpServer et resetPasswordAllowed ; hote du relais DERIVE de applications.postfix.hote, et refus explicite si le plan ne declare pas de MTA. - passe par l'API d'administration : kcadm.sh accepte les deux formes -s sur une map, sort en succes et n'ecrit rien (smtpServer reste vide). - amorcage_acces_courriel redevient a declarer : cette adresse designe une personne, hors du systeme qu'on amorce ; une boite interne serait illisible tant qu'on n'a pas l'acces qu'on cherche justement a recuperer. - autorisation.md §6.6 : le mecanisme, ses deux conditions, et l'ecart d'adresse laisse par l'ancien mode READ_ONLY de la federation. Preuve : banniere SMTP lue depuis idm-01, RCPT TO accepte, execute-actions-email declenche, MTA en starttls -> relay=mx.chezlepro.ca status=sent (250). Second deploiement changed=0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
44 lines
2.2 KiB
YAML
44 lines
2.2 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"
|
|
# A DECLARER — la seule valeur de ce role qui ne peut PAS se deriver. Elle
|
|
# designe une personne, qui est par definition hors du systeme qu'on amorce :
|
|
# une adresse `{{ amorcage_acces_uid }}@{{ '{{' }} domaine_interne {{ '}}' }}`
|
|
# serait servie par une boite que l'exploitant ne peut pas encore lire.
|
|
#
|
|
# Sans elle, « mot de passe oublie » (serveur_keycloak) affiche un ecran qui
|
|
# promet un courriel dont l'adresse n'existe nulle part, et le seul recours
|
|
# redevient l'exploitant manipulant le mot de passe d'autrui.
|
|
amorcage_acces_courriel: ""
|
|
|
|
# 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('') }}"
|