单点登录(SSO)与单例登录(Single Login)学习笔记
1. 单点登录(SSO)
1.1 单点登录的定义
单点登录(Single Sign-On, SSO)是一种认证机制,允许用户使用一个账户登录多个相互信任的应用系统,从而在多个系统之间实现单一的登录和认证。
1.2 单点登录的工作原理
单点登录的基本原理是通过一个中央认证服务器(CAS)来进行用户认证,并在用户成功登录后生成一个认证凭据(如Token或Cookie),其他应用系统可以通过验证该凭据来实现登录。
1.3 单点登录的实现方式
1.3.1 基于Cookie的SSO
- 用户访问应用系统A,系统A将用户重定向到中央认证服务器(CAS)。
- 用户在CAS上进行认证,成功后生成一个Cookie,并将用户重定向回系统A,系统A记录用户已登录。
- 用户访问应用系统B,系统B检查到用户未登录,将用户重定向到CAS。
- CAS检查到用户已登录,直接将用户重定向回系统B,系统B记录用户已登录。
1.3.2 基于Token的SSO
- 用户访问应用系统A,系统A将用户重定向到中央认证服务器(CAS)。
- 用户在CAS上进行认证,成功后生成一个Token,并将用户重定向回系统A,系统A记录用户已登录。
- 用户访问应用系统B,系统B检查到用户未登录,将用户重定向到CAS。
- CAS检查到用户已登录,生成Token并将用户重定向回系统B,系统B记录用户已登录。
1.4 单点登录的优缺点
优点
- 用户体验好:用户只需登录一次,即可访问多个系统。
- 安全性高:集中管理用户认证信息,减少密码泄露风险。
- 易于管理:集中管理用户账户和权限。
缺点
- 实现复杂:需要配置和维护中央认证服务器。
- 单点故障:中央认证服务器故障会影响所有系统的登录功能。
2. 单例登录(Single Login)
2.1 单例登录的定义
单例登录(Single Login)是一种认证机制,确保同一用户在同一时间只能在一个地方登录。如果用户在另一个地方尝试登录,系统会自动将之前的登录状态注销。
2.2 单例登录的工作原理
单例登录的基本原理是通过在服务器端维护用户的唯一登录状态。如果同一用户在不同地方进行登录,系统会检查并更新用户的登录状态,使得之前的登录状态失效。
2.3 单例登录的实现方式
2.3.1 基于Session的单例登录
- 用户登录系统,服务器在Session中记录用户的登录状态,并生成Session ID。
- 用户访问系统时,服务器检查Session ID是否有效。
- 用户在另一个地方登录,服务器生成新的Session ID,并更新用户的登录状态。
- 之前的Session ID失效,用户在之前的地方访问系统时会被要求重新登录。
2.3.2 基于Token的单例登录
- 用户登录系统,服务器生成Token,并在数据库中记录用户的登录状态。
- 用户访问系统时,服务器检查Token是否有效。
- 用户在另一个地方登录,服务器生成新的Token,并更新数据库中的登录状态。
- 之前的Token失效,用户在之前的地方访问系统时会被要求重新登录。
2.4 单例登录的优缺点
优点
- 提高安全性:防止同一账户在多个地方同时登录,减少账户被盗用的风险。
- 简化管理:确保用户的唯一登录状态,便于系统管理。
缺点
- 用户体验差:用户在不同地方登录时需要频繁重新登录。
- 实现复杂:需要在服务器端维护和更新用户的登录状态。
3. 单点登录与单例登录的比较
特性 | 单点登录(SSO) | 单例登录(Single Login) |
---|---|---|
定义 | 一个账户登录多个系统 | 同一用户在同一时间只能在一个地方登录 |
工作原理 | 通过中央认证服务器进行用户认证 | 维护用户的唯一登录状态 |
实现方式 | 基于Cookie、Token等 | 基于Session、Token等 |
优点 | 用户体验好,安全性高,易于管理 | 提高安全性,简化管理 |
缺点 | 实现复杂,单点故障 | 用户体验差,实现复杂 |
应用场景 | 多系统集成,统一认证管理 | 提高账户安全性,防止账户被盗用 |