java实现SSO(SingleSignOn)单点登录服务
单点登录SSO:是指用户通过一次登录,可以访问任意所有相互信任的应用系统。即一处登录,处处登录。比如阿里系下的淘宝、天猫等,虽然是不同的产品,但归于一个体系下,是可以相互信任的应用系统。
为了方便用户操作,避免到处注册登录。不能因为其中一台应用服务的更新,影响到其它应用服务的登录,必然需要把登录当成独立应用服务,它即是SSO-server。
用户流程:
1、访问tb/member网页
2、tb应用服务验证是否登录
3、如果没有登录,去sso认证服务中心,检查是否登录
4、如果也没有,即跳转到登录页面
5、登录成功,存储登录信息并跳转到原访问url
6、访问页面再次去sso认证服务中心,校验是否合法
7、合法,显示网页给用户。
项目使用技术springboot来构建。
sso-server:认证服务中心
tb-client:tb应用系统
tm-client:tm应用系统
为了方便测试跨域情况,需要配置hosts:
127.0.0.1 www.sso.com 127.0.0.1 www.tb.com 127.0.0.1 www.tm.com
源代码:
https://github.com/zzsong/sso.git