2014-11-06 66 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