技术圈开发者交流群:

PHP-Casbin 中 ABAC 的使用方法

PHP-Casbin 是一个强大的、高效的开源访问控制框架,它支持基于各种访问控制模型的权限管理。

ABAC基于属性的访问控制,可以使用主体、客体或动作的属性,而不是字符串本身来控制访问。

ABAC的官方实例如下:

PHP 03月06日 96846

Policy的高级用法 - Casbin的Model和Policy

Casbin中,适配器(adapterCasbin的中间件)实现了policy规则写入持久层的细节。 Casbin的用户可以调用adapterloadPolicy()方法从持久层中加载policy规则, 同样也可以调用savePolicy()方法将Policy规则保存到持久层中。 为了保持代码轻量, 我们没有将adapter的代码放在主库中。

文件适配器,是将Policy策略存储在.csv的文件中:

$e = new Enforcer("path/to/model.conf", "path/to/policy.csv");

也可以先初始化Adapter:

PHP 2019年02月13日 51868

Model的高级用法 - Casbin的Model和Policy

Model的加载方法主要有三种:

  • 从文件读取
  • 从字符串加载
  • 动态添加

从文件应该说是最常用的一种方式,只需要在初始化Casbin决策器的时候传入文件地址即可:

// 初始化 model
$m = Enforcer::newModel("path/to/model.conf", "");
// 创建一个 enforcer。
$e = new Enforcer($m);
PHP 2019年02月13日 30516

工作原理 - Casbin基础知识

在 Casbin 中, 访问控制模型被抽象为基于 PERM (Policy, Effect, Request, Matcher) 的一个文件。 因此,切换或升级项目的授权机制与修改配置一样简单。 您可以通过组合可用的模型来定制您自己的访问控制模型。 例如,您可以在一个model中获得RBAC角色和ABAC属性,并共享一组policy规则。

Casbin中最基本、最简单的model是ACL。ACL中的Model CONF为:

# Request definition
[request_definition]
r = sub, obj, act

# Policy definition
[policy_definition]
p = sub, obj, act

# Policy effect
[policy_effect]
e = some(where (p.eft == allow))

# Matchers
[matchers]
m = r.sub == p.sub && r.obj == p.obj && r.act == p.act

ACL Model的示例Policy如下:

PHP 2019年02月13日 31962

快速开始 - Casbin基础知识

Casbin中最核心的三个概念:Model, Policy, Enforcer

Model就是一个CONF文件,基于PERM metamodel (Policy, Effect, Request, Matchers)。

PHP 2019年02月13日 31907

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

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

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

PHP 2018年11月01日 72976

排行

解决方案

网站建设

专业企业官网建设,塑造企业形象,传递企业价值

系统开发

系统软件开发,用心思考,用心设计,用心体验

技术支撑

打破技术瓶颈,让不堪重负的项目起死回生

业务中台

构建全渠道一体化运营能力,实现全链路数字化

文案策划

文案撰写、营销策划,专注品牌全案

新媒体运营

一站式解决企业互联网营销痛点和难题

以技术的力量,改变互联网

联系我们
鄂ICP备19028750号 @copyright 2019 tech1024.com