首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

IBM Cognos BI 身份验证和单点登录(2)

IBM Cognos BI 身份验证和单点登录(2)

IBM Cognos BI 中的身份验证本章节将全面介绍 IBM Cognos BI 中的身份验证流程所涉及的概念和组件。
服务、请求和会话IBM Cognos BI 是一个构建于面向服务架构 (SOA) 之上的 Web 应用程序。所有功能都由一组独立的多实例 Web        服务提供,这些服务通过网络使用 SOAP 协议与客户彼此通信。一个特殊服务(Presentation Service)代理了基于纯 HTML        的客户端(比如浏览器)发出的请求。
客户端(可能是浏览器,或其他某个开发的或基于 IBM Cognos BI 软件开发工具包 (SDK) 的客户端)使用 HTTP 协议将请求发送给一个有效的 IBM Cognos BI          入口点
通常,这个入口点是一个部署到 Web 服务器的 IBM Cognos BI 网关 (GW),但它也可以是一个应用服务器(比如 IBM WebSphere)托管的 IBM Cognos        BI Dispatcher (DISP) Java servlet 或 Servlet 网关        (SGW)。每个请求都会显式或隐式地要求某个服务处理它,在没有请求任何显式的目标服务时,假设 Presentation Service 是目标服务。因此,发送给 IBM Cognos        BI 入口点的每个请求必须路由到目标实例的一个支持这种特定类型请求的实例。
路由是由一个 Dispatcher 处理的,无论请求是直接发送还是通过网关间接发送给 Dispatcher。每个网关一次仅将收到的请求转发给一个 Dispatcher。
该 Dispatcher 检查每条传入请求中的 sessionID,该信息将指示该请求是一个已建立的 HTTP 会话的一部分。如果没有找到        sessionID,那么它会假设启动了一个新会话并创建一个新 sessionID。接下来将向请求分配一个 requestID,并将 sessionID 和 requestID        都添加到请求中。这样就可以识别一个会话中的请求,确保依据安全最佳实践为每个请求分配了惟一的 requestID。
由于 SOA 中的服务在逻辑上是独立的,所以身份验证是在 HTTP        会话级别上而不是在服务级别上处理的。每个服务在接受和处理一个请求之前都会检查是否存在一个已经过验证的会话,以防止非故意的访问。这可以确保发出请求的客户端被识别并链接到一个身份。
从 IBM Cognos BI version 10 开始,身份验证功能由内部 CAM_AsyncAAService 集中提供,该服务只能通过          Content Manager Service (CMS) 进行间接连接。因此,所有 IBM Cognos BI 服务都将采用 CMS        来验证会话身份验证,或者触发对未验证的服务的身份验证。CMS 被实现为一个 Java servlet,是 IBM Cognos Content Manager (CM)        的服务接口,而后者是能够独占地访问 IBM Cognos BI 的应用程序存储库(称为 Content Store (CS))的中央组件。
Dispatcher 处理请求时,它会首先检查收到的请求所属的当前会话的身份验证状态。如果不存在会话,则会隐式地创建一个新会话        ID,而该请求将会自动成为新会话的第一个请求。如果会话还未验证,Dispatcher 会采用 CAM_AsyncAAService        来运行身份验证流程,并将请求传递给它。CAM_AsyncAAService 服务是处理身份验证和授权 (AA) 的 Cognos          Access Manager (CAM) 子组件的一个服务接口。其他未通过 CAM_AsyncAAService 服务公开的 CAM 组件将处理加密等任务(比如        CAM-CRP)。然后,CAM 的 AA 子组件会采用身份验证提供程序          (AP)(在一个独立的进程中运行)来附加到外部身份验证来源,以便执行会话身份验证流程。此流程的详细信息将在后面的身份验证流程一节中介绍,现在还有其他一些概念需要介绍。
插图 1 给出了请求流图解和涉及的服务和组件。
插图 1:IBM Cognos BI 会话身份验证涉及的组件图解如果身份验证成功,那么会话的身份验证信息将会持久保存在一个内部 Content Manager 对象中,并将此对象的一个 base64 编码的、带签名的引用附加到 HTTP        会话上。
所有服务都可以确认会话的请求的验证状态,方法是调用 CAM_AsyncAAService 并提供对该会话的持有身份验证信息的内部 Content Manager        对象的引用。在发现由于对引用的对象的确认失败而导致会话未通过验证时,将会再次触发身份验证流程。
会话的身份验证在一个可配置的空闲时期过后过期,这个时期可在 IBM Cognos Configuration        中指定。配置的超时意味着,在这段特定的时期内,会话的身份验证对象不会被发送到 CAM_AsyncAAService 的确认请求刷新。在超过期限后,将会删除会话的内部 Content        Manager 对象,让保存到 HTTP 会话的引用失效。
身份验证提供程序和命名空间IBM Cognos BI 身份验证的工作原理是,通过一个称为身份验证提供程序的软件将实际的身份验证工作委托给外部身份验证来源。
每个身份验证提供程序附加到一个特性类型的身份验证来源,比如一个兼容轻型目录访问协议 (LDAP) 的服务或一个 Microsoft Active Directory (AD)        域控制器。利用身份验证来源所提供的        API,身份验证提供程序将会实现必要的功能来处理身份验证流程,然后从附加的身份验证来源读取安全对象。一定要注意的是,身份验证提供程序仅从身份验证来源读取信息,绝不会向它们写入信息。
IBM Cognos BI 知道的安全对象包括用户、组角色。身份验证来源要求至少支持并存储这 3        种类型的安全对象。如果一个身份验证来源使用其他或更多安全对象来表示用户、组或角色,那么身份验证提供程序必须将它们映射到 IBM Cognos BI 已知的 3 种类型之一。
如果一个身份验证提供程序基于提供给它的凭据,成功地向身份验证来源执行了验证,那么此验证结果也满足了 IBM Cognos BI 的要求。
许多身份验证提供程序还将通过使用一些基于 HTTP 会话的令牌来提供对单点登录 (SSO) 的支持,从而允许在非 IBM Cognos 安全层与 IBM Cognos BI        之间实现无缝的身份验证。
因为身份验证提供程序依赖于身份验证来源的 API 来实现附加到它的功能并处理身份验证,所以在对身份验证提供程序的支持方面,可能存在与平台相关的限制。不是所有身份验证来源都可用于        IBM Cognos BI 支持的所有平台,因此这些平台上也不一定支持它们的 API。请参阅相关 IBM Cognos BI 产品版本的 “支持的软件环境”          页面中的身份验证提供程序一节 ()。
除了下一节将介绍的一种特殊类型的提供程序,每个身份验证提供程序都由 IBM Cognos Configuration        中创建的一个命名空间配置实例来配置。在命名空间配置中,可以配置特定于该提供程序实例的属性。最重要的一个属性是          NamespaceID,该字符串在内部惟一地表示该身份验证提供程序实例。启动 IBM Cognos BI CAM        组件时,会在配置中扫描命名空间配置,并根据指定的设置来初始化各个提供程序。完成初始化之后,除了之前提到的一个特殊类型之外,所有身份验证提供程序实例都将通过一个 IBM Cognos        BI Namespace 公开从外部身份验证来源读取的对象。命名空间是映射到与 IBM Cognos BI        相关的安全对象的外部身份验证来源的数据的表示。对于一个 IBM Cognos BI 系统,可以同时配置多个命名空间,允许在异构身份验证来源中管理的用户访问 IBM Cognos        BI,甚至可能允许在单个会话中向多个身份验证来源执行验证。
对于每个 IBM Cognos BI 系统,一个称为 Cognos Namespace        的特殊的内置命名空间只有一个实例,该实例自动被初始化,没有命名空间配置对象。它没有附加到一个实际的身份验证来源,也不包含任何用户对象,它只包含组和角色对象。Cognos        Namespace 用于为具有附加到外部身份验证来源的命名空间的安全对象和应用程序定义的授权对象提供一个逻辑映射层。出于此用途,可以在 Cognos Namespace        中创建组和角色,并从其他所有配置的命名空间分配成员。
IBM Cognos BI 的安全最佳实践仅基于来自 Cognos Namespace        的组和角色上的对象安全(身份验证)。这提供了灵活性和可移植性,因为所有授权都只能从身份验证来源间接链接到外部对象。
从 IBM Cognos BI version 8 开始,所有现成的身份验证提供程序都支持 Test 功能,您可以右键单击 IBM Cognos        Configuration        的资源管理器树中的命名空间配置元素来获得该功能。这将使用配置的设置来初始化提供程序,但它可能无法用到提供程序支持的所有功能。它只会捕获明显的配置错误和连接问题。
IBM Cognos BI 开箱即用地提提供了针对以下实体的身份验证提供程序:
  • 兼容 LDAP v3 的服务器
  • Microsoft Active Directory
  • IBM Cognos Series 7
  • Microsoft NT LAN Manager (NTLM)(自 IBM Cognos BI version 10 开始已禁用)
  • SAP
  • CA Siteminder
  • IBM System Z Resource Control Facility (RACF)
之前已经提到过,不是所有平台上的所有提供程序都受 IBM Cognos BI 支持。
返回列表