2

问题描述:有两个子系统。一个是基于 Web 的 Java EE 应用程序,另一个是 Cognos 报告工具。目前,这两个应用程序都提供了单独的登录页面,允许用户根据系统中定义的角色执行他们的活动。Java EE 用户可以使用其登录页面直接登录到 Java EE 应用程序。同样,Cognos 用户可以通过提供其内部网 ID 凭据,使用其登录页面登录到门户。

有一个要求,其中 Java EE 应用程序的用户应该能够通过单击 Java EE Web 应用程序中的 URL 链接来查看 Cognos 报告。目前,单击此 URL 将打开 Cognos 门户,提示输入用户凭据。

我期待有一个解决方案可以帮助我们在单击 URL 时绕过 Cognos Portal 登录页面。这将帮助已登录 Java EE 应用程序的用户在新网页上查看 Cognos 报告,而无需再次登录。

4

2 回答 2

2

这会解决你的问题吗?

http://www.ibm.com/developerworks/data/library/cognos/security/cognos8_platform/page511.html

于 2011-01-21T14:37:10.223 回答
2

您可以按照以下步骤在您的应用程序和 cognos 之间实现单点登录:

(我假设您使用的是 LDAP 和 Java)

  • 在您已经拥有 Cognos BI 服务器的开发机器上安装 Cognos SDK。要试用与 Cognos SDK 捆绑的示例,您将需要 JDK。如果您已经在没有 JDK 的情况下运行 Cognos,那么 Cognos 可能正在使用它的捆绑 JRE,不幸的是它不是来自 Oracle。在这种情况下,您可能必须卸载 Cognos,先安装 Oracle JDK,然后重新安装 Cognos 和 Cognos SDK。否则,您将遇到一些密码学不兼容问题。
  • 确保您已正确配置完整的身份验证提供程序命名空间(如 LDAP)。
  • 转至 Cognos SDK 附带的 TrustedSignonSample。在 Cognos 10 中,可以在 $COGNOS_SDK/java/AuthenticationProvider 下找到 Java 示例。
  • 修改 TrustedSignonSample.java 并在那里设置您的 LDAP 命名空间 ID。受信任的登录提供者将使用此命名空间来验证用户是否存在。
  • 使用提供的 build.bat 构建示例,您应该会得到一个 jar 文件。
  • 阅读示例随附的“readme.txt”并正确配置此提供程序。
  • 现在,如果您转到 Cognos 登录页面,您应该会看到两个名称空间选项。
  • 如果您在与 Cognos 相同的机器上运行您的应用程序,只需创建一个具有相应名称(请参阅 TrustedSignonSample 以获取 cookie 名称)和值的 cookie。您可以将 cookie 的值设置为当前登录用户的应用程序。
  • 就是这样,设置 cookie 后,如果您转到 Cognos 登录页面并选择自定义的受信任登录提供程序命名空间,则不会提示您登录。
  • 如果您根本不希望 Cognos 显示登录页面,您可以在 cognos 配置中将自定义可信登录提供者的名称空间配置为默认值。
  • 如果您在与 Cognos 不同的机器上运行应用程序,则必须在 Cognos 全局配置中进行更多配置,以确保它接受来自该机器/域的 cookie。

有关更多信息,请参阅此“线程”:http://businessintelligence.ittoolbox.com/groups/technical-functional/cognos-l/the-cookie-trusted_signon_user-is-not-set-4863689 由您真正发起。

我通过这种方式在 Cognos 和我的应用程序之间实现了单点登录。我希望它对你有帮助。

于 2012-07-24T01:43:32.387 回答