Set-OPS-Public/roles/serveur_keycloak/tasks/journalisation.yml
Daniel Allaire dd84ed011c keycloak : journaliser les evenements du realm
Deux services n'aboutissaient pas et tout etait correct cote serveur — clients
OIDC, URI de rappel, secret identique (meme empreinte), CA de confiance,
aucune restriction de domaine. Le premier saut rejoue au curl montrait des
parcours sains.

Et la, plus rien a examiner : eventsEnabled = False. Keycloak ne gardait
aucune trace, ni des connexions ni des echecs. Manque de diagnostic, mais
surtout d'exploitation : « un sysadmin l'exploite sans IA » suppose qu'il
puisse lire lui-meme ce qui s'est passe.

Journal (connexions + actions d'administration, retention 14 jours)
reconcilie par le role, pas active a la main dans une console.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-08 10:57:42 -04:00

40 lines
1.8 KiB
YAML

---
# Journal des evenements du realm. Sans lui, Keycloak ne garde AUCUNE trace des
# connexions : ni qui est entre, ni pourquoi une authentification a echoue. Constate
# le 2026-08-08 en cherchant a diagnostiquer deux services qui n'aboutissaient pas —
# tout etait correct cote serveur, et il n'existait aucun moyen de savoir ce que
# l'utilisateur avait rencontre.
#
# C'est aussi une exigence d'exploitation : « un sysadmin l'exploite sans IA » suppose
# qu'il puisse lire lui-meme ce qui s'est passe.
- name: Lire la configuration du journal
ansible.builtin.uri:
url: "http://localhost:8080/admin/realms/{{ serveur_keycloak_realm }}/events/config"
headers:
Authorization: "Bearer {{ serveur_keycloak_pol_jeton.json.access_token }}"
register: serveur_keycloak_journal_actuel
no_log: true
- name: Composer la configuration attendue
ansible.builtin.set_fact:
serveur_keycloak_journal_attendu:
eventsEnabled: "{{ serveur_keycloak_journal_actif | bool }}"
eventsExpiration: "{{ serveur_keycloak_journal_retention | int }}"
adminEventsEnabled: "{{ serveur_keycloak_journal_admin | bool }}"
adminEventsDetailsEnabled: "{{ serveur_keycloak_journal_admin | bool }}"
- name: Activer le journal des évènements du realm
ansible.builtin.uri:
url: "http://localhost:8080/admin/realms/{{ serveur_keycloak_realm }}/events/config"
method: PUT
status_code: [204]
headers:
Authorization: "Bearer {{ serveur_keycloak_pol_jeton.json.access_token }}"
body_format: json
body: "{{ serveur_keycloak_journal_actuel.json | combine(serveur_keycloak_journal_attendu) }}"
no_log: true
changed_when: true
when: >-
(serveur_keycloak_journal_actuel.json | combine(serveur_keycloak_journal_attendu))
!= serveur_keycloak_journal_actuel.json