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/

lightbulb_outline View ideas list

Technologies

  • golang
  • java
  • javascript
  • python
  • nodejs

Topics

comment IRC Channel
email Mailing list
mail_outline Contact email

Casbin 2021 Projects

  • Yash Pandey
    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...
  • zhixiang Chen
    casbin enhancement
    Casbin is a powerful and efficient open-source access control library for Golang projects. It provides support for enforcing authorization based on...
  • Sagilio
    Casbin for .NET
    The goal of this project is to improve performance and provide more necessary features for Casbin.NET.
  • Ashish Malik
    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...
  • Samarpan Dutta
    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...
  • Mohit Singh
    dart-casbin
    A dart version of casbin to support access models like ACL, RBAC, ABAC and others.
  • Rushikesh Tote
    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...
  • Boqian Xie
    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...
  • Xinyu Zhou
    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...
close

2021