一、什么是单点登录(single sign on)SSO:
1. 应用于:分布式系统
1)分布式系统,分布式系统中有很多子系统,每个子系统分别在不同的服务器上运行
2)传统式系统:一个系统只在一台服务器上运行(使用传统方式的session)
2. 为什么需要应用它:
1)在以前的传统式系统中,用户只需要通过一次的登录注册,即可进入系统中的各个模块进行直接操作,而这些模块是通过当前会话的session获取到用户信息(如用户中心)
2)目前的系统存在诸多子系统,而这些子系统是分别部署在不同的服务器中,当用户访问这些子系统的同时,子系统需要获取到用户的身份才能让他访问。因而需要做到像传统式系统一样只需要登录注册一次,便能直接访问其诸多的子系统,无需用户每次访问其不同的子系统时都需要再次进行登录注册操作,使用单点登录就可以做到,即节省了多次登录注册的操作时间,其子系统又能验证用户的身份信息,保证了系统的安全访问。
3. 作用是:
当一个用户访问分布式系统时,需要通过认证系统(进行登录注册)认证成功之后,在访问其它子系统时无需进行二次认证(通过底层验证是否已经登录,无需跳转到登录页面进行登录)
即用户在认证系统通过身份认证后,其他需要身份认证的子系统通过底层验证可以获取到用户的认证信息(底层验证,用户无需知道),用户无需再次到认证系统进行认证。
4. 下图完整描述:
1)用户第一次访问应用系统1,需要先进行登录,所以要跳到认证系统进行登录认证,认证系统通过用户输入的登录信息访问数据库,认证成功后返回一个票据(cookie)给用户,用户即可访问系统1。
2)当用户访问应用系统2时,系统2通过用户的票据信息与认证系统进行交互,验证用户票据信息,验证成功用户即可访问系统2(底层验证,无需跳到认证系统进行验证),否则需要跳到认证系统(登录注册中心)进行登录。
3)当用户访问应用系统3时,同样需要认证系统先验证票据信息,用户才能通过验证访问系统3。
二、什么是CAS
1. CAS:解决单点登录的一种方案(方法)
2. CAS结构和作用:
(1)CAS Client(CAS客户端):
1)是什么:web系统(用户中心、购物车等需要身份认证的子系统,在图中表示为应用系统1、2、3)
2) 负责处理对客户