# 单点登录

单点登录(Single Sign On):
简称SSO,在多个应用系统中,用户只要登录一次就可以访问所有互相信任的应用系统。
image

如上图,客户端持有sessionId,服务端持有session,通过特殊机制使得每个server共用一个session的信息, 再让客户端都能使用一个sessionId,就实现了基本的单点登录

服务端:

  • 共享cookie模式:本质上cookie只是用来存放sessionId,将sessionId拿出来放在每一个请求的url里面, 但是让多个server共享一个session,这不符合一个server一个session的机制的初衷

  • SSO-Token模式:不使用sessionId作为唯一标识,另外生成一种标识即SSO-Token(token),这种标识是 多个server唯一的,且所有的server都能验证这个token,同时能拿到token背后代表的用户信息

浏览器端:

  • 共享cookie模式:将sessionId或者token存储在cookie里,将cookie的路径设置为顶级域名下,这样所有的子域 都能读取到cookie中的token。 image

需要注意:
1.所有server共享一个身份认证系统
2.所有server都能识别提取token信息

# 单点登录的优缺点

优点:

  • 提高用户效率,不再需要多个id和密码,也不需要多次登录

  • 提示开发效率

  • 简化管理,用户账号管理负担减轻

缺点:

  • 不利于重构,涉及系统太多,需要考虑兼容

  • 安全性不够