【问题标题】:JAAS Authorization in the web-service interacting with FileNet Content Engine与 FileNet 内容引擎交互的 Web 服务中的 JAAS 授权
【发布时间】:2013-06-03 10:17:21
【问题描述】:

我有两个应用程序在 WAS 7.0 服务器的单个实例中运行,其中一个是 IBM Business Space(在这种情况下无关紧要,但无论如何),另一个是我正在开发的 RESTful 服务。这两个应用程序都与 FileNet 内容引擎交互。我知道 Business Space 使用 JAAS 来利用身份验证和授权任务,我的服务也是如此。要求是,在访问服务时,使用已经登录到业务空间的用户的安全令牌从服务内执行对 FileNet 的请求。我对 JAAS 机制没有深入的了解,可能会出错,但快速谷歌搜索说可以获取登录用户的 JAAS 主题并将其传递给我的服务的 UserContext。我使用的代码如下:

if (userContext == null) {
    userContext = UserContext.get();
    if (userContext.getSubject() == null) {
        LoginContext loginContext = new LoginContext("config");
        loginContext.login();
        userContext.pushSubject( loginContext.getSubject() );
    }
}
UserContext.set(userContext);

对应的JAAS配置文件:

config {
    com.filenet.api.util.WSILoginModule required;
};

我有以下问题:

  • 如果我不想提示用户在尚未登录到 Business Space 应用程序的情况下输入凭据,我是否应该将回调处理程序传递给 LoginContext 构造函数?
  • 我是否必须调整任何 WAS 设置才能使此方案正常工作?

更新

我已经设置好了:

  • web.xml 中的基本身份验证方法使用特定于浏览器的对话框提示用户输入凭据
  • jaas.conf 文件的路径,指定使用哪个 LoginModule 类实现

当我测试这个解决方案时,它失败并出现以下错误:

javax.security.auth.login.LoginException: 错误:没有可用于获取身份验证信息的 CallbackHandler

如果回调授权成功,这意味着由于某种原因服务无法检索所需的 JAAS 主题。

我错过了什么?


另外,我在 IBM 网站上看到了以下声明:

EJB 传输层固有的优势之一是能够利用基于 Java™ 身份验证和授权服务 (JAAS) 的身份验证。

但是,它并没有说明在使用 WS 传输时不可能利用 JAAS。还是这样?

【问题讨论】:

  • 您使用 WSI 传输,而不是 EJB 传输,我是否理解正确?
  • fnt,是的,我正在使用 WSI。
  • 不清楚您的服务是如何访问的以及从哪里访问的。它是对远程 HTTP 端点的调用吗?请澄清这一点并显示代码。

标签: java websphere jaas filenet-p8 filenet-content-engine


【解决方案1】:

你是对的,因为你已经有了用户信息,所以不需要回调(用于基于表单的身份验证)。 就 WAS 设置而言,您必须自己决定。 Here 是一个非常好的教程。

但是您是否考虑过使用更简单的SSO 机制来持久化身份验证。 WAS 配置文件/服务器之间的上下文?

【讨论】:

  • 感谢这篇文章,我阅读了它并且已经定义了 JAAS 配置,但是授权不起作用。至于您对 SSO 的建议,我认为这并不简单 - 因为在同一个应用程序容器中工作的两个应用程序 SSO 解决方案有点过分。
  • 我以为您使用的是不同的 WAS 配置文件(然后 SSO 归结为导出和导入 ltpa 令牌)。顺便说一句,FileNet CE 仅将 JAAS 用于身份验证。对于授权,CE 使用您在安装时定义的 LDAP。
  • @mbonaci 对比使用 JASS 和 LDAP 进行身份验证/授权是令人困惑的。在某些方面,LDAP 用于两者。然而,JAAS 确实不用于授权检查。
  • @fnt 我没有比较,也没有将 JASS 与 LDAP 进行比较,因为我同意,这没有多大意义。不过,感谢您澄清这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-09
  • 2011-11-10
相关资源
最近更新 更多