概念
1. CAS
CAS(Central Authentication Service,中央认证服务)
耶鲁大学发起、开源的 Web SSO(单点登录) 实现框架。
2. SSO(单点登录)
多个网站程序统一到唯一地址完成身份登录验证。
- 特征:应用间基于Web协议(HTTPS)通信,全局唯一登录入口
- 通俗理解:同一浏览器登录一次认证中心,访问所有信任站点无需重复登录
3. SSO体系三大角色
- User:终端用户(浏览器)
- Web应用(多个业务系统)
- SSO认证中心(唯一)
4. SSO三大核心原则
- 所有账号登录操作统一在SSO认证中心执行;
- 认证中心提供机制,通知各个Web应用当前用户是否已认证;
- 认证中心与全部业务Web应用预先建立信任关系。
两大核心
CAS Server(认证服务端)
- 独立部署的Web程序,唯一认证中心
- 职责:接收账号密码、完成用户身份校验;签发票据(Ticket)、管理全局会话Cookie(TGC)
CAS Client(客户端,嵌入各个业务系统)
- 部署在各个业务Web应用内(一般以过滤器Filter形式实现)
- 职责:拦截受保护资源请求;未登录时,自动将浏览器重定向至CAS Server登录页面
流程
- 用户访问业务系统资源 → CAS Client拦截请求,检测请求中没有
Service Ticket - Client将浏览器重定向到 CAS Server登录地址,并携带当前业务系统地址(Service)
- 用户在CAS服务端输入账号密码完成登录认证
- 登录成功:CAS Server向浏览器写入 TGC(Ticket Granting Cookie)全局会话Cookie
- 生成一次性票据:Service Ticket(ST)
- CAS Server再次重定向浏览器,回到业务系统地址,URL参数带上
Ticket=xxx - 业务系统CAS Client后台发起服务端请求,携带Service地址+Ticket,向CAS Server校验票据合法性
- CAS Server校验票据有效,返回用户身份信息(用户名等)
- 校验通过,业务系统创建本地会话,用户正常访问页面
TGC作用:只要浏览器保留TGC Cookie,后续访问其他接入CAS的系统时,不会再弹出登录页面,自动完成单点登录。
Next: 安装