单点登录是大型架构必备,下面我详解单点登录系统设计@mikechen
单点登录系统
单点登录(Single Sign-On,SSO),旨在为分布式应用环境提供统一认证入口。

核心价值:
统一身份认证;
降低用户操作成本;
集中安全控制;
支撑多系统、多端(Web / App / 小程序)。
单点登录系统设计
SSO 的核心架构,通常由身份提供者、服务提供者等若干关键部分构成。
单点登录系统设计,如下图所示:

SSO 认证中心(Auth Server)
统一登录、身份校验、凭证签发。
用户端(Browser / App)
发起登录请求,携带 Cookie / Token
接入层 / 网关(Nginx / Gateway)
统一入口,登录态拦截与转发
整体流程,如下:
用户请求系统A ↓ 系统A发现未登录 ↓ 跳转 SSO 登录页 ↓ SSO 校验账号密码 ↓ 生成 Token / Ticket ↓ 回跳系统A ↓ 系统A校验凭证 ↓ 建立本地会话
单点登录系统案例

企业内网SSO(基于SAML)
场景:大型企业将若干内部应用接入统一身份平台。
优势为成熟的安全性与企业整合;需做好证书与Assertion生命周期管理。
云服务与API生态(基于OIDC+OAuth2)
场景:面向移动端与微服务的云平台。
移动App通过OIDC完成交互式登录,后端微服务验证Access Token并调用资源服务器。
优势为轻量、跨平台、便于授权粒度控制。
单页面应用(SPA)与共享会话(Cookie+认证网关)
场景:多个前端子域名的SPA共享登录态。
实施:在统一域下通过认证网关处理登录请求,设置跨子域的安全Cookie,或采用中央Token交换机制。
mikechen睿哥
10年+一线大厂架构实战专家,就职于阿里、淘宝等一线大厂,操盘多个亿级大厂核心项目。