Sun Java Enterprise System 2005Q4 技术概述

验证和单点登录

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