Java EE和Cognos应用程序之间的SSO

时间:2011-01-21 06:24:54

标签: java-ee single-sign-on cognos

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

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

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

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

您可以按照以下步骤在应用和认知之间实现单点登录:

(我假设你使用的是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相同的计算机上运行您的应用程序,只需创建一个具有相应名称的cookie(请参阅TrustedSignonSample获取cookie名称)和值。您可以将cookie的值设置为当前登录用户的应用程序。
  • 就是这样,在设置cookie后,如果您转到Cognos登录页面并选择自定义可信登录提供程序命名空间,则不会提示您登录。<​​/ li>
  • 如果您不希望Cognos显示登录页面,您可以将自定义可信登录提供程序的名称空间配置为cognos配置中的默认名称。
  • 如果您在与Cognos不同的计算机上运行应用程序,则必须在Cognos全局配置中进行更多配置,以确保它接受来自该计算机/域的Cookie。

有关详细信息,请参阅此“线程”:http://businessintelligence.ittoolbox.com/groups/technical-functional/cognos-l/the-cookie-trusted_signon_user-is-not-set-863689

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