Aller au contenu principal

Modèle de permissions (RBAC)

Le projet utilise un RBAC avancé avec authentification centralisée et vérifications de permissions systématiques.

Concepts

ConceptSignification
UserActeur authentifié (via Keycloak)
RoleGroupe de permissions
PermissionCapacité atomique
ServiceScope organisationnel ou applicatif
ApplicationContexte d'application métier
PolicyClasse d'autorisation Laravel

:::danger Règle absolue Ne pas inférer l'accès depuis la visibilité UI. L'autorisation côté serveur est obligatoire. :::

Ordre de vérification des permissions

1. Authentification (Keycloak)
2. Résolution du contexte application/service
3. Vérification Policy ou Permission
4. Vérification des règles métier
5. Log d'audit pour les actions sensibles

Patterns d'autorisation

// Dans un contrôleur
$this->authorize('update', $user);
$this->authorize('assignRole', $user);

// Gate
Gate::authorize('manage-applications');

// Middleware de route
Route::middleware('can:admin-access')

// Dans une vue Blade (affichage uniquement — pas de substitut à la sécurité serveur)
@can('delete', $user)
<button ...>Supprimer</button>
@endcan

Tables

users ←── roles ←── permissions
│ │
└── id_role └── id_permission

Les pivots associent les permissions aux rôles et les rôles aux utilisateurs.