单点登录理论学习记录

一、单点登录介绍

单点登录(Single Sign On),简称为 SSO,是比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

二、原理

单点登录的核心原理是“信任传递”。当用户首次访问某个网站时,需要进行身份验证。一旦用户通过身份验证,服务器会生成一个令牌,并将该令牌返回给用户。用户携带此令牌访问其他授权的网站时,可以将令牌传递给这些网站,从而跳过重复的身份验证过程。

三、实现方式 

实现方式一:父域 Cookie

此种实现方式比较简单,但不支持跨主域名。

实现方式二:认证中心(推荐使用)

此种实现方式相对复杂,支持跨域,扩展性好

  1. 我们可以部署一个认证中心,认证中心就是一个专门负责处理登录请求的独立的服务。
  2. 用户统一在认证中心进行登录,登录成功后,认证中心记录用户的登录状态,并将 Token 写入 Cookie。(注意这个 Cookie 是认证中心的,应用系统是访问不到的。)
  3. 应用系统检查当前请求有没有 Token,如果没有,说明用户在当前系统中尚未登录,那么就将页面跳转至认证中心。由于这个操作会将认证中心的 Cookie 自动带过去,因此,认证中心能够根据 Cookie 知道用户是否已经登录过了。
  4. 如果认证中心发现用户尚未登录,则返回登录页面,等待用户登录,如果发现用户已经登录过了,就不会让用户再次登录了,而是会跳转回目标 URL ,并在跳转前生成一个 Token,拼接在目标 URL 的后面,回传给目标应用系统。
  5. 应用系统拿到 Token 之后,还需要向认证中心确认下 Token 的合法性,防止用户伪造。确认无误后,应用系统记录用户的登录状态,并将 Token 写入 Cookie,然后给本次访问放行。(注意这个 Cookie 是当前应用系统的,其他应用系统是访问不到的。)当用户再次访问当前应用系统时,就会自动带上这个 Token,应用系统验证 Token 发现用户已登录,于是就不会有认证中心什么事了。

实现方式三:LocalStorage 跨域

此种实现方式完全由前端控制,几乎不需要后端参与,同样支持跨域。

四、单点登录的优缺点

优点

  •  用户体验的提升
  • ​ 简化管理和维护
  • ​ 降低密码管理的复杂性
  • ​ 促进统一标识管理
  • 能够提高系统安全性

缺点

  • 安全隐患,因为只需要登录一次,所有的授权的应用系统都可以访问,可能导致一些很重要的信息泄露。  
  • 不利于重构

参考文章

单点登录的三种实现方式,你会几种?-腾讯云开发者社区-腾讯云 (tencent.com)

单点登录:原理、实现与挑战 (baidu.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值