Casbin
Authorization library that supports RBAC and ABAC
Authorization library that supports RBAC and ABAC
Casbin is a powerful and efficient open-source access control library. It provides support for enforcing authorization based on various access control models like ACL, RBAC, ABAC for Golang, Java, Node.js, PHP, Python, .NET (C#), Delphi and Rust.
What Casbin does:
- Enforce the policy in the classic {subject, object, action} form or a customized form as you defined, both allow and deny authorizations are supported.
- Handle the storage of the access control model and its policy.
- Manage the role-user mappings and role-role mappings (aka role hierarchy in RBAC). Support built-in superuser like root or administrator.
- A superuser can do anything without explict permissions.
- Multiple built-in operators to support the rule matching. For example, keyMatch can map a resource key /foo/bar to the pattern /foo*.
What Casbin does NOT do:
- Authentication (aka verify username and password when a user logs in) Manage the list of users or roles. I believe it's more convenient for the project itself to manage these entities.
- Users usually have their passwords, and Casbin is not designed as a password container. However, Casbin stores the user-role mapping for the RBAC scenario.
For more details, see: https://casbin.org/
2022 Program
Successful Projects
Contributor
NoneBack
Mentor
Yang Luo, ZixuanLiu, Weny
Organization
Casbin
An alternative tuple-storage engine for Casbin Mesh / Casbin — GSOC 2022 Proposal
Currently, Casbin uses golang built-in map structure to maintain policies in the main memory and persist the policies via adapter abstraction. If...
Contributor
Shivansh Yadav
Mentor
Yang Luo, ZixuanLiu, Xinyu Zhou
Organization
Casbin
Casbin For Node.js - Benchmarks, Feature Enhancement, multiple platform support, WatcherEx, Adapter
Casbin is extended to multiple languages and frameworks including the Casbin for Node.js. To improve the user experience for the project one of the...