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

基准测试

Go
CPP
Lua (JIT)

策略执行的负载在model_b_test.go中进行基准测试。 测试是:

英特尔 酷睿 i7-6700HQ CPU @ 2.60GHz, 2601 Mhz, 4 核, 8 处理器

go test -bench= -benchmem 的测试结果如下 (op = 一次 Enforce() 调用, ms = 毫秒, KB = 千字节):

测试用例规则大小时间开销 (ms/op)内存开销 (KB)
ACL2 规则 (2用户)0.0154935.649
RBAC5条规则 (2用户,1个角色)0.0217387.522
RBAC (小型)1100条规则 (1000用户,100个角色)0.16430980.620
RBAC (中型)11000条规则 (10000用户,1000个角色)2.258262765.152
RBAC (大型)110000条规则 (100000用户,10000个角色)23.9167767606
具有资源角色的RBAC6条规则 (2用户,2个角色)0.0211467.906
带有域/租户的RBAC6 条规则 (2个用户,1个角色,2个域)0.03269610.755
ABAC0 规则 (0用户)0.0075102.328
RESTful5 规则 (3用户)0.04539891.774
拒绝改写6条规则 (2用户,1个角色)0.0232818.370
优先级9条规则 (2用户,2个角色)0.0163895.313

Casbin CPP 的策略执行测试是在 tests/benchmarks 中, 使用 Google's benchmarking tool 完成的 这些基准的测试结果是:

英特尔 酷睿 i5-6300HQ CPU @ 2.30GHz, 4 核, 4 线程

以下是执行以Release 配置编译的 casbin_benchmark 基准结果(op = 一次 enforce() 调用, ms = 毫秒):

测试用例规则大小时间开销 (ms/op)
ACL2 规则 (2用户)0.0195
RBAC5条规则 (2用户,1个角色)0.0288
RBAC (小型)1100条规则 (1000用户,100个角色)0.300
RBAC (中型)11000条规则 (10000用户,1000个角色)2.113
RBAC (大型)110000条规则 (100000用户,10000个角色)21.450
具有资源角色的RBAC6条规则 (2用户,2个角色)0.03
带有域/租户的RBAC6 条规则 (2个用户,1个角色,2个域)0.041
ABAC0 规则 (0用户)NA
RESTful5 规则 (3用户)NA
Deny-override6条规则 (2用户,1个角色)0.0246
优先级9条规则 (2用户,2个角色)0.035

Lua Casbin的 策略执行的测试是在 ben.lua 中进行的。 测试台是 Ubuntu VM ,CPU型号为

AMD Ryzen(TM) 5 4600H CPU @ 3.0GHz, 6 核, 12 Threads

luajit bey.lua 的基准结果如下(op = 一个 enforce() 调用, ms = 毫秒):

测试用例规则大小时间开销 (ms/op)
ACL2 规则 (2用户)0.0533
RBAC5条规则 (2用户,1个角色)0.0972
RBAC (小型)1100条规则 (1000用户,100个角色)0.8598
RBAC (中型)11000条规则 (10000用户,1000个角色)8.6848
RBAC (大型)110000条规则 (100000用户,10000个角色)90.3217
具有资源角色的RBAC6条规则 (2用户,2个角色)0.1124
带有域/租户的RBAC6 条规则 (2个用户,1个角色,2个域)0.1978
ABAC0 规则 (0用户)0.0305
RESTful5 规则 (3用户)0.1085
拒绝改写6条规则 (2用户,1个角色)0.1934
优先级9条规则 (2用户,2个角色)0.1437
← 多线程性能优化 →
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