Skip to content

Groupes, utilisateurs et droits Keycloak ​

Ce document décrit le modèle d'accès de l'IdP central du socle : Keycloak. Keycloak est la source de vérité de l'identité et de la hiérarchie de groupes qui est propagée vers tous les autres outils de la chaîne DSO.

Vue par rôle ​

En tant qu'IdP, Keycloak ne « donne » pas d'écran de droits : il place chaque rôle dans un groupe, et c'est ce groupe qui propage les droits en aval. Les chemins /console/<rôle> sont réservés à l'administration plateforme et distincts des rôles projet /<slug>/console/<rôle>. Conséquence par rôle :

Rôle ConsoleGroupe KeycloakPropagation en aval
Admin plateforme/admin (amorçage)Toutes permissions sur la Console uniquement
Admin plateforme/console/adminAdmin sur chaque outil (réconcilié, propagé)
Administrateur projet/<slug>/console/adminAdmin du projet partout
DevOps/<slug>/console/devopsRW projet (sauf admin)
Développeur/<slug>/console/developerLecture/projet (selon outil)
Lecture seule/<slug>/console/readerLecture transverse du projet
Lecture seule/console/readerLecture transverse plateforme
Security/<slug>/console/securityAudit/lecture transverse du projet
Security/console/securityAudit/lecture transverse plateforme
Guest—Aucun droit jusqu'à ajout manuel à un projet

1. Authentification OIDC ​

  • Keycloak est le fournisseur d'identité (IdP) ; tous les outils DSO fédèrent dessus en OIDC.
  • Les utilisateurs proviennent d'un IdP externe (ex. Passage2 / ProConnect) ou sont locaux. Les rôles admin Console sont liés à des groupes Keycloak existants via oidcGroup.

2. Hiérarchie de groupes maintenue par la Console ​

La Console crée et réconcilie automatiquement l'arborescence suivante, propagée vers les outils consommateurs :

Groupe KeycloakNaturePropagé vers
/adminGroupe plateforme admin (amorçage)Console uniquement (hors propagation)
/console/adminGroupe plateforme admin (réconcilié)Tous les outils (admin sur chaque service)
/console/securityGroupe plateforme sécuritéTous les outils (audit/security)
/console/readerGroupe plateforme lectureTous les outils (lecture, *RO)
/<slug>/console/adminGroupe projet adminTous les outils (admin projet)
/<slug>/console/devopsGroupe projet devopsTous les outils (RW projet)
/<slug>/console/developerGroupe projet developerTous les outils (selon outil)
/<slug>/console/securityGroupe projet securityTous les outils (audit/lecture)
/<slug>/console/readerGroupe projet readerTous les outils (lecture)
/<slug>/console/<env>/<RO|RW>Sous-groupes environnement (membres en RO, propriétaires en RW)ArgoCD (/<slug>/console/<env>/<RO|RW>)
/<slug>/grafana/<hprod|prod>-<RO|RW>Sous-groupes Grafana (environnement-scoped)Grafana
Groupes AdminRole liés via oidcGroupRôles admin Console—

ℹ️ Les rôles projet Console (Administrateur, DevOps, Développeur, Lecture seule) sont systématiquement créés avec le projet et liés aux groupes /<slug>/console/{admin,devops,developer,reader}. Le groupe /<slug>/console/security n'existe pas par défaut : il n'est alimenté que si un outil (ou un admin) le référence. Les rôles admin (AdminRole) sont les seuls pouvant être liés à un groupe Keycloak existant via oidcGroup (le préfixe / est obligatoire).

3. Points d'attention ​

  • /admin est le seul groupe plateforme admin. Groupe d'amorçage géré en dehors de la Console ; il ne porte des droits que sur la Console CPiN (aucune propagation vers les outils).
  • Groupes environnement vs groupes projet. ArgoCD et Grafana s'appuient sur des sous-groupes environment-scoped (<env>/RO|RW, grafana/<hprod|prod>-RO|RW). Les autres outils s'appuient sur les groupes projet-role (/<slug>/console/{admin,devops,developer,reader,security}).
  • Security / Reader sont des portées de lecture/audit, jamais d'écriture, sur la plupart des outils.
  • Utilisateurs tiers (IDP externe). Aucun groupe par défaut n'est attribué ; ils n'ont aucun droit tant qu'un membre les ajoute à un projet avec le niveau adéquat.

4. Qui gère quoi ? ​

ÉlémentGéré par
Fournisseur d'identité / realmKeycloak (socle)
Hiérarchie de groupes projet/adminConsole (automatique)
Appartenance des utilisateurs aux groupesConsole (selon rôles/membres) + Keycloak