WI/SSO 默认的 Eager Sign in 将用户认证信息直接提交到 WebSEAL 提供的认证表单 ,缺乏灵活性以及适用性。本文的解决方案在自定义登录页面和 WebSEAL 认证表单之间加 入了中间过程,将该登录认证过程分为两步提交:1)提供一个自定义登录页面和 Servlet 用来收集用户认证信息,通常是用户名和口令;2)在服务器端将该 Servlet 收集到的认 证信息连同必要的 HTTP 请求数据通过 HttpClient 一同提交到 WebSEAL 的认证表单,并 根据 WebSEAL 返回的结果进行相应的处理。如果在认证过程中发生任何错误,通过结果处 理可以转到自定义的错误页面,避免 WebSEAL 默认的认证错误处理。该解决方案的优点在 于其灵活性以及适用性,可以有效地提升用户体验。
SSO 与 IBM WI/SSO
SSO 介绍
SSO 基本概念
单点登录(Single Sign On,简称为 SSO),是目前比较流行的企业业务整合的解决方 案之一。利用 SSO,用户只需在应用服务器上登录一次,便可以访问启用了 SSO 域中的任 何应用服务器,而无需再次登录。其实质就是获得对企业资源的访问权限。
单点登录不仅是企业应用集成(EAI)的一个重要方面,还是 SOA 按需时代的要求之一 。它不仅降低安全风险和管理消耗,并且大大简化 SOA 的安全问题,从而提高服务之间的 合作效率。
SSO 实现
SSO 并不是 Java EE 中的标准实现,而是各中间件提供商在提供 Java EE 应用服务器 集群时提供的一种共享认证信息的机制,所以各厂商提供的实现方式不一样。例如 IBM 的 WebSphere 是通过 Cookies 记录认证信息,BEA 的 WebLogic 通过 Session 共享技术实 现认证信息的共享,国内深圳金蝶的 Apusic 采用的技术和 BEA WebLogic 基本一致。
IBM WI/SSO 介绍
WI/SSO 基本概念及原理
IBM 提供的 SSO 解决方案——WI/SSO(Web Identity/Single Sign On)是 IBM 为其外部应用提供的标准用户服务,用来对 ibm.com 的用户进行注册,授权以及管理 。它允许用户通过 IBM Tivoli Access Manager(TAM) 中的 WebSEAL 逆向代理安全服务器 组件访问被保护的应用程序。WebSEAL 会对用户进行统一认证,并且管理用户认证信息。
图 1 WI/SSO 体系结构
如图 1 所示,WebSEAL 位于外部和内部防火墙之间的非保护区(Demilitarized Zone ,DMZ),用来向绿色区域的 Web 服务器转发请求。它会一直跟踪受保护的 IP 地址,接 收发往 Web 服务器或应用服务器的请求,提供认证和授权服务,并在发送请求前把该请求 的地址更改为实际目标地址转发出去。