本文中介绍的建议和实践不限于某个具体的平台或部署架构。文中的示例均基于 Windows 版本,但是,除非特别说明,所有描述都适用于封面上列出的产品(包括 Fix Pack (FP) 和 Refresh Pack (RP) 发行版)。
尽管设计时尽可能适用于大多数安装,但某些描述可能不适用某些特定的环境。还要额外考虑一些内容,以确保本文给出的建议满足您的部署需求,并且符合您所在环境的安全策略。
IBM Cognos 10 产品提供了灵活多样的安全特性,可实现大多数(并非全部)安全环境下的集成。目前所成临的挑战是从对于测试和/或开发环境已经足够使用的稳定基础配置,转向完全的安全实现和集成。IBM Cognos 10 以开箱即用的方式提供了所需的一切内容。
以下章节将根据用来进行配置的工具分别讲解一些指南和建议。我们将讨论身份验证和授权主题,并提供一些可以遵循的最佳实践。
在开始之前,首先要清晰地定义需求,以下有一组需要在开始实施之前回答的有关 IBM Cognos 10 BI 的问题。
正在使用的是什么身份验证源?最常用的身份验证源是 LDAP 和 Active Directory,此外还有一些其他的身份验证源。请确保您能联系到相关资源以帮助您了解身份验证源的内容和结构,以及所需的技术信息,如服务器、端口和所需的凭证。遵循下列的最佳实践建议可能还需要另外一些具体信息。 您正在使用的是单个安全名称空间还是多个安全名称空间?根据需求的不同,可能会面临登录后将一个用户 “自动” 验证到多个名称空间的挑战。IBM Cognos 10 BI 不支持这样做,但可以使用 .NET 或 JavaScript 脚本技术来解决此问题。 用户是否会进行显式身份验证到 IBM Cognos BI,或是否要有基于其他安全层身份验证的某种 Single Sign-On (SSO)?如果需要从其他源到 IBM Cognos 10 的 SSO,则务必评估此特性是否
最好具有或必须具有的特性。如果需要,那么在定义身份验证之前,先从技术上解决 SSO 的问题,因为 SSO 可能会对所需的名称空间或其配置有影响。尤其是 SSO 会影响调度,因为很多 SSO 凭证可能不适合用调度存储,因为它们可能会过期。这会导致提示用户输入用户名和密码,而用户并不知道这些,因为这是用于 SSO 的。 是否要使用验证到 IBM Cognos BI 10 的相同凭证来验证到查询数据库(用户直通)?这会是相当复杂且具有挑战性的设置,并且不是在所有的身份验证源和数据库组合下受支持的。看看使用已存储的数据库登录的替代方法是否可行,并注意这可能会影响身份验证,因为登录的记录必须在 IBM Cognos 10 BI 中妥善保存并保证安全。 需要什么等级的安全?该系统能从外部访问或只能从内部访问?如果系统能从外部访问,那么在托管 IBM Cognos 10 BI Gateway 的 Web 服务器上实现 Secure Socket Layer (SSL) 是我们推荐的最佳实践。一般来说,贵公司的安全策略会需要这么做以及其他一些额外的安全措施。这会对 IBM Cognos 10 BI 中的 SSL 配置造成影响。 这些数据对于内部/外部用户有多敏感?根据安全需求,您可能会想要更
深入地查看加密临时文件和加密整个网络流量(甚至内部网络)。这也会对 IBM Cognos 10 BI 中的配置造成影响。 IBM Cognos 10 BI 会与其他 IBM 产品,如 Lotus Connections、IBM Cognos TM1 或 IBM Cognos Planning 集成吗?如果事先不仔细规划,集成可能会改变安全性。在执行任何安实施之前,先与 IBM Cognos 代表讨论集成场景。
那只是一些示例,但所展示的是安全性的很多方面都与 IBM Cognos 10 BI 相关。有很多安全性方面的问题需要考虑,但好消息是这些都可以在 IBM Cognos 10 BI 中进行处理。本文列出的最佳实践建议,具有普遍适用性。
IBM Cognos 配置
本节将会讨论与安全有关的设置与配置,这些均可在 IBM Cognos Configuration 中进行指定。通常是在安装后立即实施,而且这些都是之后将会介绍的后续任务的基础。
安全安装
服务帐户
第一个影响安全的决定可能已经做出。很可能已经使用一个特别的帐户将 IBM Cognos 10 安装到您的平台上,该帐户可能有足够的文件系统权限来运行应用程序。但有可能环境中的策略要求使用特定的帐户运行应用程序。我们将此帐户称为服务帐户。
IBM Cognos 10 BI 其实就是一个 Java Web 应用程序,它部署在 Java 应用服务器,如 IBM WebSphere 之上。尽管 IBM Cognos 10 是开箱即用的,但是它是预先部署到 Apache Tomcat 上,它不是一个完整的 Java 应用服务器,而是一个子集。虽然是这样解释,但我们就将 Apache Tomcat 简称为应用服务器。
如果以开箱即用的方式在 Apache Tomcat 上使用 IBM Cognos 10 ,那么会有一个名为 cognosbootstrapservice.exe 的服务,它会启动 Apache Tomcat 并且可以在 IBM Cognos 10 BI Cognos Configuration 中进行配置。在 Windows 平台下,该服务注册为一个 Windows Service,默认由 Local System 帐户运行。在 UNIX/LINUX 平台下,此服务由该帐户调用 cogconfig.sh 启动脚本来运行。因此服务帐户就是运行应用服务器的帐户。
如果 IBM Cognos 10 BI 部署到不同的应用服务器下,那么该服务器会确定用来运行 IBM Cognos 10 BI 的帐户,因此该帐户就是服务帐户。
选择合适的服务帐户很重要,这是因为:
该帐户会实例化托管 IBM Cognos 10 的 Java 运行时环境 (Java Runtime Environment, JRE) 和其他所有由 IBM Cognos 10 产生的进程,如 BiBusTKServerMain、CAM_LPSvr、BmtMDProviderMain 等。所有的 IBM Cognos 10 进程,无论是 Java 还是本机进程,均需要对 IBM Cognos 10 安装目录及子目录有不同级别的文件系统权限。 此帐户用于打印机访问。 如果在 Windows 平台下运行,该帐户将用于 SSO 与 IBM Cognos 10 之间的 Microsoft Kerberos 交互,也可能用于 Microsoft 数据库验证,如 SQL Server 或 Analysis Services。 将使用该帐户来创建临时文件和暂存文件。 当 IBM Cognos 10 被配置为将 Auditing 输出导入操作系统日志设备时,使用该帐户来与操作系统日志设备进行交互。
最佳实践是使用一个专门命名帐户,专门分配给 IBM Cognos 10 以执行安装(提供文件系统所有权)和 IBM Cognos 10 运行。安装帐户和服务帐户可以为不同帐户,但必须额外注意文件系统的权限。
在 Windows 平台下,使用的是已命名的域帐户户作为服务帐户,而不是 Local System 或 Network Service,该帐户必须在本机上进行身份验证,并且应该具有足够的文件系统权限,以及必须在 User Account Control 中进行适当的配置。根据对复杂特性的使用,如 Kerberos SSO、用户直通到 Microsoft 数据库以及登录到操作系统用户,可能还需要额外的 Windows 权限。
在 Linux/UNIX 平台下,服务帐户应该与安装帐户共享一个主组,以简化文件系统访问的问题。应该赋予服务帐户及其主组对安装目录及子目录具有完全权限,而对于 “其他” 的文件系统权限应该撤销。我们建议应该将安装目录及子目录的所有权只赋予安装所有者及共享的主组。