Set-OPS-Public/roles/serveur_keycloak
Daniel Allaire 0a0563c226 Consolider : binding annuaire (resoudre_annuaire) — keycloak/dovecot/postfix
Rôle utilitaire partagé resoudre_annuaire (comme resoudre_base) : dérive la
connexion OpenLDAP du domaine_interne + un hôte surchargeable, au lieu de
répéter ldaps://id-ldap-01... dans chaque rôle. Facts uri/port/base_dn/
users_dn/bind_dn/bind_password (secret no_log).

Migrés + prouvés (config neutre, changed=0) : keycloak (fédération, testmail
token 200), dovecot + postfix (flux courriel livré de bout en bout).

Piège : les defaults d'un rôle inclus ne persistent pas hors de son
exécution — publier via set_fact.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 22:23:22 -04:00
..
defaults Consolider : binding annuaire (resoudre_annuaire) — keycloak/dovecot/postfix 2026-07-03 22:23:22 -04:00
handlers Rendre le dry-run (--check) fiable sur les rôles applicatifs 2026-07-01 21:01:53 -04:00
meta Dimensionner les ressources VM depuis les logiciels hébergés 2026-06-30 10:07:04 -04:00
tasks Consolider : binding annuaire (resoudre_annuaire) — keycloak/dovecot/postfix 2026-07-03 22:23:22 -04:00
templates serveur_keycloak : fédération LDAP (modèle A) automatisée et prouvée 2026-07-03 11:29:23 -04:00
README.md Set-OPS — moteur d'ecosystemes numeriques souverains (Alliance Boreale) 2026-06-24 20:17:46 -04:00

serveur_keycloak

SSO / IAM Keycloak (distribution Quarkus) — hub d'authentification centralisée (OIDC/SAML) pour les services internes.

Rôle

  • Installe un JRE, télécharge et extrait la distribution Keycloak dans /opt/keycloak.
  • Configure la base PostgreSQL via le registre instance/plan/bases-donnees.yml (entrée keycloak).
  • Publie derrière serveur_nginx (TLS à l'edge) : hostname, proxy-headers=xforwarded, http-enabled=true.
  • Secrets (mot de passe BD + admin bootstrap) dans /etc/keycloak/keycloak.env (0640, no_log).
  • kc.sh build --db=postgres (une fois par version) puis service systemd start --optimized.

Premier consommateur du registre de BD

L'entrée keycloak de instance/plan/bases-donnees.yml fait que :

  1. serveur_postgresql crée la base keycloak + le compte propriétaire keycloak.
  2. Ce rôle lit la même entrée pour bâtir sa connexion (db-url-database, db-username, mot de passe = vault_bd_keycloak).

Mot de passe partagé, source unique. Dépendance serveur_keycloak requiert serveur_postgresql actif déjà dans docs/dependances-groupes.yml.

Secrets requis (Vault)

serveur_keycloak_admin_password: "{{ vault_keycloak_admin }}"   # admin bootstrap
vault_bd_keycloak: "..."                                          # mot de passe BD (partage avec postgres)

Variables principales

Variable Défaut Rôle
serveur_keycloak_version 26.0.7 Version (à vérifier/bumper sur keycloak.org/downloads)
serveur_keycloak_hostname keycloak.exemple.internal Hostname public (via nginx)
serveur_keycloak_db_host 10.0.13.11 IP de data-01 (serveur_postgresql)
serveur_keycloak_admin_user admin Admin bootstrap

Notes / limites

  • Version : à confirmer/bumper ; l'URL suit le motif officiel des releases GitHub.
  • L'unité systemd est dérivée des conventions Keycloak (la doc officielle ne fournit pas d'unité) — sandboxing volontairement modéré pour ne pas casser le démarrage.
  • Le site nginx publiant Keycloak se déclare côté serveur_nginx (serveur_nginx_sites), pas ici.
  • Certificats : TLS terminé à l'edge ; aucun certificat sur Keycloak.

Prérequis

  • Réseau sortant pour télécharger la distribution.
  • Base PostgreSQL atteignable (dépendance serveur_postgresql).