Retour aux textes

ReBAC et RBAC : quand utiliser l'un ou l'autre

Des rôles pour ce qui est large, des relations pour ce qui dépend de la ressource.

Le RBAC répond à « quel rôle a cette personne ? ». Il fonctionne très bien pour les permissions larges : admin, analyste, auditeur. Quand la règle se met à dépendre de la ressource, comme « qui peut voir cette demande ? », le nombre de rôles explose.

Le ReBAC, popularisé par Zanzibar, de Google, modélise les permissions comme des relations entre objets : la personne est membre de l'équipe, l'équipe est propriétaire du dossier, le dossier contient le document. Une vérification devient un parcours de ce graphe, et c'est là que la cardinalité et le fanout deviennent un coût.

En pratique, un modèle hybride fonctionne souvent : des rôles pour ce qui est large et stable, des relations pour ce qui dépend de la ressource. OpenFGA et SpiceDB mettent cette idée en œuvre, mais le vrai travail consiste à concevoir le modèle et à mesurer le coût des requêtes avant de passer en production.