Le rôle configure via kcadm (idempotent) un realm applicatif + un provider de stockage LDAP READ_ONLY vers OpenLDAP (LDAPS, uid/entryUUID/inetOrgPerson). LDAPS validé par le truststore système (truststore-paths → bundle CA, racine step_ca via client_pki, désormais requis sur le nœud). Secrets par environment + no_log. tasks/federation-ldap.yml. Éprouvé avant codification, puis prouvé par le rôle : testmail (user LDAP) obtient un token via le realm chezlepro (HTTP 200) ; redéploiement idempotent (changed=0). Modèle d'identité A (OpenLDAP source → Keycloak fédéré) complet. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
37 lines
2 KiB
YAML
37 lines
2 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: "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"
|
|
serveur_keycloak_ldap_nom: "openldap"
|
|
serveur_keycloak_ldap_url: "ldaps://id-ldap-01.{{ domaine_interne }}:636"
|
|
serveur_keycloak_ldap_users_dn: "ou=people,dc={{ domaine_interne.split('.') | join(',dc=') }}"
|
|
serveur_keycloak_ldap_bind_dn: "cn=admin,dc={{ domaine_interne.split('.') | join(',dc=') }}"
|
|
serveur_keycloak_ldap_bind_password: "{{ vault_openldap_admin | default('') }}"
|
|
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"
|