Sun Java Enterprise System 2005Q4 技术概述

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

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 策略代理是策略的实施者。当策略服务拒绝某一访问请求时,策略代理会阻止该请求用户访问受安全保护的资源。