Ajout de la gestion des rôles et des permissions pour Keycloak dans le playbook Ansible, incluant la création de rôles et de groupes, ainsi que l'attribution de permissions spécifiques aux rôles TEACHERS et STUDENTS.

This commit is contained in:
Kevin 2025-02-20 16:33:27 +01:00
parent 788b58282b
commit 437174c1cc

View File

@ -18,6 +18,21 @@
keycloak_admin_last_name: "Administrator"
check_file: "/opt/keycloak/data/.configured"
keycloak_bin: "/opt/keycloak/bin/kcadm.sh"
keycloak_roles:
- TEACHERS
- STUDENTS
keycloak_groups:
- TESTING
teacher_permissions:
- account/view-groups
- account/view-applications
- master-realm/manage-users
- account/delete-account
- master-realm/view-users
- account/manage-account
- account/view-profile
student_permissions:
- master-realm/view-users
tasks:
- name: Lancer le service Keycloak
@ -62,6 +77,59 @@
debug:
msg: "Erreur lors de la configuration de l'utilisateur administrateur"
- name: Créer les rôles
block:
- name: Créer le rôle {{ item }}
shell: docker exec {{ keycloak_container }} {{ keycloak_bin }} create roles -r {{ keycloak_realm }} -s name={{ item }}
register: create_role
with_items: "{{ keycloak_roles }}"
until: create_role is success
retries: 3
delay: 5
when: check_config.rc != 0
rescue:
- name: Gérer les erreurs de création des rôles
debug:
msg: "Erreur lors de la création du rôle {{ item }}"
- name: Créer les groupes
block:
- name: Créer le groupe {{ item }}
shell: docker exec {{ keycloak_container }} {{ keycloak_bin }} create groups -r {{ keycloak_realm }} -s name={{ item }}
register: create_group
with_items: "{{ keycloak_groups }}"
until: create_group is success
retries: 3
delay: 5
when: check_config.rc != 0
rescue:
- name: Gérer les erreurs de création des groupes
debug:
msg: "Erreur lors de la création du groupe {{ item }}"
- name: Attribuer les permissions aux rôles
block:
- name: Attribuer les permissions au rôle TEACHERS
shell: docker exec {{ keycloak_container }} {{ keycloak_bin }} add-roles -r {{ keycloak_realm }} --rname TEACHERS --cclientid {{ item.split('/')[0] }} --rolename {{ item.split('/')[1] }}
with_items: "{{ teacher_permissions }}"
register: add_teacher_perms
until: add_teacher_perms is success
retries: 3
delay: 5
- name: Attribuer les permissions au rôle STUDENTS
shell: docker exec {{ keycloak_container }} {{ keycloak_bin }} add-roles -r {{ keycloak_realm }} --rname STUDENTS --cclientid {{ item.split('/')[0] }} --rolename {{ item.split('/')[1] }}
with_items: "{{ student_permissions }}"
register: add_student_perms
until: add_student_perms is success
retries: 3
delay: 5
when: check_config.rc != 0
rescue:
- name: Gérer les erreurs d'attribution des permissions
debug:
msg: "Erreur lors de l'attribution des permissions aux rôles"
- name: Supprimer l'administrateur temporaire
block:
- name: Récupérer les informations