1、前言
一般在浏览器同时使用多个系统,我们都得重新输入账号密码进行登录。有没有可能一次登录后在多个系统使用,单点登录技术解决多次登录问题,它包括单点登录和单点注销两部分。
2、共享cookie 实现单点登录
多个系统间共享cookie ,请求时携带cookie维护浏览器和服务器之间会话,实现单点登录,但共享cookie方案存在局限多系统的顶级域名相同才可以共享域名,跨域语言技术开发的系统无法共享会话Id。
3、认证中心sso实现单点登录
需要一个登录认证中心,用户在认证中心输入账号密码进行统一登录,创建全局会话,接入的认证中心的系统通过跳转获取授权令牌,创建局部会话。退出登录通过销毁全局会话,然后通知销毁所有局部会话。
(1)单点登录原理
用户访问应用系统,跳转到认证中心登录页面输入账号密码进行登录,登录成功后,认证中心创建全局会话,并跳转到应用系统授权其创建局部会话。
(2)单点登出原理
单点登出全局注销登录,一个子系统注销登录,所有的子系统都注销会话。认证中心sso 监听全局会话,一旦全局会话被注销,监听器通知所有注册系统执行注销会话操作。
-
用户发起退出登录
-
系统A通过自身的会话ID,找到其对应的授权令牌
-
系统A取出授权令牌向认证中心发起全局会话注销
-
认证中心校验令牌有效、注销全局会话、通知注册系统注销局部会话
-
浏览器返回登录页面