PHP-Casbin: 支持ACL、RBAC、ABAC多种模型的PHP权限管理框架

栏目: PHP · 发布时间: 7年前

内容简介:PHP-Casbin 是一个用 PHP 语言打造的轻量级开源访问控制框架(

前言

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

PHP-Casbin: 支持ACL、RBAC、ABAC多种模型的PHP权限管理框架

PHP-Casbin: 支持ACL、RBAC、ABAC多种模型的PHP权限管理框架

概述

PHP-Casbin 的主要特性包括:

支持自定义请求的格式,默认的请求格式为{subject, object, action};

具有访问控制模型 model 和策略 policy 两个核心概念;

支持 RBAC 中的多层角色继承,不止主体可以有角色,资源也可以具有角色;

支持超级用户,如 root 或 Administrator,超级用户可以不受授权策略的约束访问任意资源;

支持多种内置的操作符,如 keyMatch,方便对路径式的资源进行管理,如 /foo/bar 可以映射到 /foo*;

PHP-Casbin 不做的事情:

身份认证 authentication (即验证用户的用户名、密码),PHP-Casbin 只负责访问控制。应该有其他专门的组件负责身份认证,然后由 PHP-Casbin 进行访问控制,二者是相互配合的关系;

管理用户列表或角色列表。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');

请参考 test 目录获得更多的使用方法。

社区进展

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

Casbin (Go): https://github.com/casbin/casbin

jCasbin (Java): https://github.com/casbin/jcasbin

PHP-Casbin (PHP): https://github.com/php-casbin/php-casbin

Node-Casbin (Node.js): https://github.com/casbin/node-casbin

协议

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

联系作者

有问题请提交 Issues: https://github.com/php-casbin/php-casbin/issues

*本文作者:hsluoyz,转载请注明来自FreeBuf.COM


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Reality Is Broken

Reality Is Broken

Jane McGonigal / Penguin Press HC, The / 2011-1-20 / USD 26.95

Visionary game designer Jane McGonigal reveals how we can harness the power of games to solve real-world problems and boost global happiness. More than 174 million Americans are gamers, and......一起来看看 《Reality Is Broken》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具