Authorization library that supports access control models like ACL, RBAC, ABAC

Technologies
python, javascript, java, nodejs, golang
Topics
security, web, cloud
Authorization library that supports access control models like ACL, RBAC, 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/

2021 Program

Successful Projects

Contributor
zhixiang Chen
Mentor
Yang Luo, ZiXuan Liu
Organization
Casbin
casbin enhancement
Casbin is a powerful and efficient open-source access control library for Golang projects. It provides support for enforcing authorization based on...
Contributor
Yash Pandey
Mentor
Yang Luo, Divy, Joey
Organization
Casbin
Benchmarking, Python bindings and Migrating to CTest for Casbin-CPP
Casbin is an authorization library that extends its features to implement Access Control Lists, Role-Based Access Control, and Attribute-Based Access...
Contributor
Rushikesh Tote
Mentor
Jon Lee, Yang Luo
Organization
Casbin
Lua-Casbin
Nginx is the second most popular web server and the most popular among high-traffic websites. OpenResty is a high performance web platform extended...
Contributor
Boqian Xie
Mentor
HeLong Zhang, Yang Luo, Junjie Zhang
Organization
Casbin
Proposal for Casdoor and Casnode
Casdoor Casdoor is a project established recently. For now, we need to add some features to it. Since Casoor is an authentication platform, I think...
Contributor
Sagilio
Mentor
hua zhikui, Yang Luo, Joey
Organization
Casbin
Casbin for .NET
The goal of this project is to improve performance and provide more necessary features for Casbin.NET.
Contributor
Xinyu Zhou
Mentor
Zihui Liu, Sefriol, ZiXuan Liu, Jon Lee, abichinger, Yang Luo
Organization
Casbin
Refactor Casbin.js and other optimizations on pycasbin and node-casbin
In the last GSoC, kingiw created an initial version of casbin.js. This version has a CASL-like API. He also adds support to go-casbin and...
Contributor
Samarpan Dutta
Mentor
Yisheng Chai, Yang Luo, 尚卓燃, Joey
Organization
Casbin
Casbin-Server, Rocket-Authz, JSON-Adapter
Implement Casbin-Server in rust and make it compatible with yaml-adapter, diesel-adapter and sqlx adapter. Make JSON-Adapter for casbin-rs. Make...
Contributor
Ashish Malik
Mentor
Yang Luo, ZiXuan Liu
Organization
Casbin
Casbin plugin for Kubernetes
Casbin is an open-source Authorization Library which supports access control models like ACL, RBAC, ABAC for Golang, Python, C/C++ and for many other...
Contributor
Mohit Singh
Mentor
Tomás Arias, Yang Luo, Santhoshivan Amudhan
Organization
Casbin
dart-casbin
A dart version of casbin to support access models like ACL, RBAC, ABAC and others.