SSO单点登录原理详解(图文全面总结)

分布式是大型架构核心,下面我详解SSO单点登录原理@mikechen

单点登录

单点登录(Single Sign-On,简称SSO)是一种认证机制,旨在用户只需一次登录便可访问多个相互信任的应用系统。

SSO通过集中式认证与信任建立,简化用户体验、提升安全性并降低运维成本。

SSO单点登录原理详解(图文全面总结)-mikechen

很多大型互联网公司都会使用 SSO,例如 :阿里巴巴集团 的内部系统、以及基于 OAuth 2.0 或 OpenID Connect 的登录体系。

 

 

SSO单点登录原理

典型实现,通常包含三个核心组件:CAS Server、CAS Client 和浏览器。

SSO单点登录原理详解(图文全面总结)-mikechen

三者协同完成认证、授权与会话传递。

CAS Server

CAS(Central Authentication Service)Server 作为集中式认证中心,负责验证用户身份并颁发可被信任的令牌或票据(Ticket)。

当用户首次访问受保护资源且未经过身份验证时,CAS Server 要求用户提供凭证(如用户名与密码)。

完成验证后生成一次性或短期有效的认证票据,同时在服务端建立该用户的单点登录会话。

CAS Client

CAS Client 部署在各受保护的应用或服务端,负责与 CAS Server 协同实现登录流程。

其主要职责包括:检测用户访问是否具备登录态;

在无登录态时将用户重定向至 CAS Server 进行认证;

接收 CAS Server 返回的票据并向 CAS Server 发起票据校验以获取用户身份;

在校验通过后,为本地应用建立会话或映射用户信息。

浏览器

浏览器作为用户端的中介,承担重定向和票据传递的角色。

典型流程为:用户在浏览器中访问某一 CAS Client 托管的应用。

若无本地会话,CAS Client 将浏览器,重定向到 CAS Server 的认证页面。

用户在浏览器上完成认证后,CAS Server 通过浏览器将认证票据。

通常作为 URL 参数或 Cookie,回传给原始 CAS Client。

 

单点登录流程

完整流程,如下:

SSO单点登录原理详解(图文全面总结)-mikechen

用户访问系统A
      │
      ▼
系统A发现未登录
      │
      ▼
跳转 CAS Server
      │
      ▼
用户登录
      │
      ▼
CAS Server生成 TGC
      │
      ▼
返回 Service Ticket
      │
      ▼
系统A验证 Ticket
      │
      ▼
用户成功登录
      │
      ▼
访问系统B
      │
CAS检测已登录
      │
直接签发 Ticket
      │
      ▼
用户直接访问系统B

评论交流
    说说你的看法