SSO实现核心要点归纳表
| 分类 | 关键点 | 说明与类比 |
|---|---|---|
| 核心错误认知 | Cookie同域共享≠SSO | 将Cookie设置在顶级域名下,仅能解决同源子域名(如a.douyin.com和b.douyin.com)间的登录状态共享。无法解决跨完全独立域名(如taobao.com和tmall.com)的登录互通问题。 |
| 标准协议方案 | CAS(中央认证服务) | 企业级SSO的通行标准协议,其核心流程可概括为“一个中心,两类会话,三次握手”。 |
| 核心架构 | 一个中心 | 所有子系统的登录请求都统一重定向到一个独立的SSO认证中心进行处理。 类比:进入一个大型园区(集团各应用),所有访客必须先在统一的入园验票口(SSO中心)验证身份。 |
| 会话管理 | 两类会话 | 1.全局会话:用户在SSO认证中心登录成功后生成。代表用户已在“总入口”验明正身,通常对应一个名为TGT(票据授予票据)的Cookie。 2.局部会话:用户在某个具体子系统(如OA、CRM)内登录成功后,由该系统自己生成的会话和Cookie。用于避免在该系统内重复验证。 |
| 登录流程 | 三次握手 | 第一次:用户访问系统A,发现无局部会话,被重定向至SSO认证中心。 第二次:用户在SSO中心完成登录,建立全局会话,并获得一个临时的、一次性票据(Service Ticket),然后携带此票据被重定向回系统A。 第三次:系统A后台拿着这个票据,去SSO认证中心进行核验。核验通过后,系统A为用户创建局部会话,登录完成。 |
| SSO核心价值体现 | 免密访问新系统 | 当用户首次登录系统A后,再去访问系统B时: 1. 系统B将其重定向至SSO认证中心。 2. SSO中心通过浏览器携带的全局会话Cookie(TGT)发现用户已登录。 3. 于是无需用户再次输入密码,直接生成一个新的票据给系统B,自动完成登录。 真正实现了“一次登录,处处通行”。 |
补充说明(单点登出):
一个完善的SSO系统还需支持单点登出:用户在任何一个子系统退出登录时,不仅销毁该系统的局部会话,还会通知SSO认证中心销毁全局会话,并由SSO中心通知所有其他已登录的子系统销毁各自的局部会话,实现“一处退出,处处退出”。