RBAC不是RBAC不是RBAC和RBAC在紙上很難實現,但在現實生活中幾乎不可能實現。
每個人都有自己的RBAC「想法」,大多數人對與RBAC相關的每件事都使用不同的術語。一般來說,從LDAP實現的角度來看,很少有所有的「部分」在LDAP中做適當的實現。
用簡單的術語的「片份」分別是:
S =主題= A人或自動代理或用戶
P =權限=存取模式的批准目標資源
T =目標資源=要分配權限的對象
角色至少需要關聯權限和用戶。 目標資源可能完全位於LDAP之外。所以它可能是Tomcat服務器上的應用程序,或者只是讀取LDAP服務器中「其他」條目的權利。
因此,LDAP中最好的做法是設置一個包含用戶列表的對象,並且如果LDAP中有某些資源,則爲這些目標資源分配正確的目錄權限。
然後有一點問題的實現。
我們現在需要一個政策來實施我們的角色。所以我們的角色,如果沒有關於如何使用它的政策,我們將其稱爲用戶只讀(USER-READ-ONLY)。
在我們的案例中,我們可以說用戶只讀角色可以讀取組織中的任何內容。
所以我們現在有一個政策。這個政策在哪裏存儲?策略的數字表示存儲在「策略信息點」或PIP中。
我們如何解釋PIP提供的政策?政策由政策決策點(PDP)解釋。
誰決定主題(用戶)是否可以訪問資源?政策執行點(PEP)。
將所有這些策略組合在一起,我們最終得到策略的數字表示形式,由策略信息點提供給策略決策點,策略決策點然後將決策傳遞給訪問被允許或拒絕的策略執行點。
所以在我們的RBAC故事中,PIP,PDP和PEP在哪裏? 那麼,如果目標資源在LDAP目錄中,那麼它就是LDAP目錄,它是PIP(我們可能硬編碼並且不抽象,PIP也是PEP,而且很容易。)
但是如果它是我們的Tomcat應用程序,它必須是Tomcat應用程序中可以中斷的一種方法。知道必須使用一種方法來說「我有這個主題(用戶)並且他希望訪問此目標資源(庫存)以執行此權限只讀)」。
當然也有一些標準,這一切的東西。(谷歌XAML,RFC3198,ISO10181-3,NIST),但它們與實際實現的巨大差距的標準。
因此請記住RBAC的真正實現很難。
當然,恕我直言,我們應該瞭解RBAC,研究論文並使其成爲一個戰略方向,但是跨越廣泛的供應商和應用程序基礎的現實生活實現,以及我們現在還沒有。
-Jim
好奇 - 爲什麼downvote甚至沒有評論?這在三年前我問到時似乎是一個相關的問題......特別是當時我正在研究的項目。 – 2012-05-01 16:10:17
作爲OP,我發現這是[基於LDAP的基於角色的安全實現](http://stackoverflow.com/questions/8020237/role-based-security-implementation-in-ldap)的副本,它實際上具有一些有用的指導。 – 2013-09-26 13:09:44