Sun Java Enterprise System 2005Q4 技术概述

第 3 章 Java Enterprise System 集成功能

本章介绍一些概念和技术背景,让您了解在将 Java ES 组件集成到某单个软件系统的过程中扮演重要角色的功能。

这些功能会帮助您了解与手动集成的不同基础结构产品相比,使用 Java Enterprise System 的诸多好处。

本章介绍以下功能:

Java Enterprise System 集成的安装程序

所有 Java ES 组件均通过单个安装程序进行安装。此安装程序在所有组件间提供了一致的安装及卸载过程和行为。

Java ES 安装程序是一个集成框架,用于将 Java ES 软件传送到主机系统。该安装程序可让您在计算环境中的任何计算机上选择并安装任意数量的 Java ES 组件。还可以在安装时进行配置,具体取决于安装的特定 Java ES 组件。

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

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

本节就以下方面对所集成的 Java ES 安装程序进行讨论(有关详细信息,参见《Sun Java Enterprise System 2005Q4 安装指南》):

已有的软件检查

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

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

依赖性检查

安装程序会对组件进行大范围的检查,以检验所选安装组件将来是否能一同正常工作。

有许多组件对其他组件具有依赖性。安装程序提供了相应的逻辑来确保满足这些依赖性。为此,在您选择要安装的组件时,安装程序会自动将选定组件所依赖的组件和子组件包括进来。

如果另一选定组件在本地依赖于某个组件,则您不能取消选择该组件。不过,如果不是本地依赖性,虽然会收到警告信息,但可以继续操作,前提是该依赖性将会由另一不同主机上的组件来满足。

初始配置

许多 Java ES 组件必须执行初始配置才可启动。对于某些组件,Java ES 安装程序可以执行这种初始配置。

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

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

卸载

Java Enterprise System 还提供了一个卸载程序。您可以使用此程序删除 Java ES 安装程序在本地计算机上安装的组件。卸载程序会检查本地依赖性,并在发现这种依赖性时发出警告。卸载程序不会删除 Java ES 共享组件。

与安装程序一样,卸载程序可以在图形模式、基于文本的模式或无提示模式下运行。

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

Java Enterprise System 的一项重要功能是其集成的用户身份管理以及集成的验证和授权框架。

以下各节提供了相关的技术背景,用于帮助了解 Java Enterprise System 所提供的集成化身份认证和安全服务:

单一身份

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

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

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

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

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

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

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

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

验证和单点登录

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

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

验证

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),策略代理将令牌作为转发给发出验证请求的浏览器 (7)。

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

因而,用户只需登录一次,便能够通过 Java Enterprise System 所提供的多项基于 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 Enterprise System 上下文中是如何使用的。

directory(目录)

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

policy(策略)

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

single identity(单一身份)

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

single sign-on(单点登录)

一种功能,允许将通过了分布式系统中一项服务的用户验证自动应用于系统中的其他服务。