【问题标题】:Spring Security integration with XACML(Or any other policy based solution)Spring Security 与 XACML 的集成(或任何其他基于策略的解决方案)
【发布时间】:2013-11-06 06:36:38
【问题描述】:
我们的 Web 应用程序基于 Spring Security。我们已经通过 SSO 提供商 (CAS) 处理身份验证
我们正在尝试为我们的应用程序(角色和前提)找到一种处理授权的便捷解决方案。
我读到了 XACML;但是,找不到任何在 Spring-security 框架中实现和集成它的实际经验/示例。
有人有这方面的经验吗?
谢谢,
雷。
【问题讨论】:
标签:
spring
spring-security
authorization
xacml
【解决方案1】:
我不确定 spring 安全框架。但是如果您的应用程序可以调用外部soap web 服务,您可以使用WSO2 Identity Server。因为 WSO2 Identity Server 的 PDP 已通过基于 SOAP 的 Web 服务公开。我想,使用您的应用程序,您可以轻松调用它们。更多详细信息,您可以从blog 中找到。
【解决方案2】:
Asela 所说的大多数基于 XACML 的授权服务器都是如此。
你可以选择开源:
- WSO2 (Asela's) 提供的不仅仅是 XACML BTW - 它首先是一个中介平台
- ForgeRock 的 OpenAM
- JBoss 的PicketBox。
- 赫拉斯AF
- AuthzForce
有些实现 XACML 2.0,有些实现 XACML 3.0
在您拥有的供应商空间中:
- IBM (XACML 2.0)
- Oracle(专有)
- 戴尔(XACML 3.0,基于 .NET)
-
Axiomatics(XACML 3.0、.NET 和 Java)
免责声明:我为后者工作,Axiomatics。我们在过去测试了一个示例 PEP,它实现了 Spring 安全访问决策,它工作正常。根据 XACML 的 REST 配置文件,我们的 PDP 既可以作为 SOAP Web 服务公开,也可以通过 REST 公开。
您想让您的 Spring Access Decision Manager 实现 XACML PEP 吗?您想改用选民吗?您需要支持义务和建议吗?
您还可以使用 Axiomatics 也提供的 AOP PEP。我们将在即将到来的星期四举办一个关于该主题的网络研讨会。详情here.
【解决方案3】:
我知道这是一个老问题,但我认为最近的一次名为 "Enhancing Spring Security" 的网络研讨会(免责声明:我为 Axiomatics 工作,并且是网络研讨会的一名小组成员)将有助于回答所提出的问题。
它解释了如何扩展 Spring Express 语言 (SpEL)(在 v3 中引入)以实现自定义表达式以调用 XACML PDP 以在 URL 和 UI(Web 表达式)以及方法(方法表达式)级别。