CAS SSO 4.0.x 用户数据库验证
发布日期:2021-06-29 12:51:45 浏览次数:2 分类:技术文章

本文共 3650 字,大约阅读时间需要 12 分钟。

转载地址:

1、概述

单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 耶鲁大学(yale)开发的单点登录(Single Sign On)系统称为CAS(Central Authentication Service)被设计成一个独立的Web应用程序(cas.war)。 CAS在2004年12月成为Jasig项目,所以也叫JA-SIG CAS。

本文中服务器版本基于4.0.0版本,对应的客户端版本为3.3.3;
官网:

2、CAS 原理和协议

从结构上看,CAS 包含两个部分: CAS Server 和 CAS Client。CAS Server 需要独立部署,主要负责对用户的认证工作;CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server。

这里写图片描述
上面是 CAS 最基本的协议过程:
CAS Client 与受保护的客户端应用部署在一起,以 Filter 方式保护受保护的资源。对于访问受保护资源的每个 Web 请求,CAS Client 会分析该请求的 Http 请求中是否包含 Service Ticket,如果没有,则说明当前用户尚未登录,于是将请求重定向到指定好的 CAS Server 登录地址,并传递 Service (也就是要访问的目的资源地址),以便登录成功过后转回该地址。用户在第 3 步中输入认证信息,如果登录成功,CAS Server 随机产生一个相当长度、唯一、不可伪造的 Service Ticket,并缓存以待将来验证,之后系统自动重定向到 Service 所在地址,并为客户端浏览器设置一个 Ticket Granted Cookie(TGC),CAS Client 在拿到 Service 和新产生的 Ticket 过后,在第 5,6 步中与 CAS Server 进行身份合适,以确保 Service Ticket 的合法性。
在该协议中,所有与 CAS 的交互均采用 SSL 协议,确保,ST 和 TGC 的安全性。协议工作过程中会有 2 次重定向的过程,但是 CAS Client 与 CAS Server 之间进行 Ticket 验证的过程对于用户是透明的。
另外,CAS 协议中还提供了 Proxy (代理)模式,以适应更加高级、复杂的应用场景,具体介绍可以参考 CAS 官方网站上的相关文档。

3、环境

  • Tomcat 8.x 本文中安装目录为: D:\tool\apache-tomcat-8.0.21
  • JDK 8 本文中安装目录为: D:\tool\Java\jdk1.8.0_45
  • CAS Server版本: cas-server-4.0.0
  • CAS Client版本: cas-client-3.3.3
    关于CAS SSO的证书配置以及简单的验证可以到博主之前的博文 :

4、CAS Server 用户认证定制

首先,打开D:\tool\apache-tomcat-8.0.21\webapps\cas\WEB-INFdeployerConfigContext.xml

注释掉默认的用户验证,注释的代码如下:

添加JDBC验证方式如下:

找到bean的id为authenticationManager做以下修改.

根据上述配置,我们需要在D:\apache-tomcat-8.0.21\webapps\cas\WEB-INF\lib中加入c3p0-0.9.1.2.jar包、MySQL-connector-java-5.1.21.jar包和cas-server-support-jdbc-4.0.0.jar包。

5、CAS Client 配置

org.jasig.cas.client.session.SingleSignOutHttpSessionListener
CAS Single Sign Out Filter
org.jasig.cas.client.session.SingleSignOutFilter
CAS Authentication Filter
org.jasig.cas.client.authentication.AuthenticationFilter
casServerLoginUrl
https://localhost:8443/cas/login
serverName
http://localhost:8080
CAS Validation Filter
org.jasig.cas.client.validation.Cas10TicketValidationFilter
casServerUrlPrefix
https://localhost:8443/cas
serverName
http://localhost:8080
redirectAfterValidation
true
CAS HttpServletRequest Wrapper Filter
org.jasig.cas.client.util.HttpServletRequestWrapperFilter
CAS Assertion Thread Local Filter
org.jasig.cas.client.util.AssertionThreadLocalFilter
CAS Single Sign Out Filter
/*
CAS Authentication Filter
/*
CAS Validation Filter
/*
CAS HttpServletRequest Wrapper Filter
/*
CAS Assertion Thread Local Filter
/*

转载地址:https://carlzone.blog.csdn.net/article/details/51729739 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:CAS SSO 4.0.x 返回更多用户信息
下一篇:Guava functional -- Predicate

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月06日 03时14分52秒