SSO单点登录原理

SSO单点登录原理目录一 cookie 及 session 二 普通的登录认证机制三 什么是 SSO 四 SSO 的优点五 不同场景下的单点登录 5 1 同域的 SSO5 2 跨域的 SSOSSO 的具体流程 以下步骤与图中的步骤一致 一 cookie 及 session 在了解 SSO 之前 我们先了解以下知识 cookie 及 session 具体看这篇介绍 cookie 及 session 介绍 二 普通的登录认证机制普通登录认证机制的过程 用户访问一个系统 这个系统需要登录 于是向后台服务器发送登录请求 数据库中根

一、cookie及session

在了解SSO之前,我们先了解以下知识:「cookie及session

具体看这篇介绍—- 「cookie 及 session 介绍 」

二、普通的登录认证机制

普通登录认证机制的过程:

  1. 用户访问一个系统,这个系统需要登录,于是向后台服务器发送登录请求;
  2. 数据库中根据用户传来的用户名和密码进行判断,判断成功后完成登录认证,登录认证成功,服务器把用户的登录信息写入 session;
  3. 服务器为该用户生成一个 cookie,返回而写入浏览器;
  4. 下一次,当用户再次访问这个系统的时候,请求中会带上这个 cookie,服务端会根据这个 cookie 找到对应的 session,通过session来判断这个用户是否已经登录。
    在这里插入图片描述
    如果只有一个或者两个系统,这种普通的登录认证机制还是可以满足需求的,但是,如果在多系统的环境下,在操作不同的系统时,就需要多次登录,这种方式就变得很不方便,而当点登录就是来解决这种情况的。

三、什么是SSO?

单点登录(英语:Single sign-on,缩写为 SSO),又译为单一签入,一种对于许多相互关连,但是又是各自独立的软件系统,提供访问控制的属性。当拥有这项属性时,当用户登录时,就可以获取所有系统的访问权限,不用对每个单一系统都逐一登录。

简单来讲就是,在一个多系统的环境中,用户只需要登录一次,就可以同时登陆访问其他互相信任的系统。
在这里插入图片描述

四、SSO的优点

使用单点登录的好处:

  • 降低访问第三方网站风险(用户密码不存储或外部管理);
  • 从不同的用户名和密码的组合减少密码疲劳;
  • 减少花费的时间重新输入密码相同的身份;
  • 降低IT成本适当降低一些IT帮助台调用有关密码;
  • SSO集中的所有其他应用程序和系统,用于身份验证服务器的身份验证,并与技术相结合是为了确保用户不必主动输入凭据一次以上。

五、不同场景下的单点登录

5.1 同域的 SSO

此时两个系统都在同一个域名下,通过二级域名区分不同的系统。比如有个域名叫:jd.com,同时有两个应用系统分别为:a.jd.com 和 b.jd.com。

如下图使用 cookie + redis 实现单点登录
在这里插入图片描述

5.2 跨域的 SSO

假设有以下三个网站,我们需要在系统 xiadan 和系统 zhifu 这两个网站站之间实现单点登录。

xiadan 系统:www.xiadan.com
zhifu 系统:www.zhifu.com
SSO 系统:www.sso.com


在这里插入图片描述

SSO的具体流程(以下步骤与图中的步骤一致)

  1. 用户首次访问系统 xiadan,xidan 系统是需要登录的,但用户现在没有登录;由于用户没有登录,所以 xiadan 服务器返回 http 重定向,重定向的 url 是 SSO 服务器的地址,同时 url 的 query 中通过参数指明登录成功后,回跳到 xiadan 的页面;
  2. SSO 服务器判断用户未登录,给用户显示统一登录界面。用户在 SSO 的页面上进行填写用户名和密码,进行登录操作;
  3. SSO 系统进行认证成功后,SSO 服务器创建授权令牌(token),同时返回一个 http 重定向,浏览器重定向到系统 xiadan:www.xiadan.com。此时重定向的 url 中携带着 SSO 服务器生成的授权令牌。
  4. 系统 xiadan 拿到授权令牌,向 SSO 服务器发送请求,校验令牌是否有效;
  5. 验证成功后,xiadan 服务器知道用户已经在 SSO 登录了,于是 xiadan 服务器构建用户登录 session,记为 xiadan session,并将 cookie 写入浏览器;
  6. 之后用户访问 zhifu,zhifu系统没有登录;由于用户没有登录,所以 zhifu 服务器返回 http 重定向,重定向的 url 是 SSO 服务器的地址;
  7. 浏览器询问用户在 SSO 中的登录状态,SSO 服务器根据授权令牌判断用户已经在 SSO 登录过了,SSO 服务器返回一个http重定向,携带授权令牌,跳转到系统 zhifu:www.zhifu.com;
  8. 系统 zhifu 拿到授权令牌,向 SSO 服务器发送请求,校验令牌是否有效,验证成功后,zhifu 服务器知道用户已经在 SSO 登录了,于是 zhifu 服务器构建用户登录 session,记为 zhifu session,并将 cookie 写入浏览器。

这样,zhifu 系统不需要再输入用户名和密码进行登录流程,就已经是登录了。之后当用户访问 xiadan 或者 zhifu 后,直接会携带 xiadan cookie / zhifu cookie,就不用再向 SSO 确认了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/214984.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午2:58
下一篇 2026年3月18日 下午2:58


相关推荐

  • 指定TreeNode排序

    指定TreeNode排序button1 Click 调用 My SortTreeNode treeView1 SelectedNode nbsp 选定的节点 右键可以添加排序弹出菜单 nbsp nbsp nbsp nbsp nbsp nbsp nbsp publicintTre TreeNodex TreeNodey nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp TreeNodetx xasTreeNode

    2026年3月19日
    3
  • 数字图像处理(11): 图像平滑 (均值滤波、中值滤波和高斯滤波)

    数字图像处理(11): 图像平滑 (均值滤波、中值滤波和高斯滤波)目录 1 图像增强 图像平滑 1 1 图像增强简介 1 2 图像平滑 2 均值滤波 3 中值滤波 4 高斯滤波参考资料 1 图像增强 图像平滑 1 1 图像增强简介图像增强是对图像进行处理 使其比原始图像更适合于特定的应用 它需要与实际应用相结合 对于图像的某些特征如边缘 轮廓 对比度等 图像增强是进行强调或锐化 以便于显示 观察或进一步分析与处理 图像增强主要是一

    2026年3月19日
    2
  • Delphi Android ActivityManager

    Delphi Android ActivityManagerwait…

    2025年9月24日
    7
  • mysql 查看 dml,MySQL系列-DML语句

    mysql 查看 dml,MySQL系列-DML语句MySQL 系列 DML 语句运维少年运维少年系列文章说明 MySQL 系列文章包含了软件安装 具体使用 备份恢复等内容 主要用于记录个人的学习笔记 主要使用的 MySQL 版本为 5 7 28 服务器系统版本为 CentOS7 5 本章节为 DML 语句使用 其中不包含 select 语句 何为 DML 语句 DML DataManipula 数据操纵语言命令使用户能够查询数据库以及操作已有

    2026年3月26日
    2
  • 数据分析:OLS回归分析

    数据分析:OLS回归分析变量之间存在着相关关系 比如 人的身高和体重之间存在着关系 一般来说 人高一些 体重要重一些 身高和体重之间存在的是不确定性的相关关系 回归分析是研究相关关系的一种数学工具 它能帮助我们从一个变量的取值区估计

    2026年3月18日
    2
  • JS获取url参数(超简单)

    JS获取url参数(超简单)Location 对象包含有关当前 URL 的信息 Location 对象是 Window 对象的一个部分 可通过 window location 属性来访问 hash 设置或返回从井号 开始的 URL 锚 host 设置或返回主机名和当前 URL 的端口号 hostname 设置或返回当前 URL 的主机名 href 设置或返回完整的

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号