我有兴趣为用户访问软件系统内的资源执行高级访问控制。我在医疗IT方面工作,年轻的我经常低估role-based access control in healthcare的复杂性。但是这个问题应该适用于任何具有复杂ACL需求的人。高级访问控制库
相当一段时间php gacl一直是我去到库处理医疗IT系统里面非常复杂的ACL控制问题的目的。但我现在通常更多地使用javascript,特别是节点。我已经搜索npm的图书馆以一般化的方式进行访问控制。
我想支持定义操作,而不仅仅是用户和资源(3层而不是2层),我希望拥有用户,操作和资源组,并且暗示我希望拥有ACL继承权。从the Star Wars themed manual该库
经典的例子是一样的规则:
- 船员们的所有成员(访问,配置和使用)访问 枪,发动机,座舱和休息,期待chewie。
- 所有机器人都(访问和使用)进入驾驶舱,但只有R2D2有 的发动机配置的访问。
- 韩有所有类型的资源访问所有类型的 资源。这里
的基本概念,包括概念,你可以应用到用户的任一组(即船员,乘客或机器人)或个人规则(汉和Chewie),你可以有不同类型的访问(战斗站=驾驶舱+枪支)对不同资源(发动机和驾驶舱)进行访问(访问,配置,使用)或访问组(访问,配置+修理+使用)。
这允许配置非常复杂的访问控制规则,并且具有相对简单的基于组的管理。
到目前为止,我在php-gacl之外没有见过这样的东西。我看了一下精彩的基于javascript的ACL项目,并且他们都宣传简单易用而不是全面。这也是其他典型的PHP ACL库的真实(即Zend ACL)
是否有人正在为节点的“高级访问控制列表”的项目?有没有更好的方法可以找到我应该寻找的地方? (这可以说是过于复杂),以及一个规则上的CRUD API(可以很容易地转换为我认为的REST接口)的API,和一个提供ACL检查功能的非常小的文件。
技术上,只有最后一种需要被完全移植到节点,为了使这种软件模型的工作?
在更深层次上,我想了解哪些方法已成功用于处理此问题。这个问题通常如何解决?对于那些通过节点/ javascript甚至特定的数据库方法(关系vs非关系)有效讨论这个问题的人来说,奖励点。我知道有很多理论基础来做这个对错(即对RBAC和ACL有很多意见)。我想要的是理论上坚实的东西,或者说从图书馆的角度来看,它仍然“刚刚起作用”。我专注于Javascript,但很好理解其他语言如何解决这个问题。
这是关于堆栈溢出的主题。 – 2013-01-01 04:46:37