Skip to content

Groupes Keycloak et GitLab ​

Ce document décrit comment la Console propage les groupes Keycloak en niveaux d'accès GitLab (membres du groupe du projet), et quels droits en résultent.

Vue par rôle ​

Ce que chaque rôle Console obtient réellement dans GitLab :

Rôle ConsoleGroupe KeycloakAccès obtenu dans GitLab
Propriétaire projet—Owner sur le groupe
Administrateur projet/<slug>/console/adminMaintainer sur le groupe
DevOps/<slug>/console/devopsMaintainer sur le groupe
Développeur/<slug>/console/developerDeveloper sur le groupe
Lecture seule/<slug>/console/readonlyReporter sur le groupe
Security/<slug>/console/securityReporter sur le groupe
Admin plateforme/console/adminAdmin GitLab (flag instance)
Audit plateforme/console/readonly, /console/securityAuditeur GitLab (flag auditor)

1. Authentification : GitLab via OIDC Keycloak ​

  • GitLab est fédéré au fournisseur OIDC Keycloak ; les utilisateurs se connectent sans mot de passe local.
  • La Console approvisionne, pour chaque projet, le groupe GitLab et y ajoute les membres avec un niveau d'accès (Owner / Maintainer / Developer / Reporter / Guest).

2. Groupes Keycloak et niveau GitLab résultant ​

Groupe KeycloakNiveau GitLab
/<slug>/console/adminMaintainer
/<slug>/console/devopsMaintainer
/<slug>/console/developerDeveloper
/<slug>/console/readonlyReporter
/<slug>/console/securityReporter
  • Propriétaire du projet : Owner (toujours le niveau le plus élevé, indépendamment des rôles).
  • Cumul des rôles : en cas de rôles multiples, le niveau le plus élevé l'emporte.
  • Rôle sans groupe OIDC reconnu : le membre reçoit Guest (accès minimal au groupe).
  • Rôles plateforme : les membres d'/console/admin reçoivent le flag GitLab admin (administration de l'instance) ; les membres des groupes d'audit (/console/readonly, /console/security) reçoivent le flag auditor (lecture sur toute l'instance).

Adaptation par configuration du plugin GitLab ​

CléRôleValeur par défaut
projectMaintainerGroupPathSuffixSuffixes OIDC donnant l'accès Maintainer/console/admin,/console/devops
projectDeveloperGroupPathSuffixSuffixe OIDC donnant l'accès Developer/console/developer
projectReporterGroupPathSuffixSuffixes OIDC donnant l'accès Reporter/console/readonly,/console/security
adminGroupPathGroupe OIDC donnant le flag admin GitLab/console/admin
auditorGroupPathGroupes OIDC donnant le flag auditor GitLab/console/readonly,/console/security

3. Points d'attention ​

  • Provisionnement autoritaire. La Console aligne systématiquement le niveau d'accès de chaque membre tracé : les modifications manuelles dans GitLab sont écrasées à la synchronisation. Les membres non tracés par la Console sont supprimés uniquement lorsque la purge est activée (config plugin purge = enabled) ; sinon ils sont seulement signalés dans les journaux.
  • Les dépôts infra-apps et mirror sont des dépôts techniques Console, jamais des cibles de mirroring.

4. Qui gère quoi ? ​

ÉlémentGéré par
Identité OIDC / groupes KeycloakKeycloak
Groupes GitLab, membres & niveauxConsole (automatique)
Application des droitsGitLab