PHP-Casbin

PHP 权限管理框架
授权协议 Apache
开发语言 PHP
所属分类 程序开发、 安全相关框架
软件类型 开源软件
地区 国产
投 递 者 籍昱
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

PHP-Casbin 是一个用 PHP 语言打造的轻量级开源访问控制框架,支持 ACL、RBAC、ABAC 多种模型。目前在 GitHub 开源。

PHP-Casbin 采用了元模型的设计思想,支持多种经典的访问控制方案,如基于角色的访问控制 RBAC、基于属性的访问控制 ABAC 等。

PHP-Casbin 的主要特性包括

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

PHP-Casbin 不做的事情:

1.身份认证 authentication (即验证用户的用户名、密码),PHP-Casbin 只负责访问控制。应该有其他专门的组件负责身份认证,然后由 PHP-Casbin 进行访问控制,二者是相互配合的关系;
2.管理用户列表或角色列表。PHP-Casbin 认为由项目自身来管理用户、角色列表更为合适,PHP-Casbin 假设所有策略和请求中出现的用户、角色、资源都是合法有效的。

安装

composer require casbin/casbin

HelloWorld 例子

1.初始化一个 enforcer,传入两个参数:模型文件路径和策略文件路径;

$e = new Enforcer(__DIR__ . '/examples/modelandpolicy/basic_model.conf', __DIR__ . "/examples/modelandpolicy/basic_policy.csv");

2.在你的代码需要进行访问控制的位置,加入如下钩子;

$sub = "alice"; // the user that wants to access a resource.
$obj = "data1"; // the resource that is going to be accessed.
$act = "read"; // the operation that the user performs on the resource.
if ($e->enforce($sub, $obj, $act) === true) {
    // permit alice to read data1x
} else {
    // deny the request, show an error
}

3.采用管理 API 进行权限的管理,如获取一个用户所有的角色;

$roles = $e->getRoles('alice');

社区进展

PHP-Casbin 目前正在积极向社区进行推送,目前通过插件的方式已经支持与 Laravel 等 Web 框架进行集成,将来会推广到更多 Web 框架以及社区。Casbin 已经有 Golang 版本、Java 版本、PHP 版本和 Node.js 版本。有跨语言需求的开发者可以只用 Casbin 这一套框架就实现多个不同语言的项目的权限管理任务。

协议

PHP-Casbin 采用 Apache 2.0 开源协议发布。

联系作者

有问题请提交 Issues

  • PHP-Casbin v0.2发布了,PHP-Casbin 是一个用 PHP 语言打造的轻量级开源访问控制框架,支持 ACL、RBAC、ABAC 多种模型。目前在 GitHub 开源, 采用了元模型的设计思想,支持多种经典的访问控制方案,如基于角色的访问控制 RBAC、基于属性的访问控制 ABAC 等。 更新内容: 增加CakePHP插件 完美支持PHP7.3 社区反馈的bug修复 PHP-Cas

  • PHP-Casbin 是一个用 PHP 语言打造的轻量级开源访问控制框架( https://github.com/php-casbin/php-casbin ),目前在 GitHub 开源。PHP-Casbin 采用了元模型的设计思想,支持多种经典的访问控制方案,如基于角色的访问控制 RBAC、基于属性的访问控制 ABAC 等。 Laraval-Casbin 是一个专为Laravel定制的Casb

  • PHP-Casbin 是一个用 PHP 语言打造的轻量级开源访问控制框架( https://github.com/php-casbin/php-casbin ),目前在 GitHub 开源。PHP-Casbin 采用了元模型的设计思想,支持多种经典的访问控制方案,如基于角色的访问控制 RBAC、基于属性的访问控制 ABAC 等。 Think-Casbin一个专为 ThinkPHP5.1 定制的 C

 相关资料
  • 权限管理 权限管理机制是 hyperledger fabric 项目的一大特色。下面给出使用权限管理的一个应用案例。 启动集群 首先下载相关镜像。 $ docker pull yeasy/hyperledger:latest $ docker tag yeasy/hyperledger:latest hyperledger/fabric-baseimage:latest $ docker pull

  • 添加 找到一个你要添加的位置“右击” 在弹出的下拉选项中选择“添加同级”或“添加下级” 在弹出的对话框输入相关信息 路由名称 路由路径,支持 /app/{namespace}/{id:+0~9} 或 /app/:namespace/:id 两种写法 Icon: 如果是菜单填ant.design支持的icon就行 HTTP请求的Method,支持 GET、POST、DELETE、PUT等 是否是菜单

  • 细节 一个文件主要包含下列属性,ls -l - rwxrwxrwx user group date filename 111 101 101 归属用户的权限 归属群组的权限 其它用户的权限 归属用户 归属群组 日期信息 文件名称 对于文件夹,必须拥有它的可执行权限,才能够使用 cd 命令进入该文件夹;拥有可读权限,才能够使用 ls 命令查看该文件夹的文件列表。 root用户

  • 用户角色定义共有4种,分别是创建者、管理员、分析师和普通用户,按权限由大到小排列。 1.1. 1. 概念理解 创建者 产品唯一创建人,需个人基本信息及邮箱或手机号码认证,最高权限,可申请更换; 管理员 产品级别,数量可设置多个,与创建者之间除更换创建者之外,权限相同; 分析师 分析功能全部权限,不具有应用、用户权限管理功能权限; 普通用户 查看被授权的看板(未开放功能); 角色权限速查表: 权限类

  • 本节作者:cameluo Shield 是 Elastic 公司官方发布的权限管理产品。其主要特性包括: 提供集群节点身份验证和集群数据访问身份验证 提供基于身份角色的细粒度资源和行为访问控制,细到索引级别的读写控制 提供节点间数据传输通道加密保护输出传输安全 提供审计功能 以插件的形式发布 License管理策略 Shield 是一款商业产品,不过提供 30 天免费试用,试用期间是全功能的。过期

  • 链接 Shield Search-Guard 在 Elasticsearch 2.x 上的运用

  • 9.1. 数据权限管理 获取权限列表 http://localhost:1000/api/power/1.0.0/query 获取之前保存的的数据权限信息 http://localhost:1000/api/power/1.0.0/getJson 查询根据token获取当前团队下的用户 http://localhost:1000/api/team/1.0.0/users token是登录成功以后返

  • 除了为每一个用户设置权限,权限管理员 为连接及其数据库对象的权限提供另一查看方式。注意:只限于 MySQL、Oracle、PostgreSQL、SQL Server 和 MariaDB。 从用户的对象列表工具栏点击 权限管理员 并按照下列步骤进行: 在查看树展开节点直至到达目标对象。 选择对象并点击 添加权限 以打开窗口。 勾选用户以显示网格在右边的面板上。 在网格里,对照在 权限 列出的权限,勾