Binding annuaire complété : icingaweb2 + client_ldap → resoudre_annuaire
Fin des 2 loose ends : icingaweb2 (LDAP dormant en mode SSO) résout via resoudre_annuaire (redéploiement changed=0, SSO intact) ; client_ldap (SSSD, dormant) ne pointe plus sur un idm-01 périmé. Plus aucun rôle ne code en dur l'hôte d'annuaire — un seul point de vérité. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
457b89927b
commit
1f1b722a00
5 changed files with 35 additions and 10 deletions
|
|
@ -44,8 +44,12 @@
|
|||
déréférencé, `no_log`). **Migrés + prouvés (config neutre, `changed=0`)** : `serveur_keycloak`
|
||||
(fédération LDAP — testmail token HTTP 200), `serveur_dovecot` + `serveur_postfix` (flux courriel
|
||||
Postfix→LDAP→LMTP→Dovecot **livré de bout en bout**). Piège appris : les *defaults* d'un rôle inclus
|
||||
ne persistent pas hors de son exécution — publier via `set_fact`. Reste : les defaults LDAP dormants
|
||||
d'`icingaweb2` (mode SSO, LDAP inutilisé) et `client_ldap` (référence périmée `idm-01`).
|
||||
ne persistent pas hors de son exécution — publier via `set_fact`.
|
||||
- **Binding annuaire complété — `icingaweb2` + `client_ldap` migrés vers `resoudre_annuaire`.** Fin des
|
||||
2 loose ends : `serveur_icingaweb2` (connexion LDAP dormante en mode SSO) résout via
|
||||
`resoudre_annuaire` (redéploiement `changed=0`, SSO intact) ; `client_ldap` (SSSD, dormant) ne pointe
|
||||
plus sur un `idm-01` périmé. **Plus AUCUN rôle ne code en dur l'hôte d'annuaire** — un seul point de
|
||||
vérité (`resoudre_annuaire`).
|
||||
- **Rôle `serveur_oauth2_proxy` — passerelle SSO OIDC générique (Keycloak) + Icinga Web 2 au SSO.**
|
||||
oauth2-proxy (v7.15.3, binaire GitHub) place Keycloak **devant** n'importe quelle app sans OIDC
|
||||
natif : elle reçoit l'utilisateur authentifié via en-tête, en auth `external`. Rôle paramétrable
|
||||
|
|
|
|||
|
|
@ -9,8 +9,9 @@ client_ldap_paquets:
|
|||
client_ldap_service: "sssd"
|
||||
|
||||
client_ldap_domaine: "{{ domaine_interne.split('.') | first }}"
|
||||
client_ldap_uri: "ldap://idm-01.{{ domaine_interne }}"
|
||||
client_ldap_base_dn: "dc={{ domaine_interne.split('.') | join(',dc=') }}"
|
||||
# uri + base_dn : fournis par le rôle partagé resoudre_annuaire (tasks « Adopter »).
|
||||
# Rôle DORMANT (login LDAP niveau OS via SSSD, non câblé). L'activer requiert client_pki
|
||||
# (confiance step_ca pour LDAPS) et client_ldap_tls_reqcert: "demand".
|
||||
|
||||
# Bind de lecture. Vide => bind anonyme (lecture publique de l'annuaire).
|
||||
client_ldap_bind_dn: ""
|
||||
|
|
|
|||
|
|
@ -1,4 +1,13 @@
|
|||
---
|
||||
- name: Résoudre l'annuaire (rôle partagé)
|
||||
ansible.builtin.include_role:
|
||||
name: resoudre_annuaire
|
||||
|
||||
- name: Adopter la connexion annuaire pour SSSD
|
||||
ansible.builtin.set_fact:
|
||||
client_ldap_uri: "{{ resoudre_annuaire_uri }}"
|
||||
client_ldap_base_dn: "{{ resoudre_annuaire_base_dn }}"
|
||||
|
||||
- name: Installer SSSD et les modules LDAP
|
||||
ansible.builtin.apt:
|
||||
name: "{{ client_ldap_paquets }}"
|
||||
|
|
|
|||
|
|
@ -32,13 +32,10 @@ serveur_icingaweb2_icinga_groupe: "serveur_icinga"
|
|||
serveur_icingaweb2_redis_host: "127.0.0.1"
|
||||
serveur_icingaweb2_redis_port: 6380
|
||||
|
||||
# Authentification LDAP (OpenLDAP, LDAPS via la confiance step_ca / client_pki).
|
||||
serveur_icingaweb2_ldap_url: "ldaps://id-ldap-01.{{ domaine_interne }}"
|
||||
# Authentification LDAP (OpenLDAP, LDAPS). La connexion (url, base, users_dn, bind_dn,
|
||||
# bind_password) est fournie par le rôle partagé resoudre_annuaire (voir tasks « Adopter la
|
||||
# connexion annuaire »). Utilisée seulement en mode auth "ldap" ; en SSO, résolue mais inutilisée.
|
||||
serveur_icingaweb2_ldap_port: 636
|
||||
serveur_icingaweb2_ldap_base: "dc={{ domaine_interne.split('.') | join(',dc=') }}"
|
||||
serveur_icingaweb2_ldap_users_dn: "ou=people,dc={{ domaine_interne.split('.') | join(',dc=') }}"
|
||||
serveur_icingaweb2_ldap_bind_dn: "cn=admin,dc={{ domaine_interne.split('.') | join(',dc=') }}"
|
||||
serveur_icingaweb2_ldap_bind_password: "{{ vault_openldap_admin | default('') }}"
|
||||
serveur_icingaweb2_ldap_user_class: "inetOrgPerson"
|
||||
serveur_icingaweb2_ldap_user_attr: "uid"
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,20 @@
|
|||
vars:
|
||||
resoudre_base_groupe: "{{ serveur_icingaweb2_icinga_groupe }}"
|
||||
|
||||
- name: Résoudre l'annuaire (rôle partagé)
|
||||
ansible.builtin.include_role:
|
||||
name: resoudre_annuaire
|
||||
|
||||
- name: Adopter la connexion annuaire pour Icinga Web 2
|
||||
ansible.builtin.set_fact:
|
||||
serveur_icingaweb2_ldap_url: "{{ resoudre_annuaire_uri }}"
|
||||
serveur_icingaweb2_ldap_port: "{{ resoudre_annuaire_port }}"
|
||||
serveur_icingaweb2_ldap_base: "{{ resoudre_annuaire_base_dn }}"
|
||||
serveur_icingaweb2_ldap_users_dn: "{{ resoudre_annuaire_users_dn }}"
|
||||
serveur_icingaweb2_ldap_bind_dn: "{{ resoudre_annuaire_bind_dn }}"
|
||||
serveur_icingaweb2_ldap_bind_password: "{{ resoudre_annuaire_bind_password }}"
|
||||
no_log: true
|
||||
|
||||
- name: Installer Icinga Web 2 + module IcingaDB + PHP-FPM + nginx
|
||||
ansible.builtin.apt:
|
||||
name: "{{ serveur_icingaweb2_paquets }}"
|
||||
|
|
|
|||
Loading…
Reference in a new issue