标签:多个 实现 参考 参考资料 淘宝 mamicode 技术 相互 分布
单点登录(Single Sign On),简称SSO,是比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
对于简单的系统,所有的功能都在一个系统上:
对于复杂的功能,为了合理利用资源和降低耦合度,把单系统拆分为多个子系统:
在一个子系统登录后,其他子系统也会登录。
比如淘宝和天猫,这是两个系统,但是在使用时,登录了天猫,淘宝也会自动登录。
Redis是基于内存,常用作于缓存的一种技术。以key-value的形式存储数据。
Redis实现的是分布式缓存,如果有多台机器的话,所有机器共享一分缓存,缓存具有一致性。
Session是依赖Tomcat的,所以Session是不能共享的,即系统A和系统B的Session是不共享的。
因为Redis可以实现分布式缓存,因此可以使用Redis来模拟Session。
步骤:
假如我们现在有两个系统: https://www.test1.com 和 https://www.test2.com
我们请求test2时,不会将test1的Cookie带过去。
所以我们请求test1进行登录后,如果将token写入到test1的Cookie中,那么访问test2时还需要重新登录。
假设我们现在有三个系统:
登录系统:https://www.testSSO.com
系统一:https://www.test1.com
系统二:https://www.test2.com
我们请求系统一时,发现没有登录,于是跳转到 https://www.testSSO.com系统进行登录,登录后将token写入到testSSO下,登录成功之后再跳转回系统一。之后我们请求系统二:http://www.test2.com 发现没有登录。于是又跳转到 https://www.testSSO.com ,当我们访问SSO时,携带着token信息,于是便通过登录验证,之后跳转会系统二。
所以可以理解为:SSO认证中心就类似一个中转站。
参考资料:
https://zhuanlan.zhihu.com/p/66037342
https://mp.weixin.qq.com/s?__biz=MzI4Njg5MDA5NA==&mid=2247484359&idx=1&sn=0994c6246990b7ad42a2d3f294042316&chksm=ebd742c6dca0cbd0a826ace13f4d4eeff282052f4a97b31654ef1b3b32f991374f5c67a45ae9&token=1834317504&lang=zh_CN&scene=21#wechat_redirect
标签:多个 实现 参考 参考资料 淘宝 mamicode 技术 相互 分布
原文地址:https://www.cnblogs.com/Silly-Dog/p/14088244.html