单点登陆(Single Sign-On)标准的范围(在这里称做 XSSO),定义如下支持的服务:
为企业的应用开发提供通用的、单一的终端用户登陆接口,并且并行管理多用户帐号基础信息的应用开发是由企业来维护的。
功能目标
用户登陆接口
为实现用户登陆接口,XSSO 应该支持下列功能目标:
接口应该与验证信息的处理类型无关。
提供更改受控用户验证信息的功能。这意味着在最初更改用户密码会受到限制,当然不排除将来对其提供这种功能。
提供为调用者建立默认用户属性的支持。目前还不用从一组可用的用户属性选项来选择这些用户属性,当然不排除今后提供这种功能。
当会话终止、注销时提供默认的清除服务。
提供一种能让调用者通过从除该 XSSO 实现以外的应用通知 XSSO 实现改变受控用户验证信息的服务。
XSSO 不能预先确定第二次登陆操作的时间。
注意:做为主登陆操作,意味着 XSSO 将不需要所有登陆操作同时执行。这将导致用户会话在所有可能的服务中被创建,即便某些服务用户并没有实际的使用。
用户帐号管理接口
为了实现用户帐号管理接口,XSSO 应该支持下列功能目标:
提供创建、删除、修改用户帐号的功能。
提供为单个用户帐号设置属性的功能。
非功能性目标
XSSO 的非功能性目标包括:
XSSO 应该与验证技术无关。接口不能指定使用特定的验证技术,不排除使用任何可能的验证技术。
注意:有些验证技术,比如按照挑战响应机制,用户持有的设备构成将不会在第二次登陆动作时适用。
XSSO 应该与平台或操作系统无关。不排除 XSSO 会集成进常规桌面或常用服务器系统,甚至大型机。当然,也可以修改一下 XSSO 再把它集成进那些桌面或服务器系统。
安全目标
XSSO 实现的安全目标如下:
被部署之后,XSSO 不应反过来影响所依赖的系统。
XSSO 不应有反过来冲击任何独立系统服务的可用性。
XSSO 不应为当事人提供访问用户帐号信息的途径,因为他们不允许访问处于受控安全域之内的那些信息。
一个 XSSO 实现要审核发生在 XSSO 上下文之内的所有安全相关活动。
一个 XSSO 实现要保护由 XSSO 实现提供或产生的所有安全相关信息,以便其他服务充分信任这些安全信息的完整性和原始性,以便第二次登陆操作。
当在各个组件内部以及组件与其他服务交互时,XSSO 应提供安全相关信息保护。
范围之外
在当前的 XSSO 范围中,以下这些方面不被考虑:
提供跨越企业级系统边界的单点登陆。
非用户配置验证信息的改变,例如磁性徽章、智能卡等等。
当登陆时用户属性的可选择性。
配置和管理用户属性的可选集合(组)。
当下面的用户帐号基础信息由其他 XSSO 提供的功能所修改时,就需要维护单点登陆用户帐号基础信息以及下面独立维护的用户帐号基础信息的完整性。
图形化和命令行用户界面 XSSO 的基础服务。这个工具可以是 XSSO 的一部分。
译者注
典型的挑战响应机制应用在 HMAC(Keyed-Hashing for Message Authentication) 验证中。验证流程如下:
(1) 先由客户端向服务器发出一个验证请求。
(2) 服务器接到此请求后生成一个随机数并通过网络传输给客户端(此为挑战)。
(3) 客户端将收到的随机数提供给 ePass,由 ePass 使用该随机数与存储在 ePass 中的密钥进行 HMAC-MD5 运算并得到一个结果作为认证证据传给服务器(此为响应)。
(4) 与此同时,服务器也使用该随机数与存储在服务器数据库中的该客户密钥进行 HMAC-MD5 运算,如果服务器的运算结果与客户端传回的响应结果相同,则认为客户端是一个合法用户。
请注意!引用、转贴本文应注明原译者:Rosen Jiang 以及出处:http://www.blogjava.net/rosen