**RBAC vs. RBAC96**
Casbin RBAC et RBAC96
Cette page compare le RBAC de Casbin avec le modèle RBAC96. Casbin prend en charge les principales idées de RBAC96 et ajoute les domaines et les permissions flexibles.
| RBAC96 | Prise en charge par Casbin | Notes |
|---|---|---|
| RBAC0 | ✅ Complète | Utilisateurs, rôles, permissions et leurs relations. |
| RBAC1 | ✅ Complète | Hiérarchie des rôles (par ex. alice→role1→role2). |
| RBAC2 | ⚠️ Partielle | Gestion sous forme de contraintes (par ex. deny-override) via effet de politique. Aucune limite quantitative. |
| RBAC3 | ⚠️ Partielle | RBAC1 + RBAC2 ; contraintes comme ci-dessus, aucune limite quantitative. |
Différences par rapport à RBAC96
1. Utilisateur vs. Rôle
Casbin ne sépare pas « utilisateur » et « rôle » dans le système de types—ce sont tous deux des chaînes de caractères. Ainsi :
p, admin, book, read
p, alice, book, read
g, amber, admin
GetAllSubjects() renvoie à la fois les utilisateurs et les rôles qui apparaissent comme sujets dans la politique ([admin alice]). GetAllRoles() renvoie uniquement le côté droit des règles g ([admin]). Casbin déduit donc cette distinction de l'utilisation ; pour une séparation stricte, utilisez une convention de nommage (par ex. user::alice, role::admin).
2. Permissions
RBAC96 fixe sept types de permissions. Dans Casbin, les permissions sont des chaînes arbitraires (par ex. read, write, approve), ce qui vous permet de les adapter à votre application.
3. Domaines
Casbin prend en charge le RBAC avec domaines, permettant ainsi de limiter les rôles et les permissions par tenant ou domaine—au-delà du modèle standard RBAC96.
Comments are powered by giscus and GitHub Discussions. They load from giscus.app and GitHub only after you click the button below.