2014-01-14 84 views
0

我正在尋找具有兩個參數的RBAC系統的示例或最佳實踐。而不是簡單地讓一個用戶與一個角色相關聯,並且該角色與一組權限相關聯;用戶可以與「針對特定項目」的角色相關聯,然後用戶可以僅爲該項目擁有該角色的權限(或用於該用戶擁有該角色的其他項目)。用戶可以在一個項目上具有特定角色,在另一個項目上具有不同角色;授予角色的權限對於每個項目都是一致的;並且用戶對項目的權限基於該用戶對項目的角色。具有兩個參數的RBAC系統

(如果這有什麼差別,我想限制在頁面內容是通過通過一個GET語句設置項目ID的URL查詢參數開發頁面訪問。)

ABAC看起來很有希望,但我有困難纏繞它。我的理解是用戶的屬性決定了用戶是否具有角色(和/或權限)。在我的情況下,似乎我可能認爲項目是「用戶」,而我的用戶是項目的屬性(如果我的用戶擔任該項目的角色,或者假如沒有,則爲false)

回答

0

如果你想堅持RBAC標準,那麼你將不得不爲不同的項目使用不同的角色。例如,如果在項目「P1」和「P2」中使用角色「admin」,則可以創建角色「P1:admin」和另一個角色「P2:admin」。

ABAC確實是另一種可能性。但是,如果我理解正確,說「用戶的屬性決定了用戶是否具有角色(和/或權限)」是不正確的。 ABAC中只有屬性(從屬於的屬性是屬性),這比RBAC提供了更大的靈活性。在請求中,您可以擁有代表項目的屬性(「P1」或「P2」),以及表示該特定項目(「admin」)角色的另一個屬性。例如,正確指定的策略將能夠識別您指的是「管理員」角色,作爲「P1」項目的一部分。

+0

我認爲RBAC解決方案對我的應用來說是最直接的。這導致了一個關於[動態生成RBAC角色和權限]的問題(http://stackoverflow.com/questions/21121606/dynamic-generation-of-rbac-roles-and-permissions) – jcropp