Repository navigation
docs: rétablir readonly sur les fiches RBAC en attente du rename console #106
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,64 @@ | ||
| # 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 Console | Groupe Keycloak | Accès obtenu dans GitLab | | ||
| | --------------------- | --------------------------- | ---------------------------- | | ||
| | Propriétaire projet | — | **Owner** sur le groupe | | ||
| | Administrateur projet | `/<slug>/console/admin` | **Maintainer** sur le groupe | | ||
| | DevOps | `/<slug>/console/devops` | **Maintainer** sur le groupe | | ||
| | Développeur | `/<slug>/console/developer` | **Developer** sur le groupe | | ||
| | Lecture seule | `/<slug>/console/readonly` | **Reporter** sur le groupe | | ||
| | Security | `/<slug>/console/security` | **Reporter** sur le groupe | | ||
| | Admin plateforme | `/console/admin` | **Admin GitLab** (flag instance) | | ||
| | Audit plateforme | `/console/readonly`, `/console/security` | **Auditeur 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 Keycloak | Niveau GitLab | | ||
| | --------------------------- | --------------- | | ||
| | `/<slug>/console/admin` | **Maintainer** | | ||
| | `/<slug>/console/devops` | **Maintainer** | | ||
| | `/<slug>/console/developer` | **Developer** | | ||
| | `/<slug>/console/readonly` | **Reporter** | | ||
| | `/<slug>/console/security` | **Reporter** | | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ⚪ suggestion (concision): Garder un seul tableau de correspondance Les cinq lignes de ce tableau répètent les mêmes chemins et niveaux que « Vue par rôle », quelques lignes plus haut. Le second passage augmente la longueur sans apporter d’information au lecteur et crée deux endroits à maintenir. Conserver le premier tableau puis enchaîner directement avec les règles utiles : priorité du propriétaire, cumul des rôles, rôle sans groupe reconnu et configuration avancée. La page sera plus courte sans perdre de précision. |
||
|
|
||
| - **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). | ||
| - Cette correspondance peut être adaptée via la configuration du plugin GitLab (`projectMaintainerGroupPathSuffix`, `projectDeveloperGroupPathSuffix`, `projectReporterGroupPathSuffix`, `adminGroupPath`, `auditorGroupPath`). | ||
|
|
||
| --- | ||
|
|
||
| ## 3. Points d'attention | ||
|
|
||
| - **Provisionnement autoritaire.** La Console prend le contrôle total de l'appartenance du groupe : tout membre non tracé par la Console est **supprimé**, les modifications manuelles dans GitLab sont écrasées à la synchronisation. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ⚪ suggestion (consigne): Dire concrètement quels accès sont retirés « Provisionnement autoritaire » et « membre non tracé » demandent de connaître le mécanisme interne ; « supprimé » peut aussi laisser croire que le compte GitLab est supprimé. Proposition :
L’avertissement reste visible, commence par la bonne action et distingue le retrait du groupe de la suppression d’un compte. |
||
| - 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ément | Géré par | | ||
| | ---------------------------------- | ------------------------- | | ||
| | Identité OIDC / groupes Keycloak | **Keycloak** | | ||
| | Groupes GitLab, membres & niveaux | **Console** (automatique) | | ||
| | Application des droits | **GitLab** | | ||
|
|
||
| --- | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
⚪ suggestion (compréhension): Donner le sens des niveaux GitLab, pas seulement leur nom
Le tableau aide à trouver son rôle, mais « Maintainer », « Reporter » et « flag auditor » ne disent pas à un nouvel arrivant ce qu’il pourra faire. Garder les noms exacts affichés par GitLab, puis ajouter une courte explication en français ou un lien vers les permissions de ces rôles.
Expliquer aussi une fois que
<slug>est l’identifiant technique du projet, avec un exemple comme/mon-projet/console/devops. Pour les deux dernières lignes, « administration de toute l’instance » et « audit de toute l’instance » sont plus explicites que « flag instance » et « flag auditor ».