--- # 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: "10.0.13.11" # 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: "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"