【发布时间】:2016-02-04 15:42:55
【问题描述】:
我们目前正在完成的 Java EE 应用程序使用 JBoss PicketLink 和 Apache DeltaSpike 作为其安全框架。所有身份验证和授权决策都是使用这些库完成的。由于我们的安全性要求很高,我们的大多数 EJB 服务方法都有授权检查。在某些情况下,非特权用户需要执行特权操作。例如,仅允许具有 Admin 角色的用户创建用户帐户。但是,在用户自行注册期间,需要创建用户帐户。通常,我们会为这个敏感操作使用类似“Run As”的东西,这样对于单次调用,非特权用户将有权执行特权操作。
但是,我没有在 PicketLink 文档或示例中看到任何表明 PicketLink 支持此功能的内容。我知道其他安全框架可以这样做。 Java EE 甚至通过 @RunAs 注释支持这一点。但是,我们不希望使用注释来执行此操作,因为我们希望对可以应用的位置进行非常细粒度的控制。
谁能指出我可以解释如何做到这一点的任何文档或示例? PicketLink 是否支持此功能?还是我们运气不好?您是否有其他方法可以用来解决此类情况和要求?
【问题讨论】:
-
您在PicketLink 中使用XACML 吗? Run As 功能通常是作为身份验证框架和使用属性的策略的组合来实现的,例如代表...
-
没有。不使用 XACML。这似乎比我们目前认为需要的重量级增加得多。
-
XACML 不是重量级的,但考虑到您的用例,听起来您需要身份验证层来处理模拟
标签: java security jakarta-ee authorization picketlink