为了迎合公司互联网化经营,业务部门均纷纷上马了互联网的项目,部门应用之间各自为政,无法形成公司整体品牌效应,以及影响用户体验,故,有了以下的单点登录集成方案。
概述
整合集成公司各个业务部门的应用,支持通过多终端全渠道单点登录功能;
总体方案
1、用户访问业务系统,通过业务系统集成的拦截器跳转到登录服务器,进行系统的登录、登出操作;
2、登录服务器支持公司内网LDAP集群以及互联网MYSQL集群的用户登录认证;
3、登录服务器存储用户Session至服务器Redis集群;
4、服务器登录成功后将用户信息作为参数跳转至业务应用,包括:用户详情密文、MD5值、TTL、密钥版本号等等。业务端根据参数判断用户信息是否有效,并调用后端安全中心接口获取解密密钥,将用户信息解密;
5、用户信息解密成功后,将用户的Session信息保存至业务端服务器Redis集群,保证后续用户访问无需跳转至服务端验证;
重点说明
1、跨域:所有应用均是通过登录服务器所在域的Session进行中转,实现跨域的单点登录集成;
2、登出:所有登录操作均需要发送到登录服务器执行,业务端通过监听MQ消息,实现全部登出的功能;
3、缓存:所有业务系统均各自缓存登录的用户数据,在有效时间内,无需登录服务器验证,降低登录服务器请求压力,以及业务系统健壮性;
4、安全:重要信息采用时间有效性密钥加密的密文传输,传递密钥版本号,MD5防篡改校验值等等防止破解,通过后端服务调用获取加密密钥;
5、稳定性:整套方案最容易形成性能瓶颈在于安全中心的服务,故采用分布式架构进行建设部署。本案采用淘宝的dubbo框架进行建设;
6、多终端集成:非Web端集成采用传递SessionId的方式进行集成,通过调用登录接口进行登录操作,成功后返回SessionId的参数,后续通过传递的SessionId参数进行单点集成;