oauth2.0--基础--6.1--SSO的实现原理

2023-11-16

oauth3.0–基础–6.1–SSO的实现原理


1、什么是SSO

1.1、概念

  1. 在一个 多系统共存 的环境下,用户在一处登录后,就不用在其他系统中登录,就可以访问其他系统的资源。
  2. 用户环境
    1. 浏览器:只能同一个浏览器,不会出现A浏览器登录成功后,打开B浏览器自动登录
    2. 手机:只能同一手机,不会出现A手机登录成功后,打开B手机自动登录

1.2、场景

1.2.1、场景1

我有个门户网站,这个网站上面多个系统链接页面,我只要登录了门户网站,我在门户上就通过点击A系统的链接,免登录直接跳转到A系统。

在这里插入图片描述

1.2.2、场景2

我有个A系统,我要访问B系统的一条数据B1(url),我登录A系统后,我希望能直接访问B1。

在这里插入图片描述

2、设计

实现单点登录说到底就是要解决如何产生和存储那个信任,再就是其他系统如何验证这个信任的有效性,因此要点也就以下几个:

  1. 存储信任
  2. 验证信任

只要解决了以上的问题,达到了开头讲得效果就可以说是SSO。

2.1、使用Cookie

把信任存储在客户端的Cookie里

2.1.1、实现流程

这里写图片描述

2.1.2、会产生2个问题

  1. Cookie不安全:可以通过加密Cookie来处理
  2. 不能跨域免登

2.2、使用统一认证中心(SSO系统)

2.2.1、实现流程

一般来说,大型系统会采取在服务端存储信任关系的做法,实现流程如下所示:

这里写图片描述

2.2.2、需要解决的重点问题

  1. 如何高效存储大量临时性的信任数据
    1. 可以采用 redis分布式缓存的方案,既能提供可扩展数据量的机制,也能提供高效访问
  2. 如何防止信息传递过程被篡改
    1. 一般采取数字签名的方法
      1. 要么通过数字证书签名
      2. 要么通过像md5的方式
    2. 需要SSO系统返回免登URL的时候对需验证的参数进行md5加密,并带上token一起返回,最后需免登的系统进行验证信任关系的时候,需把这个token传给SSO系统,SSO系统通过对token的验证就可以辨别信息是否被改过。
  3. 如何让SSO系统信任登录系统和免登系统
    1. 可以通过白名单来处理,说简单点只有在白名单上的系统才能请求生产信任关系,同理只有在白名单上的系统才能被免登录。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

oauth2.0--基础--6.1--SSO的实现原理 的相关文章

随机推荐

  • 快速下载arxiv论文

    国内镜像站 http xxx itp ac cn 获得需要下载的论文id号 官网上会显示论文id 例如下载论文GAN的id为 1406 2661 那么 直接在浏览器上访问网址 http xxx itp ac cn pdf 1406 2661
  • 国密SKF库调用开发指南(一)

    针对支持国密算法USB KEY设备的应用 国家颁布一个行业标准 智能密码钥匙应用接口规范 GM T0016 2012 市面上销售的国密算法的USB KEY设备也都 其实也是必须 支持这个接口规范 因此 只要根据这个规范开发的应用程序 就可以
  • 李开复:数位革命——创新创业的黄金时代

    李开复 数位革命 创新创业的黄金时代 创新工场观点 数位革命 今天的创业时代比任何一个历史时期都能带来更多的机会 何谓 数位革命 看创新工场创始人 董事长兼首席执行官李开复老师如何从我们身处这个时代的六个现象中 看出变革 看出机会 未来是年
  • Vue脚手架的使用

    1 全局安装 vue cli 仅第一次执行 npm install g vue cli 再次输入vue 如果出现版本号 则成功 2 切换到要创建项目的目录 使用命令创建项目 vue create xxxx 3 启动项目 npm run se
  • Egret的2D摄像机实现

    一个Egret的正交摄像机的简单实现 主要功能大致如下 可参考根据实际进行调整 module Camera 一个正交摄像机demo export class Camera 摄像机显示的对象 实际是镜头所对应的世界 m container e
  • OpenCV机器视觉-图片卷积

    图片卷积 图像滤波是尽量保留图像细节特征的条件下对目标图像的噪声进行抑制 是图像预处理中不可缺少的操作 其处理效果的好坏将直接影响到后续图像处理和分析的有效性和可靠性 线性滤波是图像处理最基本的方法 它允许我们对图像进行处理 产生很多不同的
  • 【微信小程序入门到精通】— button 和 image 超详细讲解

    目录 前言 一 button 组件 1 1 指定按钮 属性值 type 1 2 改变按钮尺寸 属性值 size 1 3 使按钮镂空 属性值 plain 1 4 补充 二 image 组件 2 1 构建图片控件 image 2 2 指定图片缩
  • python数据容器--列表的常用操作

    数据容器List 列表的常用操作 List列表的常用操作 1 查找某元素在列表内的下标索引 列表 index 元素 mylist itcast itheima python index mylist index itcast print i
  • 指针的删除

    1 在链表中 将某个指针delete 指向该指针的那个指针的next 不会自动赋值为NULL 需要手动赋值 2 删掉 某指针所指向的内存 该指针仍然可以使用 下面是一个带头指针的单向链表 void Stack Pop int value i
  • 每日一考错题整理

    1 JDK JRE JVM三者之间的关系 以及JDK JRE包含的主要结构有哪些 JDK JRE Java开发工具 javac exe java exe javadoc exe JRE JVM JAVASE核心类库 2 标识符的命名规范有哪
  • JDK8新特性之双冒号 :: 用法及详解

    JDK8新特性之双冒号 用法及详解 转自 https cloud tencent com developer article 1404786 JDK8的新特性有很多 最亮眼的当属函数式编程的语法糖 本文主要讲解下双冒号 的用法 类名 方法名
  • ubuntu:android studio 安装adb调试工具

    adb安装 apt get install android tools adb 远程连接 adb connect 172 26 0 119 5555 遇到端口占用 yangwenlong title71 Android AndroidPro
  • 微服务全栈:深入核心组件与开发技巧

    文章目录 1 服务注册与发现 1 1 客户端注册 ZooKeeper 1 2 第三方注册 独立的服务Registrar 1 3 客户端发现 1 4 服务端发现 1 5 Consul 1 6 Eureka 1 7 SmartStack 1 8
  • firefox 火狐浏览器安装java插件

    由于工作中用到决策引擎产品 FICO Blaze 该产品展示决策流 决策树 决策表等组件是依托的applet 需要浏览器启用java插件 经常碰到明明电脑上装了java 但是浏览器的附加组件中却没有显示 经过一下午的折腾发现了以下几条限制
  • SpringCloud系列教程(1)--开发环境的准备

    开发环境准备 eclipse apache maven 3 5 0 jdk1 8 说明 这个是本人的开发环境工具 也可以使用自己适应的环境 比如 IntelliJ IDEA 但是本系列以eclipse来简述 如果环境不会配置 请自行百度 因
  • Android Studio TraceView性能优化分析

    http blog csdn net androiddevelop article details 8223805 http www cnblogs com sunzn p 3192231 html Android 编程下的 TraceVi
  • ConstraintLayout各种居中设置

    1 全局居中 app layout constraintBottom toBottomOf parent app layout constraintEnd toEndOf parent app layout constraintStart
  • Python基于xlrd模块处理合并单元格

    Excel是我们日常工作中经常使用的电子表格软件 它可以方便地对数据进行整理 计算和分析 在Excel中 有时候需要将多个单元格合并成一个单元格 以便更好地展示数据 但是 在数据处理过程中 合并单元格也会带来不少麻烦 本文将介绍如何使用Py
  • SpringBoot实战(八)集成 Logback

    目录 1 简介 2 项目结构 3 配置文件 3 1 Maven 3 2 logback spring xml 3 3 application yml 4 自定义输出级别 5 项目地址 6 部分内容没有输出到日志文件中问题处理 7 根据开发
  • oauth2.0--基础--6.1--SSO的实现原理

    oauth3 0 基础 6 1 SSO的实现原理 1 什么是SSO 1 1 概念 在一个 多系统共存 的环境下 用户在一处登录后 就不用在其他系统中登录 就可以访问其他系统的资源 用户环境 浏览器 只能同一个浏览器 不会出现A浏览器登录成功