分布式是大型架构核心,下面我就全面详解单点登录@mikechen
单点登录
单点登录(Single Sign-On,SSO):是互联网、大型企业、微服务架构中最常见的统一身份认证方案。

单点登录,是一种身份认证机制,它的核心目标是:用户只需要登录一次,即可访问多个相互信任的系统。
SSO单点登录原理
单点登录,通常包含以下三个核心组件:

┌────────────────┐
│ Browser │
└────────┬───────┘
│
▼
┌──────────────────┐
│ CAS Server │
│ 认证中心/票据中心 │
└────────┬─────────┘
│
┌────────────────┼────────────────┐
│ │ │
▼ ▼ ▼
OA系统(CAS Client) CRM系统 ERP系统
1. CAS Server
CAS Server 是整个单点登录体系的核心,所有身份认证最终都要经过它。
CAS Server 是统一认证服务器,也可以理解为“登录中心”。
它负责:
接收用户登录请求;
校验用户名和密码;
生成并管理认证票据(Ticket);
向各业务系统提供统一的登录结果。
2. CAS Client
CAS Client: 是部署在各业务系统中的客户端组件。
它负责:
拦截未登录请求;
将用户引导至 CAS Server 登录;
接收并校验 CAS Server 返回的票据。
3. 浏览器
浏览器:是用户与系统交互的载体。
可以说,浏览器是单点登录流程中“信息流转”的关键媒介。
单点登录流程
完整流程,如下:

| 步骤 | 名称 | 详细说明 |
|---|---|---|
| 1 | 访问服务 | 用户访问 CAS Client 受保护资源 ; |
| 2 | 定向认证 | Client 检测到未登录,重定向到 CAS Server ; |
| 3 | 用户认证 | 用户在 CAS Server 登录页输入凭据,Server 验证身份 ; |
| 4 | 发放票据 | 验证成功后,CAS Server 生成随机 Service Ticket (ST) 并重定向回 Client ; |
| 5 | 验证票据 | Client 携带 ST 向 CAS Server 验证,验证通过后允许访问服务 。 |