1. 概述
CAS(Central Authentication Service)中央认证服务,一种独立开放指令协议,CAS是耶鲁大学发起的一个开源项目,旨在为Web应用系统提供一种可靠的单点登录方法。
特点如下:
开源的企业级单点登录解决方案
- CAS Server为需要独立部署的Web应用
- CAS Client支持非常多的客户端(单点登录系统中各个Web应用)
- CAS属于Apache2.0许可证,允许代码修改,再发布
CAS主要包括两部分,CAS Server和CAS Client,CAS Server需要独立部署,主要负责对用户的认证工作,CAS Client负责处理对客户端受保护资源的访问请求,需要登录时,重定向到CAS Server
术语
TGT(Ticket Granting Ticket):是用户登录后生成的票根,包含用户的认证身份,有效期等
TGC(Ticket Granted Cookie):是存储在Cookie中的一段数据,类似于会话ID,用户与CAS Server进行交互时,帮助用户找到对应的TGT
ST(Service Ticket):是CAS Server使用TGT签发的一张一次性票据,CAS Client使用ST与CAS Server进行交互,以获取用户的验证状态
2. 搭建CAS Server
2.1. 环境依赖
JDK1.8
Maven3.6.3
Tomcat9.0
2.2. 导入CAS Server项目
从GitHub地址下载5.3版本的CAS代码,这是因为5.3版本是使用maven构建的,将下载的项目导入idea中,待下载完所有依赖后,在项目目录结构上会出现overlays目录

2.3. 制作本地密钥库
由于CAS Server默认使用HTTPS进行访问,要求我们提供一个密钥库,可以使用Java自带的密钥和证书管理工具keytool制作本地密钥库,在CMD命令提示符中输入以下命令keytool -genkey -alias casserver -keyalg RSA -keystore E:\File\caskey\casserver.keystore

记住此次输入的密码,后面会用到,名字和姓氏输入的域名后面作为CAS访问的域名
使用export子命令导出证书
keytool -export -trustcacerts -alias casserver -file E:\File\caskey\cas.cer -keystore E:\File\caskey\casserver.keystore

使用import子命令导入证书
keytool -import -trustcacerts -alias casserver -file E:\File\caskey\cas.cer -keystore “D:\Java\jdk1.8.0_291\jre\lib\security\cacerts”

注意后面的路径为jdk的证书库路径,此处的口令为changeit
2.4. 覆盖CAS Server原配置
在项目下新建目录src/main/resources
将刚才生成的casserver.keystore密钥复制到此目录下,并将目录overlays/org.apereo.cas.cas-server-webapp-tomcat-5.3.16/WEB-INF/classes下的application.properties复制到此目录下,修改配置文件中配置信息
server.ssl.key-store=classpath:casserver.keystore
server.ssl.key-store-password=123456
server.ssl.key-password=123456
在IDEA的Terminal窗口输入mvn spring-boot:run就可以运行此项目,当启动日志中出现READY图标表示启动成功,在浏览器输入地址https://www.xlhj.com:8443/cas,当出现登录界面表示程序成功运行,默认登录名和密码为casuser/Mellon

2.5. 登录信息配置进数据库
首先在pom.xml文件中添加如下依赖
<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-jdbc</artifactId>
<version>${cas.version}</version>
</dependency>

本文详细介绍了CAS(Central Authentication Service)中央认证服务的搭建过程,包括CASServer的环境配置、密钥库制作、数据库登录信息配置,以及CASClient的创建、依赖引入和配置。通过实例展示了如何实现基于HTTPS的单点登录功能,涉及Spring Boot、Maven、Tomcat、MySQL等技术。

4410

被折叠的 条评论
为什么被折叠?



