单点登录sso认证中心

zz/2023/12/3 3:00:25

**

单点登录sso认证中心

**
什么是单点登录?单点登录全称Single Sign On(以下简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分

1. 登录

相比于单系统登录,sso需要一个独立的认证中心,只有认证中心能接受用户的用户名密码等安全信息,其他系统不提供登录入口,只接受认证中心的间接授权。间接授权通过令牌实现,sso认证中心验证用户的用户名密码没问题,创建授权令牌,在接下来的跳转过程中,授权令牌作为参数发送给各个子系统,子系统拿到令牌,即得到了授权,可以借此创建局部会话,局部会话登录方式与单系统的登录方式相同。这个过程,也就是单点登录的原理,用下图说明

在这里插入图片描述

下面对上图简要描述

用户访问系统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认证中心,全局会话与局部会话有如下约束关系

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

你可以通过博客园、百度、csdn、淘宝等网站的登录过程加深对单点登录的理解,注意观察登录过程中的跳转url与参数

2. 注销

单点登录自然也要单点注销,在一个子系统中注销,所有子系统的会话都将被销毁,用下面的图来说明

3b139d2e-0b83-4a69-b4f2-316adb8997ce

sso认证中心一直监听全局会话的状态,一旦全局会话销毁,监听器将通知所有注册系统执行注销操作

下面对上图简要说明

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

3. 整体陈述
单点登录涉及SSO认证中心与多个子系统,子系统与SSO认证中心需要通信(交换令牌、校验令牌及发起注销请求等),子系统中包含SSO的客户端,SSO认证中心是服务端
认证中心与客户端通信可通过 httpClient、web service、rpc、restful api(url是其中一种) 等实现
客户端与服务器端的功能

  • 客户端:
  1. 拦截子系统未登录用户请求,跳转至sso认证中心
  2. 接收并存储sso认证中心发送的令牌
  3. 与服务器端通信,校验令牌的有效性,建立局部会话
  4. 拦截用户注销请求,向sso认证中心发送注销请求
  5. 接收sso认证中心发出的注销请求,销毁局部会话
  • 服务器端:
  1. 验证用户的登录信息
  2. 创建全局会话
  3. 创建授权令牌
  4. 与客户端通信发送令牌
  5. 校验客户端令牌有效性
  6. 系统注册
  7. 接收客户端注销请求,注销所有会话

http://www.ngui.cc/zz/1443300.html

相关文章

单点系统的高可用与性能优化

单点系统的问题 1、非高可用:既然是单点,master一旦故障,服务就会收到影响。 2、性能瓶颈:既然是单点,不具备良好的扩展性,单点的服务性能总有个上限,一旦出现单点的上限,往往就是整…

实现单点登录(SSO)的三种方式

在早期的互联网业务中,一般是使用单一服务器模式。但随着互联网的飞速发展,互联网用户的体量不断增大,单一服务器模式存在单点性能压力,无法扩展,以及单点失效等问题,已经不适合如今的互联网业务了&#xf…

多系统单点登录(sso)设计

文章目录问题提出登录信息共享机制设计简单实现淘宝天猫登录信息共享(简化版)登录流程问题提出 多个系统中,如何做到其中一个系统登录了,在浏览器中打开其他系统也会成登录状态?比如在淘宝登陆了,打开天猫…

单点登录详解

一、单系统登录机制 1、http无状态协议 web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次…

单点登录技术

单点登录的解决方案 单点登录:多个系统,只需要一次登录就能访问所有系统,只需要一次退出,就能退出所有系统。 应用:淘宝与天猫 方案一: Cookie jsoup 对于不需要频繁验证用户是否登录的系统 (安全要求较低…

金蝶EAS通过第三方系统单点登录

这里写自定义目录标题金蝶EAS通过第三方系统单点登录操作步骤第三方系统代码示例示例jsp代码如下:示例java代码如下:金蝶EAS通过第三方系统单点登录 操作步骤 1、需要有LtpaTokenManager.jar包 2、从EAS服务器上下载 server\profiles\server(1…n)\co…

单点登录说明

什么是单点登录?单点登录全称Single Sign On(以下简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分 1、登录 相比于单系统登录&…

开源sso单点登陆系统推荐

一、CAS 地址https://www.apereo.org/projects/cas CAS是Central Authentication Service的缩写,中央认证服务,一种独立开放指令协议。CAS 是 耶鲁大学(Yale University)发起的一个开源项目,旨在为 Web 应用系统提供…

扫码点单系统介绍,源码

一、基本介绍 随着社会的进步与发展,科技手段的推陈出新,餐饮行业也在寻求新的突破与变革,手机扫描二维码点餐系统已经成为餐饮行业的未来趋势,发展空间巨大。 用微信自带的“扫一扫”工具或其他二维码扫描工具扫描餐厅的二维码…

Python图形界面实现咖啡店点单系统

问题 接到粉丝在圈子里留言想知道怎么写一个简单的咖啡店点单系统,大致满足以下要求:进入程序会有欢迎界面,然后显示咖啡品种以及对应单价,可以搜索相应商品输入数量进行点单,需要会员打折功能,能记录每天的…