Sun Java Enterprise System 5 Update 1 技术概述

验证和单点登录

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 的服务。单点登录验证在用户明确注销或会话到期之前一直有效。