java 单点登录的实现
在门户项目中,经常会遇到如何实现单点登录的问题,下面就本人的经验做个总结。欢迎大
家进行补充讨论。单点登录的具体实现有很多种选择,包括:
采用专门的 SSO 商业软件: 主要有:Netgrity 的 Siteminder,已经被 CA 收购。Novell 公
司的 iChain。 RSA 公司的 ClearTrust 等。
采用门户产品供应商自己的 SSO 产品,如:BEA 的 WLES,IBM 的 Tivoli Access Manager,
Sun 公司的 identity Server,Oracle 公司的 OID 等。
这些商业软件一般适用于客户对 SSO 的需求很高,并且企业内部采用 COTS 软件如:
Domino,SAP,Sieble 的系统比较多的情况下采用。并结合身份管理。统一认证等项目采用。
采用这些软件一般都要对要集成的系统做些改造,如在要集成的系统上安装 AGENT。现在一
般只提供常见软件如:Domino,SAP,Sieble,常见应用服务器:weblogic,websphere 等的
AGENT。要先统一这些系统的认证。一般采用 LDAP 或数据库。然后才能实现 SSO。比较麻烦。
另外,如果不想掏银子,也有 OPEN SOURCE 的 SSO 软件可选:主要有:http://www.josso.org/
https://opensso.dev.java.net/ http://www.sourceid.org 等。具体怎么样就不清楚了。
如果项目对 SSO 的要求比较低,又不想对要被集成的系统做任何改动,可采用下面介绍的方
式简单实现:下面我们通过一个例子来说明。假如一个门户项目要对下面的几个系统做
SSO。
用户在这些系统中的用户名,密码各不相同,如:员工号为 001 的员工在这些系统中的用户
名,密码分别如下:
用户
系统
用户名
密码