分布式是大型架构基石,下面我详解SSO单点登录系统@mikechen
单点登录系统

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

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)。
单点登录系统流程

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直接通过。
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注作者「mikechen」公众号,获取更多技术干货!
后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》,后台回复【面试】即可获取《史上最全阿里Java面试题总结》