适用于多种应用的通用XACML RBAC设计

时间:2014-11-06 10:19:19

标签: java-ee rbac xacml abac

有没有办法在企业应用程序中设计基于角色的访问控制(RBAC),因此其他应用程序也可以使用相同的配置?

我已经看到了使用XACML的WSo2 Rbac支持,但我无法理解如何设计常见的RBAC策略,因此其他应用程序也可以使用它。

我了解如何使用WSO2 Identity Server在XACML中创建策略,但我无法理解所有Java应用程序将如何使用这些策略?

2 个答案:

答案 0 :(得分:0)

要在您的应用程序中使用XACML策略,您需要将XACML PEP(策略强制执行点)代理与您的应用程序集成。 PEP代理将拦截您访问资源的所有请求并将其转换为XACML请求,然后与XACML策略服务器通信以进行决策。

如果您的应用程序是java Web应用程序,那么您可以创建一个servlet过滤器作为PEP。您可以找到示例herehere

如果您将其用于字段级授权或非Web应用程序,则可以使用基于thrift的PEP客户端,该客户端将与您的XACML策略服务器通信。您可以使用java here找到示例PEP。 Thrift是比SOAP或REST更有效的协议。

答案 1 :(得分:0)

除了Yusuf关注执法的答案外,您还应考虑使用专注于政策设计本身的RBAC Profile of XACML。它解释了如何为面向RBAC的应用程序设计策略。

在配置文件中,如下图所示,策略组织为角色策略和权限策略。通过使用策略引用,可以为多个角色策略分配多个权限。角色也可以继承其他角色(例如,经理会继承员工的权限)。

HTH

RBAC Profile of XACML - Policy Structure