`
seeallsea
  • 浏览: 41677 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Cognos和Websphere之间的SSO配置

阅读更多

 

最近在搞Cognos和Websphere的SSO,被折磨了多天,经过持续的努力,终于配置成功了,记录下来,算给自己一个念想,留个心路历程。

 

网上搜到些文档,都是介绍Cognos和Websphere portal的SSO集成,我的应用没那么复杂,所以不能完全按照网上的文档来配置,只有前半部分部署Servlet Gateway可以借鉴,当你没有了参考,而又不知道应该怎么做时,是最痛苦的。就像在一间黑暗的房间里找到出去的门,不知道方向,但是如果经验越丰富,越是高手,可能打开门的时间会越短,希望自己朝着这个方向迈进。

 

Cognos用户可以和LDAP集成,使用LDAP中的用户登录

Cognos可以匿名登录,这个可以方便开发,省去繁琐的登录,当然设计具有权限的报表除外。同时,提供多种方式的用户集成。比较常用的NTLM(windows系统),LDAP等方式。Cognos支持多种LDAP服务器,笔者使用AD和Tivoli DS都进行测试过。本例中以TDS为例进行介绍。具体配置TDS的过程本文略去,当TDS安装配置好后,需要在Cognos Configuration中进行相应设置。

在Cognos Configuration中的Security->Authentiaction中,点右键New Recource,即添加一个Namespace,输入一个名称,比如输入LDAP,然后类型列表中选择LDAP。

然后修改属性值,参考下表:

 

Host and port <LDAP server host>:<LDAP port>
Base Distinguished Name Distinguished name
For example: o=sample
User lookup (cn=${userID})
Use external identity TRUE
External identity mapping (cn=${environment(“REMOTE_USER”)})
Bind user DN and password specify cn=root
Size limit 20
Time out in seconds 300
Use bind credentials for search FALSE
Allow empty password FALSE
Unique identifier dn
Data encoding UTF-8
SSL certificate database  
Advanced properties  
Object class organizationalunit,organization,container
Description description
Name ou,o,cn
Object class groupnames
Description description
Member member
Name cn
Account object class inetorgperson
Business phone telephonenumber
Content locale (Leave empty)
Description description
Email mail
Fax/Phone facsimiletelephonenumber
Given name givenname
Home phone homephone
Mobile phone mobile
Name cn
Pager phone pager
Password userPassword
Postal address postaladdress
Product locale (Leave empty)
Surname sn
Username cn

 

其中Use external identity和 External identity mapping一定要配置正确。

设置完成之后,可以点右键进行test,看看LDAP是否可以连接成功。

这些具体的每个属性的配置信息可以在IBM的Infocenter上查到,上面的文档很全,每种LDAP的服务器对应的配置都有介绍。

 

转到“Allow anonymous access”设置为False,即禁止匿名登录。

 

转到"Allow Namespace Override"设置为True

 

在部署 Websphere中 Cognos Servlet Gateway

首先找到Cognos的安装目录,在Install/war/gateway目录下,修改web.xml文件,如下所示:

 

<?xml version="1.0" encoding="UTF-8"?>
<!--
    Licensed Materials - Property of IBM

    IBM Cognos Products: gate

    (C) Copyright IBM Corp. 2005 2010
    US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
-->


<!-- Copyright (C) 2008 Cognos ULC, an IBM Company. All rights reserved. -->
<!-- Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated). -->
<!DOCTYPE web-app PUBLIC  "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
    "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
    <display-name>IBM Cognos Servlet Gateway</display-name>
    <description>The IBM Cognos Servlet Gateway</description>
    <servlet>
        <servlet-name>ServletGateway</servlet-name>
        <!-- CUSTOM CLASSLOADER RELATED CONFIGURATION.  DO NOT CHANGE -->
        <servlet-class>com.cognos.pogo.isolation.ServletWrapper</servlet-class>
        <init-param>
            <param-name>servlet-class</param-name>
            <param-value>com.cognos.servletgateway.Gateway</param-value>
        </init-param>
        <init-param>
            <param-name>classLoaderName</param-name>
            <param-value>SGVeryOwnClassLoader</param-value>
        </init-param>
        <!-- END OF CUSTOM CLASSLOADER RELATED CONFIGURATION -->

        <init-param>
            <!-- Should the gateway encrypt passwords? -->
            <param-name>encryptPassword</param-name>
            <!-- "true" or "false" -->
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <!-- The maximum number of connections
                 in the pool -->
            <param-name>maxPoolSize</param-name>
            <!-- A non-zero positive integer -->
            <param-value>20</param-value>
        </init-param>
        <init-param>
            <!-- The number of seconds between pings to dispatcher -->
            <param-name>pingPeriod</param-name>
            <!-- A non-zero positive integer -->
            <param-value>180</param-value>
        </init-param>
        <init-param>
            <!-- The number of seconds between checking the startup file for changed dis-patchers -->
            <param-name>fileCheckPeriod</param-name>
            <!-- A non-zero positive integer -->
            <param-value>30</param-value>
        </init-param>
        <init-param>
            <!-- Tell CAF that this is the gateway -->
            <param-name>cafintegration</param-name>
            <param-value>gateway</param-value>
        </init-param>
        <init-param>
            <!-- Should the Gateway URL decode incoming cookies? 
            Use 'true' if you're running iPlanet or Sun ONE webserver
            and 'false' otherwise -->
            <param-name>urldecodeCookies</param-name>
            <!-- "true" or "false" -->
            <param-value>false</param-value>
        </init-param>
        <init-param>
            <!-- Should the status page be available via "/status" PATH_INFO? -->
            <param-name>enableStatusPage</param-name>
            <!-- "true" or "false" -->
            <param-value>false</param-value>
        </init-param>
        <!-- Override the dispatcher URL for debugging purposes
        <init-param>
            <param-name>dispatcherURLOverride</param-name>
            <param-value>http://localhost:9300/p2pd/servlet/dispatch</param-value>
        </init-param>
        -->
        <load-on-startup>1</load-on-startup>
        <security-role-ref>
            <description></description>
            <role-name>security</role-name>
            <role-link>security</role-link>
        </security-role-ref>

    </servlet>
    <servlet-mapping>
        <servlet-name>ServletGateway</servlet-name>
        <url-pattern>/servlet/Gateway/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>ServletGateway</servlet-name>
        <url-pattern>/servlet/Gateway</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>
    <security-constraint>
        <display-name>security</display-name>
        <web-resource-collection>
            <web-resource-name>security</web-resource-name>
            <description></description>
            <url-pattern>/servlet/Gateway/*</url-pattern>
            <http-method>GET</http-method>
            <http-method>POST</http-method>
        </web-resource-collection>
        <auth-constraint>
            <description>security</description>
            <role-name>security</role-name>
        </auth-constraint>
    </security-constraint>
    <security-role>
        <role-name>security</role-name>
    </security-role>

</web-app>
 

其中红色的部分为新添加的。

 

然后使用Cognos Configuration来build应用,生成ear包

 

 

 

 

通过以上步骤就生成了ServletGateway.ear包,然后把它部署到Websphere中。

 

登录到WebSphere Admin console,进入Applications -> Install new Application

安装ServletGateway.ear包。

安装完成后修改security config,如图所示:

 

 

把Special subjects 设置为 “All Authenticated in Applications Realm”

转到Security > Global security 页面

确认“Enable application security”要被选中

 

 

在WebSphere中创建一个library path

转到Application Servers页面,打开部署ServletGateway的server,

进入Process Definition->Enviornment Entries

 

 

新创建一个Entry

Name输入PATH,Value输入<COGNOS_ROOT>/bin

 

然后重新启动WebSphere的服务。

 

打开Cognos Configuration, 进入Local Configuration > Environment, 把"Gateway URI"这一属性修改为 http://<server>:<port>/ServletGateway/servlet/Gateway

注意:<server>要使用如下格式 <hostname>.<domain>

保存所作的修改,重新启动Cognos服务。

 

现在可以测试一下Servlet Gateway

http://<server>:<port>/ServletGateway/servlet/Gateway

 

如果你的应用和Cognos Servlet Gateway都部署在同一个Websphere的profile中,那么SSO的配置就到此完成了。你可以试验一下SSO是否可以工作。

 

如果你的应用和Cognos Servlet Gateway部署在不同Websphere中,那么还需要进行如下配置。

也就是说需要两个Websphere之间的通信能SSO,目前主要有两种技术,一个是Shared secret,另一个是LTPA Token。下面讲解一下如何使用LTPA Token方式。

 

其实配置起来并不复杂,主要的步骤就是从一个Websphere中导出LTPA key,这个key实际上一个文件,然后把这个文件再导入到另一个Websphere,这样两个Websphere共用相同的LTPA key,就可以SSO了,就像把两个Websphere连接了起来,省去了logon.

 

这里要注意的是导入和导出的Websphere的Realm name必须一致,如下图所示:

 

 

 

好了,到此所有的配置都完成了。

  • 大小: 29.6 KB
  • 大小: 12.9 KB
  • 大小: 14.2 KB
  • 大小: 14.3 KB
  • 大小: 17.4 KB
  • 大小: 16.8 KB
  • 大小: 7.7 KB
  • 大小: 8.4 KB
  • 大小: 28.5 KB
分享到:
评论
5 楼 Kevin_stu_eye 2014-06-13  
大侠 请问cognos与WebSphere集群,怎么验证是否成功了?
4 楼 seeallsea 2014-02-22  
[请问你的单点登录服务器是什么?]
WebShpere
cognos端是否需要自己写权限校验代码?(Custom Java Provider)
[不需要,因为用了统一的在LDAP中验证]
3 楼 zhucheng121 2013-08-26  
请问你的单点登录服务器是什么?
cognos端是否需要自己写权限校验代码?(Custom Java Provider)
2 楼 seeallsea 2012-02-27  
Cognos10
TDS6
1 楼 odd2008 2012-02-03  
请问您使用的Cognos和TDS的版本是多少呢?

相关推荐

    cognos and websphere

    本文档旨在提供详细的步骤说明,帮助读者实现IBM Cognos 8 BI与IBM WebSphere Portal之间的单点登录(Single Sign-On, SSO)功能。这一集成不仅能够提高用户的工作效率,还能提升系统的安全性。以下内容将详细介绍实施...

    Microsoft+PowerPoint+-+Cognos与Websphere+portal的集成应用.pdf

    1. **单点登录(SSO)**:实现用户在两个系统之间无缝切换,提升用户体验的同时也加强了系统的安全性。 2. **在Portal中展示Cognos报表**:用户可以直接在WebSphere Portal中查看和操作Cognos BI生成的各种报表,...

    Cognos10安装和Simple配置详细解读

    ### Cognos10安装与Simple配置详解 #### 一、Cognos10简介 IBM Cognos是一套全面的企业...以上就是关于Cognos10安装和Simple配置的详细解读,希望能帮助大家顺利完成安装配置过程。如有任何疑问,欢迎随时提问交流。

    cognos集群和架构.rar_cognos_cognos11集群_cognos架构_cognos集群配置_nativekqt

    在本资料中,我们将深入探讨Cognos的集群配置和架构,这对于理解如何高效、稳定地运行Cognos系统至关重要。 **Cognos集群**: Cognos集群是一种高可用性和负载均衡的解决方案,通过将多个Cognos服务器实例组合在...

    Cognos10 DB2 WAS安装配置(整合与测试).

    Cognos10 DB2 Websphere 7安装,配置,整合与测试,图文并茂。是研习cognos的必备参考文档

    cognos 安装配置,包括配置用户登陆

    ### Cognos 安装与配置详解 #### 一、Cognos 服务器的安装配置 Cognos是一款强大的商业智能工具,适用于多种操作系统环境。本文档将详细介绍如何在Windows环境下进行Cognos 8.3版本的安装及配置过程,并特别强调了...

    Cognos 8 Reporting安装与配置手记

    通过以上详细步骤,我们可以了解到如何在 Windows 2003 操作系统上安装和配置 Cognos 8 BI Reporting,并且了解其基本架构和主要功能。这对于希望利用 Cognos 进行数据分析和报告的企业和个人都非常有帮助。

    Cognos10安装和sample配置

    通过以上步骤,用户不仅可以安装好Cognos 10环境,还能通过Sample配置对Cognos的各种组件和功能有直观的了解。掌握这些基础知识后,可以进一步探索更高级的分析技巧和定制化功能,从而更好地利用Cognos进行数据分析...

    Linux安装配置Cognos11详细手册

    ### Linux环境下Cognos 11的安装与配置详解 #### 一、环境准备与确认 在进行IBM Cognos Analytics 11的安装之前,首先需要确认所使用的操作系统及软件版本符合要求。 - **操作系统**:Red Hat Enterprise Linux ...

    Cognos10 安装配置手册

    Cognos10 安装配置手册详解 Cognos10 安装配置手册是商业智能(Business ...该手册对于 BI 开发者和数据库管理员非常有价值,为他们提供了详细的安装指导和配置步骤,可以帮助他们快速掌握 Cognos10 的安装配置技巧。

    WebSphere Cognos Portal install

    在本文中,我们将深入探讨如何将IBM Cognos集成到IBM WebSphere Portal中,这是一个关键的步骤,使得用户可以通过门户访问Cognos分析和报告功能。以下是对整个过程的详细说明: 1. 部署IBM Cognos Portlets: - ...

    Cognos配置(安装,IIS配置)

    4. **配置服务**:安装完成后,需启动和配置Cognos服务,包括Cognos Connection、Cognos Framework Manager、Cognos Report Studio等。 接下来,我们讨论“2IIS配置”。IIS(Internet Information Services)是...

    Cognos8 安装及配置

    本文将详细介绍Cognos 8的安装和配置过程,重点关注与IIS和Apache服务器的集成,以及如何配置数据源,如SQL Server 2K(SP4)和Oracle 9i。 首先,安装环境需要Windows XP Professional(SP2),同时可以选择使用IIS或...

    Cognos8.4安装配置指南

    《Cognos 8.4 安装与配置详尽指南》 在现代企业数据分析与商业智能(BI)领域,IBM Cognos 8.4 是一款备受推崇的工具,其强大的数据处理能力和灵活的报告功能,使得数据分析更加高效、直观。本文将深入探讨Cognos ...

    Cognos 8.4报表服务器安装配置指南

    完成以上所有步骤后,可以通过运行一些基本的报告和分析功能来测试Cognos 8.4是否正确安装和配置。例如,可以尝试创建一个新的报告、查询数据库中的数据、发布报告到门户等操作,以确保所有的组件都能够正常工作。 ...

    cognos安装配置文档

    本安装配置文档详细介绍了在Windows XP Professional(SP2)系统上安装Cognos 8.3版本的过程,包括与IIS或Apache2.2 web服务器的集成,以及与SQL Server 2K(SP4)和Oracle9i数据源的配置。 一、安装环境 安装Cognos ...

Global site tag (gtag.js) - Google Analytics