我在 WebSphere Application Server 7 上运行 IBM Cognos Business Intelligence Server 10.2.1(没有其他额外的软件产品),这两个软件都在 AIX 服务器上。我正尝试通过从 WebSphere 到 Cognos 的基本 HTTP 身份验证配置 LTPA SSO。对于身份验证,我在 Cognos 和 WebSphere 上都使用我公司的 LDAP 服务器。
.../war/gateway/web.xml
在对和进行更改.../war/gateway/application.xml.template
、构建新的应用程序 EAR 并部署它们并选择定义我的登录名之后,登录工作正常……除了当我输入我的用户名和密码时,似乎错误的信息被传递给了 Cognos,因为我得到了普通的登录对话框,用户名字段上只有我的员工姓名(我们使用我们的内部网邮件地址作为用户名)。
我尝试阅读 IBM 关于此事的文档。我了解到的信息是,传递给 Cognos 的 LTPA 令牌包含用户凭据,但我找不到任何关于如何定义从 WAS 传递给 Cognos 的用户凭据或如何配置 Cognos 以从 LTPA 令牌中读取相应凭据的确切信息。
更新:在阅读了大量有关该主题的资料并搜索了三分之一的互联网内容后,我终于设法将问题缩小到 WebSphere 在 Cognos 上设置的 REMOTE_USER 环境变量,该变量不知何故填写了我的员工姓名而不是我的实际用户名。因此,下一步是找出在哪里或如何告诉 WebSphere 在 REMOTE_USER 上填写正确的信息。
我的web.xml
和application.xml.template
修改如下。
网页文件
<!-- WAS SSO configuration begin -->
<security-constraint>
<web-resource-collection>
<web-resource-name>10.2.1FP3_Gateway_WASlogin</web-resource-name>
<url-pattern>/servlet/Gateway/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>was_sso</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>10.2.1FP3_Gateway_WASlogin</realm-name>
</login-config>
<security-role>
<role-name>was_sso</role-name>
</security-role>
<!-- WAS SSO configuration end -->
应用程序.xml.模板
<security-role id="SecurityRole_Cognos_BI_User">
<description/>
<role-name>was_sso</role-name>
</security-role>