分布式是大型架构核心,下面我详解单点登录解决方案@mikechen
单点登录
单点登录:(Single Sign-On,简称SSO)是一种身份验证机制。
允许用户使用一组凭据(例如用户名和密码)登录多个应用程序或系统,而无需在每个应用中重复登录。

SSO 常用于企业系统、云服务和跨平台应用中。
SSO 的核心优势包括:用户便利性:减少密码疲劳,用户只需记住一个凭据。
安全性提升:集中管理身份验证,减少分散的弱密码风险。
效率:加速登录过程,降低支持成本。
合规性:便于审计和访问控制。
单点登录原理
单点登录,可以简单抽象为三个角色:

用户(User):浏览器或 App。
业务系统(App):A 系统、B 系统、管理后台等。
统一认证中心(Auth / SSO Server):唯一负责“登录”和“签发凭证”的服务。
基本思路:
统一认证中心维护“登录态”(如 Session、Token)。
各业务系统自身不保存用户名密码逻辑,只负责:
发现本系统没有登录态时,把用户跳转到认证中心;
拿着认证中心给的“票据 / Token”去验证;
验证通过后,在本系统里建立本地会话(如本系统自己的 Session / Token)。
只要所有系统都信任同一个认证中心,且票据可验证且防伪,就实现了单点登录。
单点登录方案
业界公认的主流 SSO 协议主要有这几种:

OAuth 2.0 + OpenID Connect(OIDC)
OAuth2 本身偏授权,OpenID Connect 在 OAuth2 之上补上“身份认证”。
两者组合已经成为 Web / 移动 / API 时代最流行的 SSO 技术栈。
典型场景:网站/APP 用“微信登录”“Google 登录”、企业自建 IdP + 各业务系统统一登录等。
CAS(Central Authentication Service)
一种较早、专门为 Web SSO 设计的协议。
国内很多早期校园网、OA 使用 CAS 3.0,仍然常见但热度相对低于 SAML/OIDC。
SAML 2.0
企业内部、B2B 场景里最经典的 SSO 协议,被很多人视为企业级 SSO 的“金标准”。
以 XML 的 Assertion 形式在 IdP 与 SP 之间传递认证信息,适合 Web、门户、OA 等老牌信息系统。
面向互联网、移动端、第三方接入:OAuth2 + OIDC 几乎是默认选型。