Set-OPS-Public/roles/serveur_keycloak/defaults/main.yml
Daniel Allaire 867e2f8cdc Découplage instance : realm centralisé + vars génériques
Fin des dernières poches de 'codé en dur' liées à l'instance d'origine :
- realm SSO centralisé sur l'intrant identite_realm (defaut chezlepro,
  retro-compatible) ; les 4 rôles (keycloak/forgejo/grafana/oauth2_proxy)
  en dérivent. Expose dans la GUI (panneau Intrants).
- vars brandees renommees generiques : chezlepro_timezone -> fuseau_horaire,
  chezlepro_organisation -> organisation (chrony, openldap, GUI, docs).

Aucune reference fonctionnelle aux anciens noms. Le moteur ne porte plus le
nom d'un tenant. Technolibre a son propre realm (technolibre).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 00:47:44 -04:00

65 lines
3.5 KiB
YAML

---
# Distribution Keycloak (Quarkus). Verifier/ajuster la version sur keycloak.org/downloads.
serveur_keycloak_version: "26.0.7"
serveur_keycloak_url: "https://github.com/keycloak/keycloak/releases/download/{{ serveur_keycloak_version }}/keycloak-{{ serveur_keycloak_version }}.tar.gz"
serveur_keycloak_java_paquet: "default-jre-headless"
serveur_keycloak_home: "/opt/keycloak"
serveur_keycloak_utilisateur: "keycloak"
serveur_keycloak_service: "keycloak"
# Publication (derriere serveur_nginx, TLS termine a l'edge).
serveur_keycloak_hostname: "keycloak.{{ domaine_interne }}"
# Base de donnees : resolue depuis le registre par le groupe consommateur.
serveur_keycloak_groupe: "serveur_keycloak"
# IP interne du serveur PostgreSQL (data-01, cf. nomenclature).
serveur_keycloak_db_host: "" # dérivé (FQDN) par resoudre_base au déploiement
# Secrets (Ansible Vault) — obligatoires.
serveur_keycloak_admin_user: "admin"
serveur_keycloak_admin_password: "{{ vault_keycloak_admin | default('') }}" # rempli depuis la voute (vault_keycloak_admin)
# --- Fédération LDAP : OpenLDAP source de vérité (modèle d'identité A) ---
# Keycloak lit l'annuaire (READ_ONLY) ; les users LDAP se connectent via le SSO.
# Requiert client_pki sur ce nœud (racine step_ca dans le bundle système pour LDAPS).
serveur_keycloak_ldap_federation: true
serveur_keycloak_realm: "{{ identite_realm | default('chezlepro') }}"
# Thèmes du realm (déployés depuis files/themes/). Vide = thème Keycloak par défaut.
serveur_keycloak_login_theme: ""
serveur_keycloak_account_theme: ""
# Cache des ressources de thème. true = prod (perf). false = lab (voir les tweaks sans casse-cache).
serveur_keycloak_theme_cache: true
serveur_keycloak_ldap_nom: "openldap"
# Connexion à l'annuaire (url, users_dn, bind_dn, bind_password) : fournie par le rôle
# partagé resoudre_annuaire (voir tasks/main.yml « Adopter la connexion annuaire »).
serveur_keycloak_ldap_username_attr: "uid"
serveur_keycloak_ldap_uuid_attr: "entryUUID"
serveur_keycloak_ldap_object_classes: "inetOrgPerson"
# Bundle d'AC de confiance (contient la racine step_ca, posée par client_pki) pour LDAPS.
serveur_keycloak_truststore_path: "/etc/ssl/certs/ca-certificates.crt"
# --- Clients OIDC applicatifs (enregistres dans le realm, kcadm idempotent) ---
# Chaque app qui delegue son auth a Keycloak declare ici son client confidentiel.
# Le 'secret' reference la MEME variable de voute que l'app (ex. grafana : vault_grafana_oidc).
# Ex. (a mettre en group_var d'instance, pas en defaut) :
# serveur_keycloak_clients:
# - clientId: grafana
# redirect_uris: ["https://grafana.{{ domaine_interne }}/login/generic_oauth"]
# web_origins: ["https://grafana.{{ domaine_interne }}"]
# secret: "{{ vault_grafana_oidc }}"
serveur_keycloak_clients: []
# --- RBAC OIDC (additif, idempotent) ---
# Rôles de realm à garantir (ex. ['grafana-admin', 'grafana-editor']).
serveur_keycloak_realm_roles: []
# Clients recevant le mapper « roles » (rôles de realm → claim 'roles' dans le jeton).
serveur_keycloak_role_mapper_clients: []
# Assignations rôle→utilisateur (ex. [{user: testmail, role: grafana-editor}]).
# En prod, préférer l'assignation via groupe d'annuaire ; ici, explicite pour la preuve.
serveur_keycloak_role_assignments: []
# TLS vers PostgreSQL (zero-confiance). Vide = pas de verif (compat). 'verify-full' =
# chiffre + verifie le cert serveur contre le root_ca step-ca (l'hote doit etre dans le SAN).
serveur_keycloak_db_sslmode: ""
serveur_keycloak_db_sslrootcert: "/etc/step/certs/root_ca.crt"