Websphere 应用程序登录

Websphere Application Login

我试图在 Websphere 中注册一个应用程序登录模块,但我在 Web 中找不到任何简单的示例。

IBM 文档很多,但是太复杂了,我不知道如何注册应用程序登录模块。

我已经成功使用绑定到 WEB_INBOUND 的系统登录模块,它可以工作,但会影响我的所有系统。我希望登录模块仅通过 JAAS 身份验证为我的应用程序 Web 提供服务。

我尝试将登录模块绑定到现有的 WSLogin,但它似乎不起作用。

有什么帮助吗?

tks[]

我问了一圈,这是来自容器安全所有者的答案:

WEB_INBOUND 是始终默认配置的 JAAS 系统登录。但是,您可以指定自己的 JAAS 应用程序登录名或自定义现有的 WEB_INBOUND 系统登录名。如果只希望一个应用程序使用与所有其他应用程序不同的 JAAS 登录名,则可以使用具有这些不同安全配置的安全域。唯一的问题是应用程序服务器必须与其他应用程序位于单独的服务器中。这样,您就可以将您的安全域映射到该服务器。

这是一篇关于安全域的信息中心文章: http://www-01.ibm.com/support/knowledgecenter/#!/SS7K4U_8.5.5/com.ibm.websphere.zseries.doc/ae/tsec_sec_domains_config.html?cp=SS7K4U_8.5.5%2F1-8-2-33-1

还有一个关于应用程序登录: http://www-01.ibm.com/support/knowledgecenter/#!/SS7K4U_8.5.5/com.ibm.websphere.zseries.doc/ae/rsec_logmod.html?cp=SS7K4U_8.5.5

和系统登录: http://www-01.ibm.com/support/knowledgecenter/#!/SS7K4U_8.5.5/com.ibm.websphere.zseries.doc/ae/usec_sysjaas.html

这是来自安全开发主管的更实用的答案:


所以另一个问题是 - 你为什么要这样做?您是否希望在登录期间仅针对一个应用程序执行任何您不想在其他应用程序登录时执行的操作? (我会这么认为)您可以在您的自定义登录模块中获取应用程序名称,并可以在需要时使用它在您的登录模块中提供您自己的基于应用程序的登录要求(或跳过它)。


我:是的,这就是我会做的。您也可以根据请求中的内容来实现它。我做了一个,它会从 STS 请求 SAML 令牌并将其放在 运行as 主题上,如果我能说出该请求来自 WebSeal(如果不是的话则不会)。

如果您需要为 'app-specific' 情况做的事情需要跳过在 ltpaLoginModule 和 wsMapDefaultInboundLoginModule 中完成的事情(对于其他应用程序应该 运行),您不能真的那样做。但是,您可以修改它们的行为。

通读我在下面给出 link 的任务。是的,我知道这是一个 WS-Security 任务,但它是关于使用 API 的。如果您仔细阅读,尤其是第 3 ("When a caller...") 和第 5 ("To use a..") 段,您就会明白我在说什么。代码中您应该关注的部分是 WSCREDENTIAL* 内容。

http://www-01.ibm.com/support/knowledgecenter/SSAW57_8.5.5/com.ibm.websphere.nd.doc/ae/twbs_config_wssec_caller_no_reg.html

您需要设置安全域以获得您正在寻找的登录配置分离。安全框架使用 WEB_INBOUND 登录配置来验证所有 Web 应用程序的用户,而不管 adminConsole 或用户应用程序。当您创建安全域并在 server/cluster 域级别自定义 WEB_INBOUND 配置时,它将用于部署在这些进程中的所有用户 Web 应用程序。您需要在单元拓扑中设置多域并将域分配给部署应用程序的 server/cluster。

设置域后,server/cluster 域中的 WEB_INBOUND 配置将由该 server/cluster 中托管的用户应用程序使用,而 WEB_INBOUND 配置位于admin/global 域将在部署它的 Deploymener 管理进程中用于 adminConsole 应用程序。

应用程序 JAAS 登录配置旨在供应用程序直接使用。可以创建应用程序登录配置并以编程方式在应用程序中使用它来执行直接登录 - LoginContext lc = new LoginContext("myAppLoginCfg1", callBackHandler);