基于角色的访问控制
2022-08-30 16:35:25
是否有任何开源的,基于角色的访问控制系统可用于?PHP based
CodeIgniter
是否有任何开源的,基于角色的访问控制系统可用于?PHP based
CodeIgniter
也许我误解了这个问题,但是基于角色的访问控制(RBAC)的主要意义不就是避免访问控制列表(ACL)吗?
RBAC 与访问控制列表 (ACL) (...) 的不同之处在于,它将权限分配给组织中有意义的特定操作,而不是分配给低级数据对象。例如,访问控制列表可用于授予或拒绝对特定系统文件的写入访问权限,但它不会说明以何种方式更改该文件。在基于 RBAC 的系统中,操作可能是在财务应用程序中创建“信用帐户”交易记录 (...)。分配执行特定操作的权限是有意义的,因为这些操作是细粒度的,并且本身在应用程序中具有意义。(引用:维基百科)
我不知道Zend_ACL或提到的其他实现的细节,但如果它们是基于ACL的,我不建议将它们用于基于角色的授权。
Brandon Savage在他的PHP包“ApplicationACL”上做了一个演讲,该软件包可能会也可能不会实现基于角色的访问。PHPGACL可能也可以工作,但我不能肯定地告诉你。
但是,我可以告诉你的是,Zend Framework Zend_ACL组件将执行基于角色的设置(但是您必须子类才能同时检查多个角色)。当然,这样做的痛苦是你必须从整体下载(或SVN结帐)中提取Zend_ACL,我不相信它有任何外部依赖关系。
Zend_ACL的好处是它的存储不可知。您可以每次重新构建它,也可以将其设计为序列化(我使用两者的组合,序列化缓存并从数据库重新生成)。