有没有适用于 CodeIgniter
的基于 PHP
的开源角色访问控制系统?
我创建了一个名为 PHP-Bouncer 的开源项目,可能会对您感兴趣。它还比较年轻,但运行良好且易于配置。由于现有的解决方案似乎都不能满足我的需求,所以我最终开发了这个项目。希望这可以帮到您!
我找到了两个与PHP相关的RBAC库:
我实际上在PolyAuth中使用了第一个链接: https://github.com/Polycademy/PolyAuth/ 这是一个完整的身份验证库,包括NIST 1级RBAC。是的,RBAC和ACL不同。我也使用Codeigniter,你只需要使用PDO驱动程序并传入连接ID即可。请参阅此教程以了解如何执行此操作:http://codebyjeff.com/blog/2013/03/codeigniter-with-pdophpgacl http://phpgacl.sourceforge.net/ 是一个基于通用acl的访问控制框架。
虽然我不知道任何CI特定的实现,但我知道你只需要主类文件就可以让phpgacl工作。所以我相信与CI的集成不会有任何问题。(我曾经与CI合作过)
http://www.jframework.info(已失效链接)
jFramework拥有标准的NIST二级RBAC,并进行了增强,据说是最快的(包括基准测试),它可以操作一个单独的SQLite数据库文件,并经过了彻底的测试,工作得非常完美。
它依赖于jFramework DBAL,但您可以简单地将代码中的DBAL SQL查询替换为您想要的DBAL,并且当然可以以SOP方式使用jFramework。
我知道这个问题已经有一段时间了,但是一个新的项目出现了:
PHP-RBAC是一个 PHP 分层 NIST Level 2 标准角色基础访问控制,并且非常成熟。它也是一个 OWASP 项目。
我希望您会喜欢它 http://phprbac.net。
RBAC != ACL - Roland 对这个问题有唯一正确的答案。
顺便说一下,实现任何类型的权限系统是框架的重要组成部分 - 至少使用框架没有一个好的工程化 RBAC 系统是没有意义的 - 最好使用带有任何 ORM 层的简单模板系统。
在 PHP 世界中,常见的反模式是像 Ruby 或 Django 这样的框架只被“克隆”为这些现代框架提供的子集 - 典型的综合症是缺乏良好的 ACL 或 RBAC 集成到这些框架中 - 实质上是一个笑话。目前只有 Yii PHP 框架配备了体面的 RBAC 实现。
了解了Khaos ACL,这是一个CI库...我也在研究phpgacl以及如何将其用于CI...还没有检查过Zend ACL。但也许它可以被“移植”到CI中。