是否有任何公开来源, PHP based,基于角色的出入控制系统,可以用于 CodeIgniter?

有帮助吗?

解决方案

Brandon Savage介绍了他的PHP软件包“ ApplicationACL "可能会也可能不会完成基于角色的访问。 PHPGACL 也可能有效,但我无法确切地告诉您。

然而,我可以告诉您的是 Zend_ACL 组件Zend Framework将执行基于角色的设置(但是您必须子类一次检查多个角色)。当然,你不得不从单片下载(或SVN checkout)中提取Zend_ACL,我不相信它有任何外部依赖性。

关于Zend_ACL的好处是它的存储不可知。您可以每次重建它或者它被设计为序列化(我使用两者的组合,序列化缓存和从数据库重建)。

其他提示

也许我误解了这个问题,但基于角色的访问控制(RBAC)的重点不是避免访问控制列表(ACL)?

  

RBAC与访问控制列表(ACL)不同 (...),因为它为组织中具有意义的特定操作分配权限,而不是低级数据对象。例如,访问控制列表可用于授予或拒绝对特定系统文件的写访问权,但它不会说明文件可以以何种方式进行更改。在基于RBAC的系统中,操作可能是在金融应用程序中创建“信用账户”交易(...)。分配执行特定操作的权限是有意义的,因为操作是细粒度的,并且它们本身在应用程序中具有意义。   (引用:维基百科

我不知道Zend_ACL或其他提到的实现的细节,但如果它们是基于ACL的,我不建议将它们用于基于角色的授权。

我创建了一个名为 PHP-Bouncer 的开源项目,您可能会感兴趣。它仍然相当年轻,但运行良好,易于配置。我最终开发它,因为现有的解决方案似乎都没有满足我的需求。我希望这有帮助!

phpgacl http://phpgacl.sourceforge.net/ 是基于acl的通用访问控制框架

虽然我不知道任何CI特定的实现,但我知道你只需要主类文件来使phpgacl工作。所以我相信与CI的整合不会有任何问题。 (我和CI一起工作)

这里有两个来说库PHP我发现:

我实际使用中的第一个PolyAuth: https://github.com/Polycademy/PolyAuth/

这是个全功能的认证库,包括NIST1级来说.是的,来说是不一样的ACL。我用笨,你所要做的就是使用公设辩护人的驱动程序并通过在连接id。看到这个教程对于如何做到这一点: http://codebyjeff.com/blog/2013/03/codeigniter-with-pdo

发现关于Khaos ACL这是一个CI库...我也在检查phpgacl以及如何将它用于CI ...还没有检查过Zend ACL。但也许它可以被“移植”。到CI

尝试CodeIgniter的DX_Auth插件。我正在研究DX_Auth所具有的类似(相当于超集)的功能。我的CI插件集包括菜单的显示(可以通过CSS控制),调用控制器之前的基于角色的访问控制以及其他功能。我希望尽快发表。我这样做会给出项目网址

RBAC!= ACL - Roland对这个问题有唯一正确的答案。

当然,BTW是实现任何类型权限系统的框架的重要组成部分 - 至少在使用框架时没有意义,如果它没有为您提供一个良好的通信RBAC系统 - 它可能更好用一个简单的模板系统,然后有任何ORM层。

这是php世界中常见的反模式,像Ruby或Django这样的框架被“克隆”了。只作为这些现代框架提供的一部分 - 作为一种典型的综合症,看到缺乏良好的ACL或RBAC集成到这些框架中 - 本质上是一个笑话。 目前只有Yii PHP框架具有良好的RBAC实现。

我知道这条路很冷,但是又出现了一个新项目:

PHP-RBAC是一个PHP分层NIST Level 2标准基于角色的访问控制,非常成熟。它也是一个OWASP项目。

我希望您在 http://phprbac.net

中享受它

http://www.jframework.info (deadlink)

jFramework有一个标准的NIST 2级RBAC,其增强功能被认为是可以在单个SQLite数据库文件上运行的最快的(包括基准测试),并且经过彻底测试,就像手套一样。

依赖于jFramework DBAL但您可以使用所需的DBAL简单地替换代码中的DBAL SQL查询,当然您也可以以SOP方式使用jFramework。

Ion Auth Library使用用户和组 - https://github.com/benedmunds/CodeIgniter-离子验证 但是没有可用的RBAC系统来使用它们并进行管理。但你可以白化你的功能。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top