2014-11-06 64 views
1

有沒有一種方法可以在企業應用程序中設計通用的基於角色的訪問控制(RBAC),因此其他應用程序也可以使用相同的配置?用於多個應用程序的通用XACML RBAC設計

我已經看到了使用XACML的WSo2 Rbac支持,但我無法理解如何設計通用的RBAC策略,以便其他應用程序也可以使用它。

我知道如何使用WSO2 Identity Server在XACML中創建策略,但我無法理解所有Java應用程序如何使用這些策略?

回答

0

爲了在您的應用程序中使用XACML策略,您需要將XACML PEP(策略執行點)代理與您的應用程序集成。 PEP代理將攔截您訪問資源的所有請求,並將其轉換爲XACML請求,然後與XACML策略服務器進行通信以供決定。

如果您的應用程序是一個Java Web應用程序,那麼您可以創建一個servlet過濾器作爲PEP。你可以找到樣品herehere

如果您將其用於現場級授權或非Web應用程序,那麼您可以使用基於節點的PEP客戶端,它將與您的XACML策略服務器進行通信。您可以使用java here找到示例PEP。 Thrift是比SOAP或REST更高效的協議。

+0

非常感謝大衛和優素福的答案。所以我在想什麼是製作一個Spring AOP Layer,這樣每個方法調用都將被授權和訪問/限制。還有WSO2 ESB將向WSO2身份服務器發出授權請求。如果有任何問題,我會在這裏發佈我的更新。再次感謝您的答案。 – Budhh 2014-12-02 06:26:12

0

除了優素福的重點關注執行的答案之外,您還應該考慮使用專注於策略設計本身的RBAC Profile of XACML。它解釋瞭如何爲基於RBAC的應用程序設計策略。

在配置文件中,如下圖所示,策略被組織到角色策略和權限策略中。通過使用策略引用,可以爲多個角色策略分配多個權限。也可以讓角色繼承其他角色(例如經理會繼承員工的權限)。

HTH

RBAC Profile of XACML - Policy Structure

+0

嗨大衛,你是否有可能提供解釋上圖的樣本政策。 – Budhh 2014-12-22 07:31:51