An authorization library supporting ACL, RBAC, ABAC, and other access control models across multiple programming languages.
Casbin is an open-source authorization library that enforces access control policies based on models like ACL, RBAC, and ABAC. It provides a unified way to manage permissions across applications, allowing developers to define and switch authorization models through configuration files. The library handles policy storage, role mappings, and rule matching, simplifying the implementation of complex security requirements.
Developers building applications that require fine-grained authorization, such as enterprise systems, multi-tenant platforms, or any software needing role-based or attribute-based access control.
Casbin offers a flexible, language-agnostic solution for authorization with support for multiple access control models out of the box. Its configuration-driven approach reduces code changes when updating security policies, and its availability in many programming languages ensures broad compatibility.
Apache Casbin: an authorization library that supports access control models like ACL, RBAC, ABAC.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Casbin supports ACL, RBAC, ABAC, and other models through config files, allowing easy switches without code changes, as shown in the extensive examples list.
With ports in Go, Java, Python, and more, it ensures consistent authorization logic across polyglot environments, making it ideal for microservices.
Abstracts policies into CONF files based on the PERM metamodel, simplifying updates and reducing deployment risks, though it requires learning the syntax.
Provides APIs for runtime permission adjustments and role mappings, enabling real-time security changes without application restarts.
Casbin explicitly leaves authentication to the application, requiring additional setup and potential security gaps if not handled properly.
Defining PERM models and policies demands expertise in access control theory, which can be a barrier for teams new to authorization.
For distributed systems, ensuring consistency across nodes requires additional watchers or external tools, adding complexity to deployments.