基于角色的访问控制

时间:2010-10-09 02:33:36

标签: java authorization rbac

是否有基于Java开源角色的访问控制系统?

6 个答案:

答案 0 :(得分:9)

Spring Security可能对你有好处。

答案 1 :(得分:2)

我认为你要回答的问题是:

用户是否有权在对象 o 上执行操作操作

要考虑的一件事是,您的域对象和用户组是如何从业务角度定义的(在AC机制之外)。对于任何RBAC实现,您需要对其进行配置以告知您的用户和用户组是什么。这将影响您对RBAC实施的选择。

另一个(更具体)问题:您是否需要支持覆盖权限,包含和排除?具体来说,您是否希望能够支持对象o1可用于用户组g1但不是用户u1(谁是组g1的一部分)的场景?

根据具体答案, jguard (基于JAAS构建)可能是一个非常好的选择 - http://jguard.net/

答案 2 :(得分:2)

APACHE SHIRO Java安全框架

在授权上使用Role Based Access Control

答案 3 :(得分:1)

有很多可能的解决方案,但哪一种最好(即满足您的需求而不是太重量级或太复杂而无法实施)取决于您的要求:

  • 您是在谈论网络服务的访问控制还是其他什么?

  • 您希望实施哪种访问控制?完全基于资源URL,还是取决于所请求实体的状态/元数据?角色是简单的还是分层的?不同的行动需要不同的角色吗?

  • 您是否也需要处理授权?

答案 4 :(得分:1)

有几个框架为您提供授权系统:

  1. Spring Security
    Spring Security是一个高度可定制的框架,被广泛用于处理任何用Java开发的基于Enterprise的应用程序中出现的身份验证和访问控制(授权)问题。

  2. Apache Shiro
    Apache Shiro是一个功能强大且易于使用的Java安全框架,它执行身份验证,授权,加密和会话管理。使用Shiro易于理解的API,您可以快速轻松地保护任何应用程序-从最小的移动应用程序到最大的Web和企业应用程序。

  3. JAAS (Java Authentication and Authorization Services)
    JAAS是由专门为用户身份验证和授权而设计的Java软件包组成的安全API之一。 JAAS作为Java SE 1.3中的可选软件包引入,后来从J​​DK 1.4开始集成到JDK中。

  4. OACC
    该Java应用程序安全框架旨在细化(对象级别)访问控制。其重点是提供功能全面的API,以强制执行和管理应用程序的身份验证和授权需求。它提供了灵活而强大的安全模型的完整实现。

  5. jCasbin
    jCasbin是用于Java项目的功能强大且高效的开源访问控制库。它为基于各种访问控制模型的授权实施提供支持。

答案 5 :(得分:0)

Fortress是ANSI RBAC兼容引擎(INCITS 359),并在BSD开源许可下发布。你可以从这里下载:http://iamfortress.org