单点登录原理

1. 单点登录

何为单点等点登录? 单点登录全称Single Sign On(简称SSO),指的是在多系统应用群登录一个系统,便可在其他系统得到授权而无需再次登录,包括单点登录与单点注销等。

它允许用户在多个应用之间共享身份信息,也就是说,用户只需要登录一次,就可以在多个系统或者多个应用之间无缝访问,这大大提高了用户的体验和安全性。

在企业发展初期,系统设计不多,可能只需要一个系统就可以满足业务的需求,用户呢,也只需要用账号密码登录就可以完成验证,但是随着业务迭代的发展,系统架构也随之迭代,演变越来越多的子系统,用户每进一个系统呢就需要重新进行登录,为了解决这个问题,就产生了单点登录。也就是在一个多系统共存的环境下,用户只需要在任何一个系统登录后,就不需要在其他系统再次登录,就可以得到其他系统的信任,而单点登录是一种身份验证的解决方案,可以让用户一次性身份认证登录多个应用程序和网站。

SSO工作原理:

1.1 登录

解释一

单点登录原理_第1张图片

解释二

相比单系统登录,sso需要独立的认证中心,只有认证中心能接受用户名密码等安全信息,其他系统不提供入口,只接受认证中心的间接授权。

间接授权通过令牌实现,sso认证中心验证用户用户密码没问题,创建授权令牌,在接下来跳转中,授权令牌作为参数发送给各个子系统。

子系统拿到令牌,得到授权,借此创建局部会话,局部会话登录方式与单系统登录方式相同。此过程就是单点登录原理,如下图:
单点登录原理_第2张图片

上图概述:

  • 用户访问系统1的受保护资源,系统1发现用户未登录,跳转至sso认证中心,并将自己的地址作为参数
  • sso认证中心发现用户未登录,将用户引导至登录页面
  • 用户输入用户名密码提交登录申请
  • sso认证中心校验用户信息,创建用户与sso认证中心之间的会话,称为全局会话,同时创建授权令牌
  • sso认证中心带着令牌跳转会最初的请求地址(系统1)
  • 系统1拿到令牌,去sso认证中心校验令牌是否有效
  • sso认证中心校验令牌,返回有效,注册系统1
  • 系统1使用该令牌创建与用户的会话,称为局部会话,返回受保护资源
  • 用户访问系统2的受保护资源
  • 系统2发现用户未登录,跳转至sso认证中心,并将自己的地址作为参数
  • sso认证中心发现用户已登录,跳转回系统2的地址,并附上令牌
  • 系统2拿到令牌,去sso认证中心校验令牌是否有效
  • sso认证中心校验令牌,返回有效,注册系统2
  • 系统2使用该令牌创建与用户的局部会话,返回受保护资源

用户登录成功之后,会与sso认证中心及各个子系统建立会话,用户与sso认证中心建立的会话称为全局会话,用户与各个子系统建立的会话称为局部会话,局部会话建立之后,用户访问子系统受保护资源将不再通过sso认证中心,全局会话与局部会话有如下约束关系

  • 局部会话存在,全局会话一定存在
  • 全局会话存在,局部会话不一定存在
  • 全局会话销毁,局部会话必须销毁

1.2 注销

全局会话销毁,局部会话必须销毁
单点登录原理_第3张图片
sso认证中心一直监听全局会话状态,一旦全局会话销毁,监听器通知所有注册系统执行注销操作。

对上图简要说明:

  • 用户向系统1发起注销请求
  • 系统1根据用户与系统1建立的会话id拿到令牌,向sso认证中心发起注销请求
  • sso认证中心校验令牌有效,销毁全局会话,同时取出所有用此令牌注册的系统地址
  • sso认证中心向所有注册系统发起注销请求
  • 各注册系统接收sso认证中心的注销请求,销毁局部会话
  • sso认证中心引导用户至登录页面

2. 第三方登录

某系统,使用其他系统的用户,实现本系统登录的方式,如在京东中使用微信登录,解决信息孤岛和用户不对等的实现方案。

你可能感兴趣的:(https)