SSO

1、SSO简介
单点登录( Single Sign-On , 简称 SSO )是多个相关但独立的软件系统访问控制的一个属性。通过使用该属性,用户登录与单个ID和密码来访问所连接的一个或多个系统,而不使用不同的用户名或密码,或在某些配置中无缝登录在每个系统上,它是比较流行的服务于企业业务整合的一种解决方案。总结一句话,SSO 使得在多个应用系统中,用户只需要 **登录一次 **就可以访问所有相互信任的应用系统。

举个栗子:阿里巴巴旗下的淘宝网,你在浏览器里登录了,打开阿里云或者天猫就会发现可以不用在登录了,这里就是使用了SSO。

在SSO体系中,主要包括三部分:

1.User (多个)
2.Web 应用(多个)
3.SSO 认证中心( 1 个)


而SSO的实现基本核心原则如下:

1.所有的登录都在 SSO 认证中心进行
2.SSO 认证中心通过一些方法来告诉 Web 应用当前访问用户究竟是不是已通过认证的用户
3.SSO 认证中心和所有的 Web 应用建立一种信任关系, SSO 认证中心对用户身份正确性的判断会通过某种方法告之 Web 应用,而且判断结果必须被 Web 应用信任。
2、SSO原理
2.1 、登录
上面介绍我们知道,在SSO中有一个独立的认证中心,只有认证中心能接受用户的用户名密码等安全信息,其他系统不提供登录入口,只接受认证中心的间接授权。那其他的系统如何访问受保护的资源?这里就是通过认证中心间接授权通过令牌来实现,当SSO验证了用户信息的正确性后,就会创建授权令牌,在接下来的跳转过程中,授权令牌作为参数发送给各个子系统,子系统拿到令牌,即得到了授权,可以借此创建局部会话,局部会话登录方式与单系统的登录方式相同。

上面是一张SSO登录原理图,下面我们来分析一下具体的流程:

  1. 首先用户访问系统1受保护的资源,系统1发现未登陆,跳转至SSO认证中心,并将自己的参数传递过去
  2. SSO认证中心发现用户未登录,将用户引导至登录页面
  3. 用户输入用户名和密码提交至SSO认证中心
  4. SSO认证中心校验用户信息,创建用户与SSO认证中心之间的会话,称为全局会话,同时创建授权令牌
  5. SSO认证中心带着令牌跳转会最初的请求地址(系统1)
  6. 系统1拿到令牌,去SSO认证中心校验令牌是否有效
  7. SSO认证中心校验令牌,返回有效,注册系统1的地址
  8. 系统1使用该令牌创建与用户的会话,称为局部会话,返回给用户受保护资源
  9. 用户访问系统2受保护的资源
  10. 系统2发现用户未登录,跳转至SSO认证中心,并将自己的地址作为参数传递过去
  11. SSO认证中心发现用户已登录,跳转回系统2的地址,并附上令牌
  12. 系统2拿到令牌,去SSO认证中心校验令牌是否有效
  13. SSO认证中心校验令牌,返回有效,注册系统2地址
  14. 系统2使用该令牌创建与用户的局部会话,返回给用户受保护资源

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

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

2.2 、注销

既然有登陆那么就自然有注销,单点登录也要单点注销,在一个子系统中注销,所有子系统的会话都将被销毁。原理图如下:

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

同样的我们也来分析一下具体的流程:

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

原文链接:https://blog.csdn.net/Anumbrella/article/details/80821486

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值