博客 / 詳情

返回

PHP-Casbin v4.0.0 發佈,支持 ACL、RBAC、ABAC 等模型的訪問控制框架

PHP-Casbin 是一個用 PHP 語言打造的輕量級開源訪問控制框架,支持 ACL、RBAC、ABAC 多種模型。它採用了元模型的設計思想,支持多種經典的訪問控制方案,如基於角色的訪問控制 RBAC、基於屬性的訪問控制 ABAC 等。

更新內容:

https://github.com/php-casbin/php-casbin/releases/tag/v4.0.0

  • 使用 Symfony Cache 組件重新實現 CachedEnforcer,遵循 PSR-6 規範
  • 新增條件角色管理器(ConditionalRoleManager),使 RBAC 權限控制支持角色的條件定義
  • 將 PHP 的最低版本升級為 PHP 8.0,充分利用 PHP 8.0 的新特性
  • 重構 Logger,支持直接使用 PRS-3 規範的日誌實現,不在單獨使用橋接(casbin/psr3-bridge)

另外,除了主庫更新外,還提供了一個全新的 PHP-Casbin 起步套件(Starter kit),該套件結合 Laravel-Authz 和 Jetstream 實現,幫助新手開發者快速瞭解 PHP-Casbin 。

screenshot_1.jpeg

Casbin 開源項目介紹

Casbin 是一個強大的、高效的開源訪問控制框架。涉及到 Go、Java、Node.js、Javascript (React)、Python、PHP、.NET、Delphi、Rust 等多種語言。

支持多種訪問控制模型,在 Casbin,訪問控制模型是基於 PERM 元模型 (Policy, Effect, Request, Matchers) 壓縮而成的一個 CONF 文件。 因此,項目授權機制的轉換或升級就像修改配置一樣簡單。

靈活的策略儲存方式,除了內存和文件外,Casbin 策略還可以存儲在許多地方。 目前 Casbin 已經支持了從 MySQL、Postgres、Oracle 到 MongoDB、Redis、Cassandra、AWS S3 等數十種數據庫。

跨語言 & 跨平台,Casbin 已經使用 Golang、Java、PHP 和 Node.js 等等語言實現。 所有的實現共享相同的 API 和行為。學習一次即可到處使用。

使用 PHP-Casbin:

安裝:

composer update casbin/casbin

快速使用:

  1. 初始化決策器
require_once './vendor/autoload.php';
use Casbin\Enforcer;

$e = new Enforcer("path/to/model.conf", "path/to/policy.csv");
  1. 進行權限決策
$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 data1
} else {
    // deny the request, show an error
}

項目託管倉庫Github:https://github.com/php-casbin/php-casbin

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.