单点登录系统架构(组件+原理+流程)

单点登录是大型架构必备,下面我详解单点登录系统架构@mikechen

单点登录系统

单点登录系统架构(组件+原理+流程)-mikechen

单点登录,全称是:Single Sign-On,简称“”SSO”。

单点登录系统,是一种认证机制,允许用户使用一组凭证访问多个独立的应用程序、或服务,而无需多次登录。

单点登录系统,不仅是提升用户体验的利器,更是安全防御的第一道关卡。

 

单点登录系统架构

一个通用的 SSO 单点登录系统架构,通常包含以下组件:

单点登录系统架构(组件+原理+流程)-mikechen

认证中心

在单点登录(SSO)系统中,认证中心(也称为SSO Server、统一认证中心或Identity Provider – IdP)是整个系统的核心组件。

它负责集中管理用户身份验证、令牌发放、会话维护和信任关系建立。

所有应用系统(称为Service Provider – SP 或 客户端),都不直接处理用户名/密码,而是委托认证中心完成认证。

浏览器 <--> 业务系统A/B/C (CAS Client Filter)
          ↑↓ (重定向 + ST)
认证中心 (CAS Server)
  ├── 登录页
  ├── TGT 管理 (全局票据,Redis)
  ├── ST 生成与验证
  └── 信任的 Client 注册

关键票据:TGT(Ticket Granting Ticket):全局票据,证明用户已在认证中心登录。

ST(Service Ticket):服务票据,一次性、针对特定业务系统,有效期短(默认 5 分钟)。

服务提供者

信任IdP并通过协议(SAML/OIDC/OAuth2),接收断言或访问令牌,实现会话管理与权限校验。

会话与令牌管理

设计短时效的访问令牌与可刷新令牌,结合单点登出(SLO)机制确保安全退出。

考虑令牌存储位置(Cookie、浏览器存储),以防范XSS与CSRF攻击。

可用性与扩展性

采用高可用部署(集群、负载均衡)、分布式会话或集中会话共享。

以及目录服务(如LDAP)、或外部身份源的整合。

安全防护

强制HTTPS、限制令牌复用、防重放、登录风险评估及异常登录阻断。

 

单点登录系统架构流程

单点登录系统架构(组件+原理+流程)-mikechen

SSO 的核心逻辑在于:建立一个中心化的认证服务器,让多个子系统(App)信任该服务器的认证结果。

核心步骤:

用户访问 App A:未登录,App A 将用户重定向到 SSO 认证中心。

认证中心登录:用户在 SSO 页面输入凭证,验证通过。

建立全局会话:SSO 在其域名下写入 Cookie(TGC),代表全局登录。

发放授权令牌:SSO 生成一个临时票据(Ticket/Code)带回给 App A。

校验并建立局部会话:App A 拿着票据去 SSO 后端校验,校验成功后,App A 在自己域名下建立局部会话(Session)。

评论交流
    说说你的看法