### 讲一下项目中单点登录是如何实现的?底层原理是什么?
**在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统。**
### SSO 体系中的角色有三种
1、 User (多个)
2、 Web 应用(多个)
3、 SSO 认证中心( 1 个 )
**SSO 仅仅是一种架构,一种设计,而 CAS 则是实现 SSO 的一种手段。两者是抽象与具体的关系**
从结构上看,CAS 包含两个部分:
CAS Server 和 CAS Client。
CAS Server 需要独立部署,主要负责处理对用户的认证工作;
CAS Client 主要负责处理对客户端受保护资源的访问请求,
1、需要登录时,到 CAS Server,如果登录成功,CAS Server 随机产生一个相当长度、唯一、不可伪造的 Service Ticket(Ticket英文翻译过来是 入场券的意思,我们通常将Service Ticket称之为令牌)
2、其他系统不提供登录入口,只接受认证中心的间接授权。间接授权通过Service Ticket实现,Service Ticket作为参数发送给各个子系统,
3、在接下来的跳转过程中,CAS Client 会分析该 Http 请求中是否包Service Ticket,验证Service Ticket是否有效,有效则创建局部会话,无效则跳转到sso认证中心进行登录。