Java EE角色管理系统 - 它们是否存在?

时间:2010-01-07 13:37:02

标签: java security java-ee roles

我正在寻找创建一个与Java EE角色集成的分散式角色管理系统。有这样的事吗?

用例示例:

系统A是使用公司角色的受限访问系统。 John加入了一个团队,并要求SYSTEM_A_READONLY执行他的功能。他登录到分散的角色管理系统,并发出SYSTEM_A_READONLY请求。 Bill是系统A的管理员,并收到John已申请此访问权限的通知。然后,他可以登录到同一系统并批准该请求。 John现在可以访问系统A.

系统B是一个敏感的客户管理系统。它为每个服务的公司提供1个角色。目前它有SYSTEM_B_CLIENT_FOO,SYSTEM_B_CLIENT_BAR等.Greg是该系统的管理员,销售团队通知TNT已作为客户登录。他登录到角色管理系统,并添加新客户端。 Web应用程序C(远程托管,但仍使用企业角色)检测新角色,并将其添加为其用户的选项。

希望这是有道理的。我自己研究过,但这似乎是一个必须非常普遍的要求。

5 个答案:

答案 0 :(得分:2)

我不认为这样的事情存在。确实的要求似乎非常普遍,但我认为外表是欺骗性的。对于任何(应用范围)应用程序,每个公司都将对管理用户和角色的界面有非常具体的要求。

根据要求,设置也可能相当简单。如果“提出请求”只是意味着“向管理员发送电子邮件”和“添加客户端”意味着使用生成的简单CRUD框架登录,管理员并填写表单,那么您已经完成了。 / p>

答案 1 :(得分:1)

有一些产品可以帮助你 - 比如来自bea的crosslogix。

这些通常是逻辑决策引擎,可以让您制定复杂的规则,允许角色和权限等内容嵌套和分层。他们还(通常)允许进行参数化权限检查,例如用户在角色ACCOUNT_APPROVER中,如果它是该月的最后一周

“检测新角色”通常是拥有集中式系统的副产品 - 即一切只是查询它,而且API非常快,专门用于查询'廉价'操作。

他们通常不太擅长(我猜他们觉得它不在他们的空间)是围绕批准访问这些角色的工作流程。它们通常会为您提供一个控制台(和一个API)来修改它们,但会将批准工作流程留给您。

正如之前的海报所说 - 批准位的问题在于它往往是非常具体的公司 - 所以它通常留作API。

简而言之 - 像crosslogix这样的东西可以完成你需要的一半 - 决策逻辑,而且大多数产品都会为你提供一个简单的超级控制台来管理权限逻辑,但如果你想要公司特定的逻辑批准 - 你可能不得不在网站上设置一个网站。

-ace

答案 2 :(得分:1)

嗯,对我来说,这样的系统存在并被称为LDAP(LDAP组通常映射到J2EE角色)。但我承认LDAP引擎不提供您提到的所有设施和工作流程。实际上,我的经验是这些是针对每家公司的(特别是因为缺乏“通用”工具),而且大多数时候,我工作过的公司都有自定义管理应用程序和自定义 API,以便从应用程序与其进行交互。

答案 3 :(得分:1)

你可以看看Apache Shiro http://incubator.apache.org/shiro/虽然我不确定它是准备好黄金时间还是完全没有你想要的东西。

您可以使用Spring Security开发授权组件,特别是通过实现您自己的AccessDecisionVoter和UserDetailsS​​ervice。实体,持久性和web ui组件非常简单,你可以在任何你喜欢的框架中做到这些。

答案 4 :(得分:0)

我们使用的东西非常类似于你所要求的东西。 Icefaces为其组件提供了renderonUserRole,它可以与Spring Security结合使用,以满足您的需求。 See this