--- # Creation des ROLES DE REALM — extrait de `rbac-oidc.yml` le 2026-08-08. # # Ces roles sont un PREREQUIS de `groupes-ldap.yml`, qui les attache aux groupes projetes # depuis l'annuaire. Ils vivaient pourtant dans `rbac-oidc.yml`, execute APRES — et le # defaut est reste invisible aussi longtemps que le realm a existe avec ses roles deja # crees par un passage precedent. # # La premiere reconstruction from-zero l'a fait tomber au premier essai : realm neuf, et # `groupes-ldap` a tente d'attacher `grafana-admin` a un groupe alors que seuls les roles # integres (`offline_access`, `uma_authorization`, `default-roles-*`) existaient. # # Les deux autres etapes de `rbac-oidc.yml` restent APRES `clients-oidc.yml` : elles # posent un mapper sur les clients et assignent des roles a des utilisateurs. Trois # dependances distinctes, trois moments distincts — les melanger etait le defaut. - name: Assurer les roles de realm (kcadm, idempotent) ansible.builtin.shell: executable: /bin/bash cmd: | set -euo pipefail KC={{ serveur_keycloak_home }}/bin/kcadm.sh "$KC" config credentials --server http://localhost:8080 --realm master \ --user {{ serveur_keycloak_admin_user }} --password "$KC_ADMIN_PW" >/dev/null if "$KC" get roles/{{ item }} -r {{ serveur_keycloak_realm }} >/dev/null 2>&1; then echo SETOPS_OK else "$KC" create roles -r {{ serveur_keycloak_realm }} -s name={{ item }} >/dev/null echo SETOPS_CHANGED fi environment: KC_ADMIN_PW: "{{ serveur_keycloak_admin_password }}" loop: "{{ serveur_keycloak_realm_roles }}" register: serveur_keycloak_role_reg changed_when: "'SETOPS_CHANGED' in serveur_keycloak_role_reg.stdout" no_log: true when: - not ansible_check_mode - serveur_keycloak_realm_roles | length > 0