🤔核心概念:什么是单点登录?
单点登录(Single Sign-On, SSO)是一种【身份验证机制】,允许用户通过【一次登录】即可访问【多个相互信任的应用系统】。它的核心价值在于:
- 【一次】登录,【处处】访问:用户只需登录一次,即可访问所有有权限的系统。一般是一个公司下的多个网站间会使用到。
- 集中认证:认证过程由专门的认证服务处理,各应用系统无需单独实现登录逻辑
- 会话管理:认证服务维护全局会话,各子系统维护局部会话
🤖工作原理
- 用户访问A系统,未登录则跳转至SSO认证中心;
- 登录成功后,SSO返回加密Token(如JWT)并存储到Cookie(同域)或LocalStorage(跨域);
- 用户访问B系统时,携带Token到SSO验证,通过后即自动登录。
🧩关键组件
- SSO认证中心:负责用户认证,颁发令牌
- 客户端应用:依赖SSO进行认证的业务系统
- 令牌(Token):通常是JWT,包含用户身份信息
- 会话管理:全局会话(SSO级别)和局部会话(应用级别)
⚠️技术选型与需要注意的内容
-
选择合适的协议:
- 企业内部系统:SAML(成熟稳定)
- 互联网应用:OAuth2 + OpenID Connect(现代标准)
- 简单场景:JWT自包含令牌
-
安全注意事项:
- 使用HTTPS传输
- 令牌设置合理有效期
- 实现令牌撤销机制
- 防范CSRF攻击
-
会话同步:
- 全局注销时通知所有子系统
- 定期检查令牌有效性
🐼历史与发展
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,本质是平衡用户体验与系统安全。