🍃嗦嗦单点登录(SSO)

214 阅读2分钟

🤔核心概念:什么是单点登录?

单点登录(Single Sign-On, SSO)是一种【身份验证机制】,允许用户通过【一次登录】即可访问【多个相互信任的应用系统】。它的核心价值在于:

  1. 【一次】登录,【处处】访问:用户只需登录一次,即可访问所有有权限的系统。一般是一个公司下的多个网站间会使用到。
  2. 集中认证:认证过程由专门的认证服务处理,各应用系统无需单独实现登录逻辑
  3. 会话管理:认证服务维护全局会话,各子系统维护局部会话

🤖工作原理

  1. 用户访问A系统,未登录则跳转至SSO认证中心;
  2. 登录成功后,SSO返回加密Token(如JWT)并存储到Cookie(同域)或LocalStorage(跨域);
  3. 用户访问B系统时,携带Token到SSO验证,通过后即自动登录。

🧩关键组件

  1. SSO认证中心:负责用户认证,颁发令牌
  2. 客户端应用:依赖SSO进行认证的业务系统
  3. 令牌(Token):通常是JWT,包含用户身份信息
  4. 会话管理:全局会话(SSO级别)和局部会话(应用级别)

⚠️技术选型与需要注意的内容

  1. 选择合适的协议

    • 企业内部系统:SAML(成熟稳定)
    • 互联网应用:OAuth2 + OpenID Connect(现代标准)
    • 简单场景:JWT自包含令牌
  2. 安全注意事项

    • 使用HTTPS传输
    • 令牌设置合理有效期
    • 实现令牌撤销机制
    • 防范CSRF攻击
  3. 会话同步

    • 全局注销时通知所有子系统
    • 定期检查令牌有效性

🐼历史与发展

SSO概念起源于1990年代,随着企业IT系统增多而产生需求。关键里程碑:

  • 2001年:SAML 1.0发布(XML-based)
  • 2005年:SAML 2.0成为企业SSO标准
  • 2012年:OAuth2成为互联网应用授权标准
  • 2014年:OpenID Connect在OAuth2基础上添加认证层

最后

单点登录(SSO)是"一次登录,处处访问"的身份验证机制,核心是通过中央认证服务(如SAML/OAuth2)颁发安全令牌(如JWT),让用户在多个互信系统间无缝通行。

关键技术点包括:令牌管理、会话同步(全局/局部)、跨域安全(HTTPS/防CSRF),其演进从企业级SAML【会比较复杂】到互联网友好的OAuth2+OpenID Connect,本质是平衡用户体验与系统安全。