Sun Java Enterprise System 5 Update 1 技术概述

第 3 章 Java ES 集成功能

本章提供了概念和技术背景,目的是让您了解在将 Java ES 组件集成到单个软件系统中时起着关键作用的功能。这些功能有助于您了解与手动集成分散的基础结构产品相比,使用 Java ES 都有哪些好处。

本章包括以下各节:

Java ES 集成式安装程序

所有 Java ES 组件均通过单个安装程序进行安装。Java ES 安装程序会将 Java ES 软件传送到主机系统。该安装程序允许您在计算环境中的某一主机上选择并安装任意数量的 Java ES 组件。利用该安装程序,还可以在安装时进行某些配置,具体取决于所安装的特定 Java ES 组件。

就其本身来说,Java ES 安装程序不能执行分布式安装。要部署分布式 Java ES 软件解决方案,可使用 Java ES 安装程序在所处环境中的每台计算机上安装适当的组件,每次一台计算机。您必须根据部署体系结构和组件依赖性,采用合理的安装会话顺序和配置步骤。

该安装程序不但可在图形模式和基于文本的模式下交互运行,而且还提供了参数驱动的无提示安装模式。除了英文之外,安装程序还支持以下语言:法文、德文、日文、韩文、西班牙文、简体中文和繁体中文。

本节从多个方面对集成式 Java ES 安装程序进行了讨论。有关更详细的信息,参见《Sun Java Enterprise System 5 Update 1 Installation Guide for UNIX》

已有的软件检查

安装程序会检查正在进行安装的主机,验明已安装的 Java ES 组件。随后,安装程序会进行若干级别的检查,以确保现有的所有组件均处于适当的发行版本级别,可以成功地进行交互操作。它会告知您哪些软件组件不兼容,必须升级或删除。

同样,安装程序还会检查是否有已安装的 Java ES 共享组件(如 J2SE 或 NSS),并列出所有不兼容问题(参见共享组件)。如果继续安装,安装程序会自动将这些共享组件升级至较新版本。

依赖性检查

安装程序会对组件进行大范围的检查,以检验所选安装组件将来是否能一同正常工作。有许多组件对其他组件具有依赖性。因此,在您选择要安装的组件时,安装程序会自动将选定组件所依赖的组件和子组件包括进来。如果另一选定组件在本地依赖于某个组件,则不能取消选择该组件。不过,如果不是本地依赖性,虽然会收到警告信息,但可以继续操作,前提是该依赖性将会由另一不同主机上的组件来满足。

初始配置

许多 Java ES 组件都需要先进行初始配置才能启动。对于某些组件,Java ES 安装程序就用于执行这种初始配置。

可以选择让安装程序执行此初始配置(“现在配置”选项),也可安装软件而不执行初始配置(“以后再配置”选项),对于后一种情况,必须在安装完成后明确配置每个安装的组件。

如果选择让安装程序执行初始配置,需要在安装期间提供必要的配置信息。特别是,您可以指定一组对于所有组件产品共同的参数值,如管理员 ID 和密码。

卸载

Java ES 还提供了一个卸载程序,用以移除 Java ES 安装程序在本地计算机上所安装的组件。卸载程序会检查是否存在本地依赖性,并在发现依赖性时发出警告。卸载程序不会移除 Java ES 共享组件。如同安装程序一样,卸载程序也可以在图形模式、基于文本的模式或无提示模式下运行。

系统监视服务

Java ES 中包括一个监视功能,用于对系统服务进行实时监视。监视功能是由 Sun Java System Monitoring Framework(shared component(共享组件))和 Sun Java System Monitoring Console(product component(产品组件))实现的。Monitoring Framework 是自动配置并启用的,用以为每个已安装的 Java ES 组件收集数据,而 Monitoring Console 则是用于查看受监视数据的图形界面。Monitoring Console 是一个可在 Java ES 安装期间选择的组件,而 Monitoring Framework 则是自动安装的。

监视过程包括收集运行时数据、公开该数据以及计算服务质量条件,这样,系统管理员便可以评估性能并收到报警。在运行时操作期间,管理员可通过与 Monitoring Console 进行交互来查看性能统计信息、设置要动态监视的阈值、自定义监视作业以及确认报警。

集成式身份认证和安全服务

Java ES 的一项重要功能就是其集成式用户身份管理及其集成式验证和授权框架。本节提供了相关的技术背景,目的是让您了解 Java ES 所提供的集成式身份认证和安全服务:

单一身份

在 Java ES 环境中,每个最终用户都有单一的集成式身份。基于此 single identity(单一身份),用户便可以访问各种资源,如 portal、Web 页以及诸如消息传送、日历和即时消息传送等服务。

这种集成式身份认证和安全能力建立在 Directory Server、Access Manager 与其他 Java ES 组件之间密切协作的基础之上。

用户对 Java ES 服务或资源的访问是通过在用户系统信息库或 directory(目录)的单个用户条目中存储用户特定信息来实现的。此信息通常包括唯一的名称和密码以及电子邮件地址、组织中的角色、Web 页首选项等数据。用户条目中的信息可用于验证用户、授予其对特定资源的访问权或向该用户提供各种服务。

就 Java ES 而言,用户条目存储在 Directory Server 所提供的某个目录中。当用户想要请求 Java ES 组件所提供的服务时,该服务会使用 Access Manager 对该用户进行验证并授予其对特定资源的访问权。请求的服务会在用户的目录条目中检查用户特定的配置信息。服务使用该信息执行用户请求的工作。

下图显示如何访问用户条目以执行用户验证和授权以及提供服务给用户。

图 3–1 单个用户条目支持多项服务

此示意图显示了若干 Java ES 组件可以与目录中的单个用户条目进行交互。

源自本系统的其中一项功能是:基于 Web 的用户只要登录到任一 Java ES 服务,就能自动通过其他系统服务的验证。此功能称为 single sign-on(单点登录),它是 Java ES 所提供的一项强大功能。

验证和单点登录

Access Manager 提供了 Java ES 验证和授权服务。Access Manager 使用 Directory Server 中的信息使用户与企业中的 Java ES Web 服务或其他基于 Web 的服务进行交互。

Access Manager 使用了一个称为策略代理的外部组件。策略代理插在当前由 Access Manager 提供安全保护的服务或资源的宿主 Web 服务器中。策略代理代表 Access Manager 在用户对受保护资源提出的请求中起调解作用。对于某些 Java ES 组件(如 Portal Server),策略代理的功能由 Access Manager SDK 子组件提供。

验证

Access Manager 包括一项验证服务,用于核实请求以 HTTP 或 HTTPS 方式访问企业内部 Web 服务的用户的身份。例如,如果某位公司员工需要查找同事的电话号码,他可以使用浏览器访问公司的联机电话簿。要登录到电话簿服务,该用户必须提供用户 ID 和密码。

图 3–2 显示了验证顺序。策略代理对电话簿的登录请求进行调解 (1),并将请求发送给验证服务 (2)。验证服务根据存储在 Directory Server 中的信息检查用户 ID 和密码 (3)。如果登录请求有效,则对用户进行验证 (4)、(5) 和 (6),并将公司电话簿显示给该员工 (7)。如果登录请求无效,则会生成一条错误,同时验证失败。

验证服务通过 HTTPS 还支持基于证书的身份验证。

图 3–2 验证顺序

涉及 Web 浏览器、策略代理、验证服务、会话服务和 Directory Server 的验证顺序示意图。

单点登录

前几个段落论述的验证方案掩盖了一个重要的步骤。在检验用户的验证请求时,要使用 Access Manager 的会话服务 (4),如图 3–2 中所示。该会话服务会生成一个会话令牌,其中包含用户的身份信息和令牌 ID (5)。该会话令牌将被回送给策略代理 (6),策略代理会将该令牌(以 cookie 形式)转发给发出验证请求的浏览器 (7)。

当经过验证的用户试图访问其他受安全保护的服务时,浏览器会将会话令牌传递给相应的策略代理。该策略代理会向会话服务核实用户先前进行的验证是否依然有效,如果有效,将准许用户访问第二项服务,而不会要求重新输入用户 ID 和密码。

于是,用户只需登录一次,即可得到验证以访问 Java ES 所提供的多项基于 Web 的服务。单点登录验证在用户明确注销或会话到期之前一直有效。

授权

Access Manager 还包括一项策略服务,该服务提供了对 Java ES 环境中基于 Web 的资源的访问控制。policy(策略)是用于描述授权何人在特定条件下访问特定资源的规则。下图显示了授权顺序。

图 3–3 授权顺序

示意图显示了文中所述的授权顺序,其中涉及 Web 浏览器、策略代理、策略服务和 Directory Server。

当经过验证的用户对任何使用 Access Manager 进行安全保护的资源提出请求时 (1),策略代理会通知策略服务 (2),后者使用 Directory Server 中的信息 (3) 对支配该资源的访问策略进行评估,以查明该用户是否有权访问该资源 (4)。如果该用户具有访问权限 (5),则会履行资源请求 (6)。

Access Manager 为在企业内部定义、修改、准许、撤销和删除策略提供了相应的手段。策略存储在 Directory Server 中,通过组织条目中与策略相关的属性进行配置。还可以为用户定义角色并将其合并到策略定义中。

Access Manager 策略代理是策略的实施者。当策略服务拒绝某一访问请求时,策略代理会拒绝该请求用户访问受安全保护的资源。

本章的主要术语

本节介绍本章使用的主要技术术语,重点阐述这些术语如何在 Java ES 上下文中使用。

directory(目录)

一种经过优化的特殊数据库,优化目的是读取数据而不是写入数据。大多数目录都基于行业标准协议 LDAP(Lightweight Directory Access Protocol,轻量目录访问协议)。

policy(策略)

用于描述授权何人在特定条件下访问特定资源的规则。可以基于组织中的用户组或角色来建立规则。

single identity(单一身份)

用户凭借 Java ES 目录中的单个用户条目所具有的身份。基于此单个用户条目,用户可以获准访问各种 Java ES 资源,如 portal、Web 页以及诸如消息传送、日历和即时消息传送等服务。

single sign-on(单点登录)

一种功能,籍此可将用户对分布式系统中一项服务的验证自动应用于该系统中的其他服务。