CAS 介绍
CAS(Central Authentication Service)是一个开源的单点登录(SSO)解决方案,旨在为多个应用程序提供统一的身份验证服务。它允许用户在一个地方登录,并在多个应用程序之间共享会话信息,从而简化用户的登录体验和提高安全性。
官网:https://github.com/apereo/cas
CAS 服务的主要特性
- 单点登录(SSO): 用户只需登录一次,即可访问多个应用程序。
- 多种认证方式: 支持用户名/密码、LDAP、数据库、OAuth、SAML 等多种认证方式。
- 可扩展性: 提供丰富的扩展点,可以根据需要定制。
- 安全性: 提供多种安全机制,如双因素认证、票据加密等。
- 开源社区支持: 由 Apereo 基金会维护,拥有活跃的开源社区。
安装环境准备
1、准备Java的JDK,本例使用的是JDK 1.8
2、准备密钥,参考:【Java】使用JDK自带工具生成密钥对 - H__D - 博客园
3、准备tomcat,本例使用的是tomcat 9 参考:【Linux】Tomcat安装及一个服务器配置多个Tomcat - H__D - 博客园
4、将密钥库复制到tomcat的config目录下
5、编辑tomcat中conf/server.xml文件,增加以下内容
<!-- <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" maxParameterCount="1000" > <SSLHostConfig> <Certificate certificateKeystoreFile="conf/localhost-rsa.jks" certificateKeystorePassword="changeit" type="RSA" /> </SSLHostConfig> </Connector> --> <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" maxParameterCount="1000" > <SSLHostConfig> <Certificate certificateKeystoreFile="conf/casServer.keystore" certificateKeystorePassword="123456" type="RSA" /> </SSLHostConfig> </Connector>
6、测试运行tomcat,浏览器访问 http://localhost:8080/,https://localhost:8443/
可以看到2个地址都能访问
CAS 安装
由于本例JDK是1.8,所以CAS使用 5.3 版本,在高的版本需要升级JDK
1. 下载cas5.3服务端
cas5.3服务端下载:https://github.com/apereo/cas-overlay-template/tree/5.3
cas-overlay-template项目是可覆盖的模板项目,Overlay的意思就是覆盖文件,即如果是配置文件则覆盖相同目录中的文件,如果是类文件则编译后覆盖相同包中的类class文件,如果是新文件则添加到相应的目录中。
2. 使用idea项目,并打包
目录如下,使用maven package命令打包,在target目录下得到war包
3. 复制car.war包到tomcat的webapps目录,并启动tomcat
4. 使用浏览器访问
地址:https://localhost:8443/cas/
默认用户可以在webapps\cas\WEB-INF\classes\application.properties 找到(用户:casuser,密码:Mellon)
cas.authn.accept.users=casuser::Mellon
5. 修改配置
在项目中新建目录 src/main/resources, 从tomcat的webapps目录下拷贝application.properties + log4j2.xml文件
webapps\cas\WEB-INF\classes\application.properties + log4j2.xml
在application.properties中 修改默认用户 cas.authn.accept.users=admin::123456
重新打包生成cas.war包,然后放到tomcat,测试发现默认用户已生效
CAS cas.war启动
情况一
有证书的情况下,将证书放到配置目录 file:/etc/cas/thekeystore 中,即使你的证书名字thekeystore
在target目录中,使用命令:java -jar cas.war 启动服务
情况二
1. 修改配置
在application.properties中,将下面4个默认配置注释掉#server.ssl.key-store=file:/etc/cas/thekeystore #server.ssl.key-store-password=changeit #server.ssl.key-password=changeit #server.tomcat.protocol-header-https-value=https
2. 打包启动
在target目录中,使用命令:java -jar cas.war 启动服务
浏览器访问地址:http://localhost:8443/cas/
使用对应的账号密码即可登录
参考:https://blog.csdn.net/wangwenke2003/article/details/80348998
参考:https://www.cnblogs.com/wuyongyin/p/16034502.html
参考:https://www.jb51.net/program/315428xsz.htm