我有興趣爲用戶訪問軟件系統內的資源執行高級訪問控制。我在醫療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