IBM Cognos 最佳实践: 在 Windows Server 2008 上的 IBM Cognos Express 中实现 Kerberos SSO

文档性质:指南;产品:IBM Cognos Express;领域:基础架构

本文描述并演示使用 Windows Server 2008 上的 Microsoft IIS 7 Web 服务器,通过 Active Directory 在 IBM Cognos Express 中实现 Integrated Sign On(或 Single Sign On)所需的基本步骤。

免费下载:IBM® Cognos® Express V9.5 或者 Cognos® 8 Business Intelligence Developer Edition V8.4 试用版
下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。

简介

目的

本文描述并演示使用 Windows Server 2008 上的 Microsoft IIS 7 Web 服务器,通过 Active Directory 在 IBM Cognos Express 中实现 Integrated Sign On(或 Single Sign On)所需的基本步骤。

适用性

本文适用 IBM Cognos Express 9.5 发布版。本文所有 IBM Cognos Express 引用都是指这个版本。

本指南假定所有 IBM Cognos Express Services 和 IIS Application 池都作为 Local System 运行(默认)


什么是 Kerberos?

鉴于本文的目的,只需理解 Kerberos 是一个网络身份验证协议,允许用户/计算机以一种安全静默的方式相互证明身份。

要了解更多 Kerberos 信息,请参见以下链接:

  1. 活动目录故事
  2. 理解代理
  3. 诊断 Kerberos 错误
  4. 诊断 Kerberos 代理

设置 Express Gateway

安装 Express Gateway

  1. 找到 IBM Cognos Express 安装文件所在目录中的 Gateway\ 文件夹。找到包含网关实例的存档文件:CognosExpressGateway.zip。
  2. 将该存档文件复制到指定 Web 服务器(本地 Cognos Express Server 或独立 Web Server 计算机)。
  3. 将 CognosExpressGateway.zip 文件解压缩到一个文件夹。鉴于本文的目的,我们将这个归档文件解压到 C 盘。解压后,将创建一个 Cognos Express Gateway 文件夹,其中包含必要的 bin\ 和 cgi-bin\ 子文件夹。
  4. 在解压 CognosExpressGateway.zip 的位置,导航到 bin 目录并定位文件 cogconfig.bat,然后运行文件。
  5. 在本例中,这个位置是 C:\Cognos Express Gateway\bin\cogconfig.bat。运行文件将启动 IBM Cognos Configuration。
  6. 在 IBM Cognos Configuration 中的 Explorer 窗口中,单击 Environment 区域。
  7. 在右边的窗格中的 Environment - Group Properties 区域中,找到 Dispatcher URIs for gateway 属性,编辑该值,以包含 IBM Cognos Express 服务器名和端口号,比如 http://express_server_name:express_port/p2pd/servlet/dispatch/ext
    配置调度程序端点
  8. 保存配置并退出 IBM Cognos Configuration。注意,要成功保存,IBM Cognos Express 服务必须正在运行
  9. 在安装 IBM Cognos Express 的服务器上,找到文件 express_installation_location/templates/ps/system.xml
    编辑文件并更改下面这行:
    	<param name ="welcomeURLOverride">
    	/cognos_express/manager/welcome.html
    	</param>

    添加关于 IBM Cognos Express 的安装位置的 URL 信息:
    	<param name ="welcomeURLOverride">
    	http://express_server_name:express_port/cognos_express/manager/welcome.html
    	</param>
  10. 保存文件并重新启动 IBM Cognos Express 服务。

配置 IIS7 虚拟目录

  1. 右键单击 IIS Manager 中的 Application Pools,新建一个应用程序池供 IBM Cognos Express 驻留。
    添加一个应用程序池
  2. 命名应用程序池并使用前面的屏幕快照*****中显示的默认值*****配置这个新应用程序池。
    应用程序池属性
  3. 右键单击前面创建的应用程序池并选择 Advanced Settings。在对话框中,将 Enable 32-bit applications 属性设置为 True
    图 4
  4. 在 Web 服务器中新建以下两个虚拟目录:
    IBMCognosExpress/ 这个别名应该指向 express_gateway_location/Cognos Express Gateway/webcontent 文件夹。在本例中,这个别名将引用 C:\Cognos Express Gateway\webcontent\。
    cognos_express/ 这个别名应该指向 express_gateway_location/Cognos Express Gateway/cognos_express 文件夹。在本例中,这个别名将引用 C:\Cognos Express Gateway\cognos_express。
  5. 在 IBMCognosExpress 虚拟目录中创建以下新应用程序。
    IBMCognosExpress/cgi-bin/ 这个别名应该在 IBMCognosExpress 虚拟目录下创建并引用 express_gateway_location/Cognos Express Gateway/cgi-bin 文件夹。在本例中,这个别名将应用 C:\Cognos Express Gateway\cgi-bin。
    为此,右键单击 IBMCognosExpress 虚拟目录并选择 Add Application
    添加应用程序
    在这个对话框中,按照步骤 5 配置别名和物理路径。选择步骤 2 中在 Application Pool 输入字段中创建的应用程序池。
    应用程序池设置

配置并启用网关模块

创建所有虚拟目录和应用程序后,您的 IIS Manager 树看起来应该类似于:

示例配置
  1. 选择上述 cgi-bin 应用程序,在特性视图的右边选择 Handler Mappings。
  2. 在处理程序映射屏幕中,单击 add Module Mapping 并配置想要的网关模块:
    对于 CGI
    CGI 模块映射对于 ISAPI
    ISAPI-dll 模块映射应该已经存在,但默认禁用了。要启用它,选择该映射,单击右边的 edit Feature Permissions,选中执行选项。
    ISAPI 模块映射
  3. 现在单击 IIS Manager 中的 Webserver 主页,选择特性视图中的 ISAPI and CGI Restrictions,您可以在其中 “添加” 一个允许的应用程序。
    对于 CGI(选择路径中的 cognos.cgi)
    CGI 限制对于 ISAPI(选择路径中的 cognosisapi.dll)
    ISAPI 限制
  4. 现在,应该可以使用以下 URIs 访问网关:
    对于 CGI:http://gateway_host/IBMCognosExpress/cgi
    对于 ISAPI:http://gateway_host/IBMCognosExpress/isapi

保护虚拟目录

现在我们已经建立了一些模块并能访问网关,但仍然被提示需要进行 IBM Cognos Express 身份验证。要解决这个问题,需要按如下方法强制终端用户进行 IIS 身份验证:

  1. 选择 IBMCognosExpress 虚拟目录,打开 Authentication 特性。
    Authentication
  2. 在 Authentication 特性中,确保匿名访问已禁用Windows Authentication 已启用
  3. 选择 Windows Authentication 并单击 Providers。确保协商提供者列示在最顶端,如下所示:
    提供者

启用活动目录名称空间

现在已针对 Windows 集成登录建立和配置了 Web 服务器,必须确保 Cognos Express 实例能利用这个新启用的特性。为此,执行以下步骤,集成 IBM Cognos Express 和现有活动目录基础架构:

  1. 打开 Express Manager,单击 Manager 区域中的 Configure 按钮。这应该会显示一个弹出窗口。
  2. 在弹出窗口中,选中 Enable Active Directory authentication 复选框,填充 Active Directory Controller 的名称空间、主机和端口号。
  3. 根据您的活动目录基础架构的实现方式,您可能需要更改 inclusion 按钮。要了解这些属性的含义,请参阅产品附带的 Installation and Configuration guide 中的 “Include or Exclude domains” 部分。
  4. 完成后单击 OK,等待 IBM Cognos Express 服务回收并应用这些设置。

此时(如果全部使用默认设置),Kerberos SSO 应该可以正常工作了。要验证这一点,可以作为域用户登录一个工作站,浏览第 3 节最后提到的 URI。如果您已经将这个网站添加到 IE 的 Local Intranet Security Zone,那么选择这个活动目录名称空间时,应该不会被提示提供凭据(例如 “用户名/密码)。

如果此时 SSO 还不能正常工作,请继续验证下一节提到的所有 Kerberos 先决条件。


Kerberos SSO 先决条件

Kerberos SSO/Delegation 要正常工作,以下额外项目必须设置。这些项目包括终端用户帐户的用户帐户属性、IIS 应用程序池帐户等。这两个帐户统称为 “服务帐户”。

Technote 1341889 (Scenario 1) 中包含关于 Kerberos 先决条件的更多详细信息。

终端用户帐户

当您的 Active Directory Domain Controller 打开时,Users 和 Computers MMC 将为相应的终端用户帐户启动 Account properties 对话框。

Account 是敏感属性

确保这个 Account 未选中Account is sensitive and cannot be delegated 属性。如果选中该属性,将禁止这个帐户的代理,这样就不能实现 Kerberos SSO。

有时,可能需要选中 “Account is trusted for Delegation” 复选框。例如,Framework Manager 需要启用这个设置,以实现数据源无缝登录。

服务帐户

当您的 Active Directory Controller 打开时,Users 和 Computers MMC 将针对 Cognos Express 计算机帐户和 Cognos Express Gateway 计算机帐户启动 Computer properties 对话框。正如 1.2 节 “适用性” 中所指出的那样,本指南假定服务作为 Local System 运行。如果服务帐户已被更改为域用户帐户,请根据上面的 “终端用户帐户” 小节中的说明启用/禁用相同的属性(包括 “Account is trusted for delegation” 属性),为这样的域服务帐户启用代理。

Trust Computer for Delegation 属性

确保计算及账户启用了 “Trust Computer for delegation” 属性。否则,该计算机就不能代理身份验证请求,因此 Kerberos SSO 也就无法实现。

浏览器设置

访问 IBM Cognos Express Gateway 之前,还必须验证这个网站在所有终端用户工作站上已添加到 IE 的 Local Intranet Security Zone。否则,可能会导致出现一个 Windows Logon 提示。默认情况下,Internet Explorer 只向这个区域中的网站发送凭据。您可以配置一个 Custom Level,基于每个 Zone 修改这种默认行为(但不建议这样做),操作方法是单击 Internet Options 的 Security 选项卡上的 Custom Level 按钮。

Internet Explorer Internet Zone 设置

在一个 Zone 中启用 “Automatic logon with current username and password” 属性后,IE 就会将您的网络凭据发送给该区域中需要身份验证的任何网站。

但是,推荐的方法是将 IBM Cognos Express Gateway 添加到 Local Intranet 区域。

另一个经常出现的问题是 URI 不一致性。总是确保使用相同的主机名格式配置 IBM Cognos Express Server 和网关。例如,如果网关配置中使用了主机名,那么 Express 服务器配置一定要使用相同的主机名。

注意:使用 Firefox 时,网络提示将总是显示,这是因为无缝登录是 Internet Explorer 独有的功能。


将网关绑定到名称空间

支持额外的活动目录名称空间的一个副作用是:终端用户现在将被提示,要求选择一个名称空间来登录,如下所示:

名称空间提示

注意,这并不意味着 SSO 无效,而是内容管理器需要更多信息,以便对请求进行身份验证。如果想消除可能给终端用户带来的困惑,可以指示网关为您选择名称空间。

  1. 在解压 CognosExpressGateway.zip 的位置,导航到 bin 目录并定位文件 cogconfig.bat,运行该文件。
    例如,这个位置是 C:\Cognos Express Gateway\bin\cogconfig.bat。
  2. 在 IBM Cognos Configuration 的 Explorer 中,单击 Environment 区域。
  3. 定位 Gateway Namespace 属性,使用 Active Directory Namespace (CognosExpressActiveDirectoryID) 的 Namespace ID 填充这个值,如下所示。
    网关名称空间指定
  4. 保存配置,退出工具。

何时测试 Single Sign On

使用 CGI 访问这个门户时出现 HTTP 500 错误

当您尝试从一个到 Cognos Express Server 的 Windows Remote Desktop 会话中访问 Cognos Express Gateway 时,可能会出现这个 Web 服务器错误。

这种行为与 IBM Cognos Express 没有太多关系,主要涉及 Microsoft Windows、CGI 和 Remote Desktop 的工作方式。

这种行为的解决办法是使用 /console 参数启动 Remote Desktop:mstsc.exe /console

使用 ISAPI 访问这个门户时出现 HTTP 500 错误

当您试图访问一台 64 位机器上运行的 Cognos Express Gateway ISAPI 模块时,就可能会出现这个错误。

这个问题的根源在于针对 IBM Cognos Express Gateway 配置的 IIS 应用程序池。请参阅 3.2 节步骤 3 了解关于如何在一个 64 位 IIS 实例上使用 ISAPI。

Cognos Express 的 Single Sign On 在 Firefox 中无法工作

启用 Integrated Authentication 后,IIS 在向用户发送任何内容之前需要验证用户身份。为此,它要求终端用户提供凭据。

如果配置正确,Internet Explorer 能自动响应这种 Authentication Challenge,但 Firefox 则不行。结果是,使用 Firefox 访问这个网关时,Network Logon 将一直显示。

然而,这并不意味着 IBM Cognos Express 的 Single Sign On 在 Firefox 中无效。如前所述,要求身份验证的是 Web 服务器而不是 Cognos Express。只要您响应身份验证请求(例如提供凭据),您仍然应该能自动登录 IBM Cognos Express。

参考资料

学习

获得产品和技术

讨论

  • 参与 developerWorks 博客 并加入 developerWorks 中文社区,developerWorks 社区是一个面向全球 IT 专业人员,可以提供博客、书签、wiki、群组、联系、共享和协作等社区功能的专业社交网络社区。

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=650534
ArticleTitle=IBM Cognos 最佳实践: 在 Windows Server 2008 上的 IBM Cognos Express 中实现 Kerberos SSO
publish-date=04252011