跳转到主要内容
NEWSv3.10.0 Released→

Apache Casbin
面向各类场景的开源授权:  应用程序

一个强大而高效的开源访问控制库,支持多种授权模型

Use Apache Casbin with Multiple Languages

Golang
Java
C/C++
Node.js
Front-end JavaScript
PHP
Laravel
Python
.NET (C#)
Delphi
Rust
Ruby
Swift (Objective-C)
Lua (OpenResty, Kong, APISIX)
Dart (Flutter)
Elixir
Cloud Native (Kubernetes, Istio, Envoy, KubeSphere)
[object Object]

混合访问控制模型

Apache Casbin 使用 CONF 文件,基于 PERM 元模型(Policy、Effect、Request、Matchers)定义访问控制模型。你可以通过修改配置文件来更改或升级授权机制。

[object Object]

灵活的策略存储

Apache Casbin 的策略可以存储在内存、文件或数据库中。我们支持数十种存储后端,包括 MySQL、Postgres、Oracle、MongoDB、Redis、Cassandra 和 AWS S3。请查看完整的 适配器。

[object Object]

跨语言、跨平台

Apache Casbin 已有多种语言实现,包括 Golang、Java、PHP、Node.js、Python、.NET、Rust 等。所有实现共享相同的 API 和行为。

试用 Apache Casbin 在线编辑器

在交互式在线编辑器中实时编写并测试你的 Apache Casbin 模型和策略,尝试不同的访问控制模型,即时查看结果。

策略持久化

Apache Casbin 通过 adapter 存储策略。为了保持库的轻量,adapter 代码与主库分离(默认的文件 adapter 除外)。我们支持第三方 adapter 贡献。有关更多信息,请查看完整的 适配器 列表。
Policy Persistence
Policy enforcement at scale

大规模策略执行

部分 adapter 支持带过滤的策略加载。这意味着 Apache Casbin 可以根据指定的过滤条件,仅从存储中加载一部分策略。该特性对大规模、多租户应用非常有用,因为一次性加载全部策略效率低下。

角色管理器

角色管理器负责处理 Apache Casbin 中的 RBAC 角色层级关系(用户-角色映射)。它可以从 Apache Casbin 的策略规则中加载角色数据,也可以从 LDAP、Okta、Auth0、Azure AD 等外部来源加载。为了保持库的轻量,角色管理器代码与主库分离(默认实现除外)。查看所有可用的 角色管理器。
Role manager

谁在使用 Apache Casbin?

数百个项目都在使用 Apache Casbin,从财富 500 强企业到新兴创业公司。想了解 Apache Casbin 能构建什么,快来看看这些应用!