
强制执行 ACL、RBAC、ABAC 和自定义访问控制模型的授权库,为应用程序和服务提供 RESTful 匹配与策略管理 API。
新闻:还在担心如何编写正确的 Apache Casbin 策略吗?Apache Casbin online editor 即将为你提供帮助!请访问:https://casbin.apache.org/editor/

Apache Casbin 是一个强大且高效的开源访问控制库,适用于 Golang 项目。它支持基于各种访问控制模型来执行授权。
![]() | ![]() | ![]() | ![]() |
|---|---|---|---|
| Casbin | jCasbin | node-Casbin | PHP-Casbin |
| 生产就绪 | 生产就绪 | 生产就绪 | 生产就绪 |
![]() | ![]() | ![]() | ![]() |
|---|---|---|---|
| PyCasbin | Casbin.NET | Casbin-CPP | Casbin-RS |
| 生产就绪 | 生产就绪 | 生产就绪 | 生产就绪 |
write-article、read-log 等权限针对某一类资源而非单个资源。它不控制对特定文章或日志的访问。resource.Owner 之类的语法糖来获取资源的属性。/res/*、/res/:id 等路径以及 GET、POST、PUT、DELETE 等 HTTP 方法。在 Casbin 中,访问控制模型被抽象为基于 PERM 元模型(Policy、Effect、Request、Matchers) 的 CONF 文件。因此,切换或升级项目的授权机制就像修改配置一样简单。你可以通过组合现有模型来定制自己的访问控制模型。例如,你可以在同一个模型中同时使用 RBAC 角色和 ABAC 属性,并共享一组策略规则。
Casbin 中最基础、最简单的模型是 ACL。ACL 的模型 CONF 如下:
# Request definition
[request_definition]
r = sub, obj, act