Rôles et permissions configurables #
DisponibleLa route /administration/rbac permet à un administrateur de remplacer la matrice de permissions de son organisation. Tant qu’aucune surcharge n’est enregistrée, RiskPilot applique les droits historiques par défaut. La configuration ne crée pas de nouveaux rôles et n’ajoute pas LDAP/LDAPS.
Catalogue des permissions #
Les permissions couvrent risques (risk.read|create|update|delete), EBIOS (ebios.read|create|update|validate), NIS2 (nis2.read|update), preuves (evidence.upload), actions (action.read|update) et administration (admin.users|roles|settings). Une permission absente du catalogue est toujours refusée.
Le super-administrateur conserve toujours toutes les permissions, même si une surcharge de matrice tente de restreindre son rôle. Les rôles assignables sont Administrateur, Risk manager, Auditeur, Responsable d’action et Lecteur. L’autorisation effective est l’union des permissions des rôles assignés à l’utilisateur.
Modifier la matrice #
- Ouvrez Paramètres → Rôles et permissions avec un compte administrateur.
- Examinez chaque rôle et activez uniquement les capacités nécessaires.
- Vérifiez en particulier la séparation
ebios.update/ebios.validate. - Enregistrez la matrice complète.
- Testez avec un compte représentatif de chaque rôle avant généralisation.
L’enregistrement remplace toutes les surcharges de l’organisation, y compris les tableaux vides. Une mauvaise matrice peut donc retirer immédiatement une capacité métier. Conservez au moins un administrateur opérationnel et appliquez le moindre privilège.
API #
| Méthode | Endpoint | Résultat |
|---|---|---|
GET | /api/settings/rbac | catalogue et matrice effective |
PUT | /api/settings/rbac | remplace les surcharges tenant-scoped |
Les deux routes exigent la permission fine admin.roles, et non la seule présence statique de ROLE_ADMIN. Le payload est {"roles":{"ROLE_RISK_MANAGER":["risk.read","ebios.update"]}}, complété par les autres rôles assignables. Une matrice absente retourne VALIDATION_ERROR ; une valeur inconnue ou non textuelle retourne INVALID_PERMISSION, en HTTP 422. Une permission insuffisante retourne FORBIDDEN en HTTP 403.