Casbin

Casbin

  • 文档
  • API
  • 编辑器
  • IDE 插件
  • Single Sign-On (SSO)
  • 论坛
  • 帮助
  • 博客
  • Pricing
  • Contact Sales
  • Languages icon中文
    • English
    • 한국어
    • Русский
    • Français
    • Deutsch
    • 日本語
    • 参与翻译
  • GitHub

›基础知识

基础知识

  • 概述
  • 开始使用
  • 工作原理
  • 教程

Model

  • 支持的Models
  • Model语法
  • 效果器
  • 函数
  • 基于角色的访问控制
  • RBAC with Pattern
  • 域内RBAC
  • Casbin RBAC v.s. RBAC96
  • ABAC
  • 优先级模型
  • 超级管理员

存储

  • Model存储
  • Policy存储
  • 政策子集加载

扩充功能

  • Enforcers
  • 适配器
  • 观察者
  • 调度器
  • 角色管理器
  • 中间件
  • Graphql 中间件
  • 云端原生中间值

API

  • API 概述
  • 管理 API
  • RBAC API
  • 域内基于角色的访问控制 API
  • RoleManager API
  • 数据权限

高级用法

  • 多线程
  • 基准测试
  • 性能优化
  • Kubernetes的授权
  • 通过特使核准服务网格。

管理

  • 管理员门户
  • Casbin 服务
  • 日志 & 错误处理
  • 前端使用

编辑器

  • 在线编辑器
  • IDE 插件

更多

  • 本项目使用者
  • 贡献中
  • 隐私政策
  • 服务条款
Translate

概述

Casbin 是一个强大的、高效的开源访问控制框架,其权限管理机制支持多种访问控制模型。

Casbin 支持以下编程语言:

golangjavanodejsphp
CasbinjCasbinnode-CasbinPHP-Casbin
可用于生产环境可用于生产环境可用于生产环境可用于生产环境
pythondotnetc++rust
PyCasbinCasbin.NETCasbin-C++Casbin-RS
可用于生产环境可用于生产环境可用于生产环境可用于生产环境

在不同语言中支持的特性

特性GoJavaNode.jsPHPPythonC#DelphiRustC++LuaDartElixir
具体实施✅✅✅✅✅✅✅✅✅✅✅✅
RBAC✅✅✅✅✅✅✅✅✅✅✅✅
ABAC✅✅✅✅✅✅✅✅✅✅✅✅
Scaling ABAC (eval())✅✅✅✅✅✅❌✅✅✅✅✅
Adapter✅✅✅✅✅✅✅✅✅✅✅❌
Management API✅✅✅✅✅✅✅✅✅✅✅✅
RBAC API✅✅✅✅✅✅✅✅✅✅✅✅
Batch API✅✅✅✅✅✅❌✅✅✅❌❌
Filtered Adapter✅✅✅✅✅✅❌✅✅✅❌❌
Watcher✅✅✅✅✅✅✅✅✅✅❌❌
Role Manager✅✅✅✅✅✅❌✅✅✅✅❌
Multi-Threading✅✅✅❌✅❌❌✅❌❌❌❌
matcher中的‘in‘语法✅✅✅✅✅❌✅❌❌❌✅✅

我们一直致力于让 Casbin 在不同的编程语言中拥有相同的特性。 但是现实总是不完美的。 上方的表格展示了当前的进度。 Watcher 和 Role Manager 的 ✅ 仅代表 Casbin 对该编程语言有接口, 是否实现了 Watcher 或 Role Manager 接口则是另一回事了。

Casbin 是什么?

Casbin 可以:

  1. 支持自定义请求的格式,默认的请求格式为{subject, object, action}。
  2. 具有访问控制模型model和策略policy两个核心概念。
  3. 支持RBAC中的多层角色继承,不止主体可以有角色,资源也可以具有角色。
  4. 支持内置的超级用户 例如:root 或 administrator。超级用户可以执行任何操作而无需显式的权限声明。
  5. 支持多种内置的操作符,如 keyMatch,方便对路径式的资源进行管理,如 /foo/bar 可以映射到 /foo*

Casbin 不能:

  1. 身份认证 authentication(即验证用户的用户名和密码),Casbin 只负责访问控制。应该有其他专门的组件负责身份认证,然后由 Casbin 进行访问控制,二者是相互配合的关系。
  2. 管理用户列表或角色列表。 Casbin 认为由项目自身来管理用户、角色列表更为合适, 用户通常有他们的密码,但是 Casbin 的设计思想并不是把它作为一个存储密码的容器。 而是存储RBAC方案中用户和角色之间的映射关系。
开始使用 →
  • Casbin 支持以下编程语言:
  • 在不同语言中支持的特性
  • Casbin 是什么?
Casbin
Docs
Getting StartedManagement APIRBAC APIMiddlewares
Community
Who's using Casbin?Stack Overflow
Casbin          jCasbin
Node-Casbin   PHP-CasbinPyCasbin          Casbin.NETCasbin-CPP        Casbin-RS
Follow @casbinHQ
Copyright © 2022 Casbin Organization