近日学习研究了SSO,有很多疑问想与大家交流。之前发了帖效果不佳,疑惑依然存在。今日将自创的SSO应用方案整理出来,算是抛砖引玉,希望通过交流分析出最佳的应用模式,互进共勉。
目标:整合现有邮件系统、论坛系统、博客系统,实现单点登陆。
面临问题:跨域;应用系统由不同的开发语言编写(如jsp、asp、php、cgi)。
整合要求:考虑历史数据的兼容性、完整性;尽量使应用系统的客户化改造最小、涉及的影响面最小;考虑未来可能使用的系统,预留接口。
方案:整合过程中需新开发统一认证系统,负责用户信息管理。用户信息注册由统一认证系统完成,邮件系统、论坛系统、博客系统中的用户ID与统一认证系统中的用户ID保持一致。即统一认证系统每产生一个用户ID邮件系统、论坛系统、博客系统也要产生相应的用户ID。
采用CAS实现统一验证,用户信息同步应用CAS的Proxy模式。这里重点阐述用户信息同步策略。同步过程主要有两方面,如下:
1、注册新用户
统一认证系统进行用户ID唯一性检查,检查过程依赖于邮件系统、论坛系统、博客系统获取信息,只有全部通过唯一性检查方可注册。
2、登陆应用系统
a、统一认证系统进行身份验证后重定向到应用系统。
b、应用系统获取用户ID,检测本地是否存在该用户ID,如不存在则创建,然后执行登陆操作。