找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1472

积分

0

好友

191

主题
发表于 昨天 11:10 | 查看: 10| 回复: 0

在构建大型分布式系统时,确保用户身份的统一认证是核心挑战之一。单点登录(SSO)系统为此提供了优雅的解决方案。

什么是单点登录(SSO)?

单点登录(Single Sign-On,简称SSO)是一种认证机制,旨在使用户在一次身份验证后,能够无缝访问多个相互信任的应用系统。SSO 提高了用户体验、降低了凭证管理成本,同时便于安全审计与集中控制。

SSO单点登录标志图

单点登录系统原理

一套完整的 SSO 系统,通常包含以下三个角色:

CAS单点登录认证流程图

1. User(用户)

持有合法身份凭证的访问者,登录行为的发起者。用户通过浏览器或移动端 App 作为载体。它并不直接参与逻辑运算,但负责携带和传递凭证(如 Cookie, Token)。状态存储:在浏览器场景下,用户端存储着 sso.com 的全局会话(TGC)和 app.com 的局部会话。

2. Web / App Server

实际提供业务资源的系统,不直接保存用户主凭证。完全信任 SSO Server 的认证结果。核心职责包括判断当前请求是否已登录;将未登录用户重定向到 SSO Server;校验 SSO Server 颁发的凭证。

3. SSO Server(认证中心)

全局唯一的身份认证权威,所有登录、校验、注销的唯一入口。完整职责包括用户身份认证(用户名、密码、MFA);生成全局登录态(SSO Session);签发凭证(Ticket / Token);校验凭证合法性;统一注销(Single Logout)。

单点登录系统流程

SSO登录流程交互示意图

  1. 用户访问 A 系统 /order (无票据)。
  2. A系统重定向 → SSO Server?redirect_uri=A/order。
  3. SSO检查全局Cookie,无会话 → 登录页。
  4. 用户输入账号密码 → SSO验证 → 创建全局Session → 重定向回A + 票据ST。
  5. A系统用ST向SSO换取用户信息 → 建立本地会话 → 返回 /order 页面。
  6. 用户访问B系统 → B用相同全局Cookie直接通过。

通过以上流程,SSO 系统实现了跨应用的身份一致性,其底层常依赖HTTP/HTTPS协议进行重定向和通信。对于更深入的系统设计讨论,可以参考云栈社区的相关技术文章。




上一篇:Maven 4 深度解析:构建模型分离与性能新特性详解
下一篇:YOLOv11推理方案:开箱即用的RK3588/RK3568 NPU极简适配指南
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-18 20:01 , Processed in 0.228660 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表