单点登录技术方案详解(图文全面总结)

单点登录是大型架构核心,下面我详解单点登录技术方案@mikechen

单点登录

单点登录(Single Sign-On,SSO)旨在为用户提供一次认证、多处访问的便捷与安全体验。

单点登录技术方案详解(图文全面总结)-mikechen

 

 

基于 Cookie/Session 的同域 SSO

核心思想:在统一认证中心登录一次,颁发会话 Cookie 或 Token。

单点登录技术方案详解(图文全面总结)-mikechen

多个同域或子域应用共享(例如统一 *.mikechen.cc)。

典型实现:

统一认证站点(Auth Server)+ 业务应用.

认证成功后在顶级域写入加密 Cookie,业务系统通过 Cookie 向认证中心换取用户信息。

优点:实现简单、对旧系统兼容好,前后端改造量小。

缺点:强依赖浏览器 Cookie,同域/子域场景友好,但跨域、跨组织支持差。

对移动端、第三方 SaaS 支持不足。

适用场景:老系统集成、内部门户、同一顶级域下的多个 Web 应用。

 

基于 Token(JWT/OAuth2 )的分布式 SSO

用户认证后由认证服务颁发访问令牌(如 JWT)。

单点登录技术方案详解(图文全面总结)-mikechen

各子系统验证令牌的有效性(可通过公钥验证或调用授权服务器的 introspection 接口)。

常与 OAuth2 / OpenID Connect (OIDC)标准结合,用于 Web、移动与 API 场景。

优点:跨域与跨平台支持良好、无状态或可扩展为无状态验证、支持细粒度授权与第三方接入。标准化程度高,生态成熟。

缺点:令牌管理与刷新、撤销较复杂。

适用场景:新系统建设、云原生、微服务、对接第三方 SaaS、App 与 Web 统一登录。

 

基于中央认证服务器(CAS)的 SSO

CAS(Central Authentication Service):它通过一个独立的认证中心来分发“票据”。

单点登录技术方案详解(图文全面总结)-mikechen

核心逻辑:

TGC (Ticket Granting Cookie):存在于 SSO 服务器域下的 Cookie,证明你已登录 SSO。

ST (Service Ticket):通过 URL 参数传递给业务系统的临时票据。

流程描述:

用户访问 App,未登录,重定向到 SSO 中心。

SSO 登录成功,创建 SSO 会话,并带上 ST 重定向回 App。

App 拿到 ST 后,在后端向 SSO 发起校验。

校验成功,App 自行建立局部 Session。

优点:协议严谨,安全性高(票据在后端校验,阅后即焚)。

缺点:逻辑较重,需要业务系统集成 CAS 客户端。

mikechen睿哥

10年+一线大厂技术经验,大厂资深面试官,就职于阿里、淘宝等一线大厂。

评论交流
    说说你的看法