Casbin RBAC v.s. RBAC96
Casbin RBAC と RBAC96
このドキュメントでは、Casbin RBAC と RBAC96 を比較します。
Casbin RBAC は、RBAC96 のほぼすべての機能をサポートし、その上に新機能を追加しました。
| RBAC バージョン | サポートレベル | 説明 | 
|---|---|---|
| RBAC0 | 完全に対応しています | RBAC0 は RBAC96 の基本バージョンです。 ユーザ、ロール、権限の関係を明確にしました。 | 
| RBAC1 | 完全に対応しています | RBAC1 added role hierarchies on RBAC0, meaning if alice has role1, role1 has role2, then alice will also have role2 and inherit its permissions. | 
| RBAC2 | mutually exclusive handling is supported (like this), but quantitative limits are not | RBAC2 は RBAC0 に制約を追加しました。 したがって、RBAC2はポリシーにある相互排除を扱うことができます。 | 
| RBAC3 | mutually exclusive handling is supported (like this), but quantitative limits are not | RBAC3 は RBAC1 と RBAC2 の組み合わせです。 RBAC3 は RBAC1 と RBAC2 のロール階層と制約をサポートしています。 | 
Casbin RBAC と RBAC96 の違い
Casbinでは、ユーザーとロールの区別が明確ではありません
Casbinでは、UserとRoleの両方が文字列として扱われます。 以下のようなポリシーファイルを作成した場合:
p, admin, book, read p, alice, book, read g, amber, adminそして、メソッド
GetAllSubjects()をこのように呼び出します(eは Casbin Enforcerのインスタンスです):e.GetAllSubjects()戻り値は以下の通りです
[adminalice]カスビンでは、科目には、ユーザーとロールが含まれているので。
しかし、以下のようにメソッド
GetAllRoles()を呼び出した場合:e.GetAllRoles()戻り値は以下の通りです
[admin]そして今、あなたはCasbinのユーザーと役割の間に違いがあることを知っていますが、RBAC96ほどシャープではありません。 もちろん、
user::alice、role::adminなどのポリシーにプレフィックスを追加して、リレーションシップを明確にすることができます。Casbin RBAC は、RBAC96 より多くの権限を提供します
RBAC96で定義されている権限は7つだけです: read, write, append, execute, credit, debit, quiry
しかし、Casbinではパーミッションを文字列として扱います。 これにより、いくつかの権限を作成することができます。
Casbin RBAC がドメインをサポートしています
Casbinでは、ドメインごとに認証を行うことができます。 この機能により、アクセス制御モデルがより柔軟になりました。