单点登录是大型架构的核心,下面我重点详解单点登录SSO@mikechen
单点登录
单点登录(Single Sign-On,简称 SSO),是一种认证机制。

用户只需在首次访问时登录一次,即可在受信任的多个应用之间切换,避免频繁输入用户名和密码带来的不便。
为什么需要单点登录
传统系统中,用户需要为每个应用系统单独登录,频繁输入用户名和密码,体验差。
多系统分布在不同服务器,传统的session无法跨系统共享身份认证状态。
通过单点登录,实现一次认证,多处访问,提升安全性和管理效率。
比如:阿里集团拥有庞大且多元化的产品体系,横跨电商、金融、云计算、物流等多个领域。

对于用户而言,最好的体验就是用一个淘宝账号或一个阿里云账号就能访问多个相关服务。
单点登录原理
单点登录的实现,通过中心化认证服务,实现“登录一次,全系统通用”。
实现,包含3大核心组件:

CAS Server(认证中心)
职责:负责所有用户的身份验证(校验用户名和密码)。
核心功能:建立和维护用户的中央会话,并负责生成和校验各种票据(Tickets)。
地位:它是整个 SSO 架构中唯一的登录入口。
CAS Client(客户端适配器)
职责:嵌入在各个应用系统中,作为应用和服务与 CAS Server 之间的“翻译官”。
核心功能:拦截未登录用户的请求,将其重定向到 CAS Server;接收 CAS Server 返回的服务票据,并将其发送回 Server 进行校验。
Service(应用服务)
职责:提供实际业务功能的各个独立应用系统(例如:OA 系统、ERP 系统、邮件系统等)。
核心功能:它们信任 CAS Server 的认证结果,并依赖 CAS Client 来实现安全拦截和认证跳转。
单点登录工作流程

用户访问系统A → 未登录,跳转认证中心;
用户在认证中心登录成功,生成登录凭证(Token);
用户访问系统B → 携带Token验证通过,自动登录;
用户在任一系统退出 → 认证中心通知全部系统登出。
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注作者「mikechen」公众号,获取更多技术干货!
后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》,后台回复【面试】即可获取《史上最全阿里Java面试题总结》