开源权限管理中间件 Ralasafe 发布 1.0 rc2 版

  • 崔康

2010 年 8 月 9 日

话题:Java开源安全架构DevOps语言 & 开发

Ralasafe是一款国产开源数据级权限管理中间件,使用MIT 协议,最近发布了 1.0 rc2 版。项目采用 Java 语言编写,解开权限与业务的耦合,将权限策略集中管理,并使用图形化的管理模式。InfoQ 中文站就 Ralasafe 的应用场景、技术架构和未来规划等问题对项目负责人汪金保进行了专访。

InfoQ 中文站:作为一款权限管理中间件,Ralasafe 的典型应用场景包括哪些?

Ralasafe 与各种应用系统结合,提供两种权限管理服务,对应场景是:
  1. 行为权限:基于角色的权限管理 ——比如:张三是销售经理,能够查询订单;李四是人力资源经理,能够修改客户资料等。
  2. 数据级权限:更加细粒度的数据内容权限管理——比如:总公司的销售经理王大大能够查询所有订单,北京分公司的销售经理吴北北只能查询北京分公司及下属子公司订单。
Ralasafe 使用 Java 编写的中间件,与 Java 系统结合非常方便。与其他系统,需要 web service 等交互方式。

InfoQ 中文站:相比同类商业软件如 TAM、OES,Ralasafe 存在哪些优势?

TAM(Tivoli Access Manager) 和 OES(Oracle Entitlements Server) 发展年份非常长,属于业内老牌软件。Ralasafe 从 2004 年开始研发,相对于 TAM、OES,还非常年轻。

三款产品都定位于数据级权限管理领域,Ralasafe 与 TAM、OES 相比,做了很多创新。比如:TAM、OES 的权限策略,完全基于规则。Ralasafe 则提出了“用户分类”和“资源”的概念,然后用规则来描述“用户分类”、“资源”。相比较,Ralasafe 具有这样的优势:

  1. 产品功能:TAM、OES 和 Ralasafe 都能控制决策权限,但只有 Ralasafe 能够控制查询权限。比如根据规则,吴北北“能够修改北京订单”,所以吴北北能够修改订单 A、订单 B。但吴北北能够查询哪些订单呢,这种查询只有 Ralasafe 能够控制。
  2. 产品定位:Ralasafe 定位为轻量级,开发人员容易集成,最终用户通过 Ralasafe 界面能自我操控授权策略。
  3. 产品友好易用性:Ralasafe 独创“用户分类”和“资源”的概念,并将其配对成授权策略。该方法不仅增强了授权策略的可读性,也增加了复用性。Ralasafe 和很多开源软件不同,使用 Ralasafe 几乎不需要 JAVA/XML 编程配置工作,全程使用 Ralasafe 友好的图形化界面。

InfoQ 中文站:能否介绍一下 Ralasafe 的系统架构以及所用到的技术?

Ralasafe 主要由两大块组成:安全引擎和 GUI 管理界面。安全引擎用来解析授权策略,为应用系统提供决策支持,查询服务;开发人员和最终用户可以通过 GUI 管理界面来管理授权策略,还可以进行在线测试。

Ralasafe 的安全引擎由 Java 编写的,使用了 beanshell、castor 技术。因为 Ralasafe 涉及的 ORM 是动态的,不能像 hibernate 那样要事先编写 hbm.xml 文件,所以 Ralasafe 自己编写了一套 ORM。

Ralasafe 的 GUI 管理界面,使用 GWT 技术,结合 GWT-EXT、EXT 技术。我们使用的 ext2.0.2 版本,该版本使用 LGPL 协议。由于后继版本使用 GPL 或者商业授权协议,对商业并不友好。因此下一版本,我们将寻求其他前台技术。

InfoQ 中文站:在应用 Ralasafe 过程中,开发人员需要注意哪些步骤?

不少开发人员接触 Ralasafe 后,问得最多的问题是:
  1. 怎样与应用集成
  2. 怎样使用 Ralasafe 编程
Ralasafe 是一款中间件,提供权限管理服务。就像 LOG4J 提供日志服务一样,在需要的地方调用一下服务即可。就我们的项目实践经验,认为在控制层接入 Ralasafe 服务非常合适。

Ralasafe 的接口非常简单,主要是 3 个类。用户类——org.ralasafe.User、Ralasafe 服务类 ——org.ralasafe.Ralasafe 和针对 Web 的服务类——org.ralasafe.WebRalasafe。另外,Ralasafe 提供的一些 Filter,也可以大幅减少编程工作。如登录控制 Filter,Url 访问权限控制,这些都只需要对 web.xml 进行简单配置即可。

关于怎样使用 Ralasafe 编程,这个需要转换一下思想。Ralasafe 几乎不需要 JAVA/XML 编程配置工作。首先,开发人员要关注于良好的项目实践:业务逻辑与权限逻辑分离解耦。在需要权限的地方,通过 API 或者 AOP 的方式注入。再次,权限逻辑是使用 Ralasafe 管理界面里面进行管理,不必进行编程或者 XML 配置。很多开发人员都习惯于以往的开发配置模式,所以对 Ralasafe 的图形化管理模式还不太习惯。

InfoQ 中文站:未来 Ralasafe 的发展规划如何?

Ralasafe 的发展方向是:专注于应用安全领域,保持第三方独立性,为最终用户提供“自我掌控的安全”软件及服务。Ralasafe 服务软件开发商、企业和最终用户。

Ralasafe 开发团队,向社会做出两项承诺:免费、开源。不增加软件开发企业的负担,也广思集益,打造稳定最好用的产品。以开放、第三方独立性和良好易用性为目标,不断为软件商服务,为企业和最终用户提供一站式安全管理服务。

InfoQ 中文站:该项目投入到开源世界,您有何期望?

Ralasafe 从 2004 年开始研发,2009 年正式向市场发布。当时我们使用闭源模式,商业推广。也做了几个单子,但我们也听到很多市场的声音:

  1. 很多企业认为 Ralasafe 很好,但商业的软件,不愿意使用。
  2. 有些企业尤其是大企业,像 Ralasafe 这样的安全软件,采取闭源模式不放心。
  3. 很多开发人员呼吁我们,希望我们开源。
鉴于这些情况,我们团队慎重考虑后,决定开源免费。就像起先我们花费 5 年研发时间一样,这次开源免费,我们也会不断坚持,做个负责任的开源团队。

开源后,我们看到软件下载量不断增加,很多网友通过 email/ 社区 /QQ/gtalk 等方式,与我们互动沟通。不仅找出我们软件的一些 BUG,也让我们学习到很多东西,让我们不断提高,软件品质不断提高。开源并不像我们原来所想,只是付出。开源更是双赢。

在地域方面,我们已经推出中英文软件和中英文网站,为全球用户无偿服务。

在商业方面,Ralasafe 的商业模式主要是赞助商和咨询定制服务。开源一个月以来(2010 年 6 月 23 日开源的),已有 10 多位客户与我们洽谈合作。这也让我们看到了希望。当前,我们团队非常期望有些企业能够成为我们的赞助商。

我们也期望中国开源软件,越来越多,更多软件走向国际,形成大气候。

InfoQ 会继续关注国内开源社区的发展动态,对 Ralasafe 项目感兴趣的朋友可以访问其官方网站或者论坛了解更多细节。

专家介绍:汪金保,Ralasafe 项目负责人,首席架构师。2000 年开始接触 Java,立马喜欢上该编程语言。从事多项银行项目研发。2004 年辞职专注于 Ralasafe 研发。我喜欢简单,不喜欢复杂;我喜欢自由,不喜欢束缚;我喜欢不断反省自己,又不断与周边的朋友分享。除了 IT 外,还喜欢民歌,戏曲,读书,网球和乒乓球。我的 Email: wangjbao[at]gmail.com,期望与大家交流。

Java开源安全架构DevOps语言 & 开发