单点登录kisso集成总结

2017-04-17 08:53:00
1147533288
原创
1904
摘要:cookie sso单点登录集成
请先参考官方说明及应用:

本次集成参考跨域系统间的集成办法,代码可以参考

目录
约定
流程说明
客户端集成
服务端集成
效果截图

正式开始:
  • 约定
1.业务系统程序地址
my.web.com:8090/ehr
2.控制台程序地址
sso.nnn.com:7080/console
3.多系统之间通过共用一个redis实现token会话文本数据的存放
4.以下业务系统集成与控制台程序仅截图关键代码实现,具体可以参考kisso_crossdomain 跨域演示 demo中对应的各个部分

  • 流程说明
登录流程:
1.浏览器通过访问http://my.web.com:8090/ehr,业务系统服务器判断非登录情况下重定向到http://sso.nnn.com:7080/console/a/login?ReturnURL=http%3A%2F%2Fmy.web.com%3A8090%2Fehr%2Fproxylogin.sso
2.控制台程序登录成功后(首次验证,控制台程序验证用户),返回浏览器,写入cookie(.nnn.com下的uid)
3.浏览器收到消息后重定向到http://my.web.com:8090/ehr/proxylogin.sso
4.业务系统使用自己的私钥加密临时会话cookie信息,发送给控制台程序进行二次验证(jsonp跨域发送请求)
http://sso.nnn.com:7080/console/a/replylogin
5.控制台程序如之前已登录成功,并且使用业务系统公钥解密成功,则二次验证通过,返回文本消息
6.业务系统jsonp消息返回后,确认控制台已二次验证成功,则重定向到http://my.web.com:8090/ehr/oklogin.sso,业务系统通知浏览器设置cookie uid并转向业务系统页面,用户认证完成。
退出流程:
业务系统或控制台程序,通过清除cookie uid,并清理缓存redis,实现同步清理会话的功能。


  • 客户端集成
1.web.xml
web.xml
2.resource资源文件
3.spring配置文件
redis配置

4.页面部分
业务系统首页my.web.com:8090/ehr

5.后台java controller部分
登录业务系统首页,未认证的会被重定向到控制台程序进行验证

业务系统输出二次验证地址,临时会话cookie的加密串,成功后的登录地址,用于proxylogin页面进行jsonp跨域请求

登录成功,重定向业务系统页面,写入cookie uid

退出请求,删除cookie,自动删除缓存redis数据,实现控制台程序同步退出
6.缓存redis部分

  • 服务端集成
1.web.xml
与客户端集成1部分相同
2.resource资源文件
与客户端集成2部分类似,控制台的properties配置信息与业务系统不同,需要额外配置各个业务系统的公钥

3.spring配置文件
与客户端集成3部分相同
4.页面部分
5.后台java controller部分
控制台程序收到的重定向请求只存在两种:
http://sso.nnn.com:7080/console/a/login?ReturnURL=***(解释:显示登录页面,登录成功后根据ReturnURL重定向至业务系统)
改造原有登录验证逻辑,如控制台登录成功状态,sso-token不存在情况下退出重新登录;token存在情况下证明已登录,直接重定向到业务系统

http://sso.nnn.com:7080/console/a/replylogin**(二次认证处理)


6.缓存redis部分
代码路径对应配置到sso.properties中
#缓存实现类配置
sso.cache.class = com.nnn.util.RedisCache
#缓存失效时间(s)
sso.cache.expires =600


  • 效果截图



文章分类
联系我
联系人: meepo
电话: *****
Email: 1147533288@qq.com
QQ: 1147533288