- 6 docs racine (README, HANDOVER, ARCHITECTURE, DECISIONS, INSTALL, OPERATIONS) - 9 docs thématiques dans docs/ - 10 templates docker-compose dans configs/ - 7 scripts Python/Shell d'import Furious vers Zitadel - 2 matrices RBAC Etat infra au 5 juin 2026 : - 88 users Furious importes dans Zitadel - 8 roles RBAC crees et attribues - Intranet filtre les cartes selon role (Approche A) - 7 outils SSO operationnels
132 lines
4.1 KiB
Markdown
132 lines
4.1 KiB
Markdown
# Matrice RBAC — Qui voit quoi sur l'intranet
|
|
|
|
> Décision tranchée par Hedi Kalboussi le 5 juin 2026 (validée verbalement par Philippe Spoljaric, à valider en workshop formel).
|
|
|
|
---
|
|
|
|
## 🎯 Matrice principale
|
|
|
|
| Application | direction | manager | expert | consultant_senior | consultant_junior | alternant | stagiaire | support |
|
|
|---|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
|
| **Intranet (page d'accueil)** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| **Gitea (Git)** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| **Code Server (IDE)** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| **n8n (Workflows)** | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
|
| **Portainer (Docker)** | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
|
| **Uptime Kuma (Monitoring)** | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
|
| **Traefik Dashboard** | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
|
|
|
---
|
|
|
|
## 🎭 Définition des rôles
|
|
|
|
### `direction`
|
|
**Périmètre** : Top management, accès complet à toute l'infrastructure.
|
|
|
|
Inclut : Président, Directeur, Directeur Associé.
|
|
|
|
**Profil type** : Pierre-Yves Tachon (Président), Philippe Spoljaric (Admin Infra).
|
|
|
|
### `manager`
|
|
**Périmètre** : Managers opérationnels, gèrent des équipes.
|
|
|
|
Inclut : Senior Manager, Manager, Manager BI.
|
|
|
|
### `expert`
|
|
**Périmètre** : Experts techniques senior, peuvent intervenir sur des outils dev (n8n).
|
|
|
|
Inclut : Expert, Expert N2, Consultant Expert niveau 1.
|
|
|
|
### `consultant_senior`
|
|
**Périmètre** : Consultants expérimentés (3+ ans). Accès dev (Gitea + Code).
|
|
|
|
Inclut : Consultant Sénior, Consultant Expérimenté(e).
|
|
|
|
### `consultant_junior`
|
|
**Périmètre** : Consultants juniors, accès dev limité.
|
|
|
|
### `alternant`
|
|
**Périmètre** : Apprentis en alternance, accès dev limité.
|
|
|
|
⚠️ Tous les users avec `status: apprenti` dans Furious sont mappés en `alternant`.
|
|
|
|
### `stagiaire`
|
|
**Périmètre** : Stagiaires, accès dev limité.
|
|
|
|
### `support`
|
|
**Périmètre** : Support administratif et marketing. Accès aux outils collaboratifs.
|
|
|
|
Inclut : Assistante, Assistante de direction, Chargé de recrutement, Marketing.
|
|
|
|
---
|
|
|
|
## 📊 Distribution effective (au 5 juin 2026)
|
|
|
|
| Rôle | Nombre d'users |
|
|
|---|---|
|
|
| consultant_senior | 27 |
|
|
| consultant_junior | 16 |
|
|
| manager | 14 |
|
|
| alternant | 13 |
|
|
| expert | 8 |
|
|
| direction | 6 |
|
|
| support | 3 |
|
|
| **TOTAL** | **87** (sur 88, 1 vide à corriger) |
|
|
|
|
---
|
|
|
|
## ⚠️ Limites acceptées (Approche A)
|
|
|
|
L'Approche A filtre les cartes **côté intranet** mais **ne bloque pas l'accès direct** à un outil si l'user connaît l'URL.
|
|
|
|
Exemple : un `consultant_junior` ne voit pas la carte Portainer sur l'intranet, mais s'il tape `portainer.seizeconsulting.com` dans son navigateur, il sera authentifié et accédera à Portainer (car le SSO ne discrimine pas par rôle).
|
|
|
|
→ Acceptable pour Seize Consulting (88 collaborateurs non-malveillants).
|
|
|
|
Pour un **vrai RBAC** sur chaque outil, voir [DECISIONS.md D7](../DECISIONS.md).
|
|
|
|
---
|
|
|
|
## 🔄 Modification de la matrice
|
|
|
|
### Pour ajouter ou modifier les autorisations
|
|
|
|
1. Éditer le fichier `~/docker/intranet/index.html`
|
|
2. Trouver le bloc JavaScript `ACCESS_MATRIX`
|
|
3. Modifier les listes de rôles
|
|
4. Restart de l'intranet :
|
|
```bash
|
|
cd ~/docker/intranet
|
|
docker compose restart
|
|
```
|
|
|
|
### Pour ajouter un nouveau rôle
|
|
|
|
1. Créer le rôle dans Zitadel (Project Infra Seize → Roles → New)
|
|
2. Mettre à jour `JOB_TITLE_TO_ROLE` dans `generate-roles-mapping.py` et `assign-roles.py`
|
|
3. Mettre à jour `ACCESS_MATRIX` dans `index.html` pour préciser ce que ce rôle voit
|
|
4. Lancer :
|
|
```bash
|
|
python3 generate-roles-mapping.py
|
|
python3 assign-roles.py
|
|
cp roles-mapping.json ~/docker/intranet/
|
|
cd ~/docker/intranet && docker compose restart
|
|
```
|
|
|
|
---
|
|
|
|
## 🗓️ Historique des modifications
|
|
|
|
| Date | Action | Auteur |
|
|
|---|---|---|
|
|
| 2026-06-05 | Création initiale (8 rôles, 6 outils filtrés) | Hedi Kalboussi |
|
|
| | | |
|
|
|
|
---
|
|
|
|
## 📚 Voir aussi
|
|
|
|
- [job-title-to-role.csv](./job-title-to-role.csv) — Mapping détaillé Furious → rôle
|
|
- [docs/07-rbac-intranet.md](../docs/07-rbac-intranet.md) — Implémentation technique
|
|
- [DECISIONS.md D7](../DECISIONS.md) — Pourquoi Approche A
|