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

通过特使核准服务网格。

Envoy-authz 是供 Envoy 通过 Casbin 执行外部 RBAC 和 ABAC 权限管理的中间件。 这个中间件通过 gRPC 服务器使用 Envoy 的外部权限 API。 该代理可部署在 Istio 等基于 Envoy 的 Service Mesh 上。

需求

  • Envoy 1.17 以上版本
  • Istio 或 任意 Service Mesh 类型
  • gRPC 依赖项

依赖项通过 go.mod 进行管理。

中间件工作原理

  • 客户端发起 http 请求
  • Envoy 代理发送该请求至 grpc 服务器
  • gRPC 服务器基于 Casbin 策略为请求进行授权
  • 通过授权后,就会发送请求,否则会被禁止

gRPC 服务器基于 Envoy 中 external_auth.proto 的通信数据协议(Protocol Buffer ,简称为 Protobuf)。

// 对传入网络服务的请求
// 执行授权检查的通用接口
service Authorization {
  // 基于传入请求的属性执行授权检查
  // 并返回 `OK` 或非 `OK` 的状态。
  rpc Check(v2.CheckRequest) returns (v2.CheckResponse);
}

上面的协议文件中,必须使用权限服务器中的 Check() 服务。

用法

  • Define the Casbin policies under config files by following this guide.

You can verify/test your policies on online casbin-editor.

  • 使用以下命令启动授权服务器:
$ go build .
$ ./authz 
  • Load the envoy configuration:-
$  envoy -c authz.yaml -l info

Envoy 启动后,就会开始拦截请求以进行授权处理。

集成至 Istio

为了让此中间件顺利运行,需要发送 JWT 的 Token 中包含用户名信息的自定义请求头。 更多修改请求头的内容,请参阅 Istio 官方文档。

← Kubernetes的授权管理员门户 →
  • 需求
  • 中间件工作原理
  • 用法
  • 集成至 Istio
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