分布式是大型架构的核心,下面我重点详解单点登录系统@mikechen
单点登录
单点登录(SSO),是一种在多个系统之间共享登录状态的用户认证机制。
用户只需在一个系统中登录一次,就能在同一体系下的其他系统中自动获得访问权限,无需重复登录。
比如:阿里有庞大且相互独立的子业务系统,比如:淘宝、天猫、支付宝、阿里云、钉钉等。

在这些平台上,用户最直观的体验就是:在淘宝登录后,切换到天猫或阿里云时,无需再次输入密码。
这背后的技术,就是单点登录。
单点登录原理
在单点登录(SSO)体系中,整体架构如下:

构通常由 认证中心(SSO Server)、业务系统(Client Systems) 和 用户中心(User Center) 三个核心模块构成。
(1)认证中心(SSO Server)
认证中心是单点登录系统的核心,负责统一的用户认证与令牌管理。
它相当于整个系统的“身份中枢”,主要职责包括:
负责统一认证、签发与验证Token;
提供登录、登出、刷新Token等接口;
管理全局会话与信任关系。
(2)业务系统(Client Systems)
业务系统是最终为用户提供服务的各个独立应用(如:OA、CRM、ERP、BI等)。
它们通过与认证中心交互,完成自身登录状态的同步与校验。
(3)用户中心(User Center)
用户中心是整个SSO体系的用户数据管理核心,是认证的基础支撑模块。
主要职责包括:
存储用户账号信息;
供认证中心统一管理、查询与授权。
单点登录工作流程
大致流程,如下:

① 用户访问系统A → 未登录 → 跳转认证中心;
② 用户登录成功 → 认证中心签发Token(或Ticket);
③ 系统A验证Token → 创建本地Session;
④ 用户访问系统B → 携带Token → 系统B向认证中心验证;
⑤ 验证通过 → 系统B创建Session → 单点登录生效。