cas单点登录(5.2)-使用cas-overlay-template搭建cas服务器

在开始之前先介绍一下CAS

官网地址:https://www.apereo.org/
Github地址:https://github.com/apereo/cas

介绍

CAS是Central Authentication Service的缩写,中央认证服务,一种独立开放指令协议。CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法。

特点

  1. 开源的企业级单点登录解决方案。
  2. CAS Server 为需要独立部署的 Web 应用。
  3. CAS Client 支持非常多的客户端(这里指单点登录系统中的各个 Web 应用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。
  4. CAS属于Apache 2.0许可证,允许代码修改,再发布(作为开源或商业软件)。

原理与协议

  1. 用户每次发请请求,CAS Client 会分析请求中是否包含service ticket
  2. 如果没有重定向到指定好的CAS Server登录地址,并传递service(也就是访问的目的资源地址,方便登录成功后转回该地址)
  3. 用户输入认证信息,成功后CAS Server随机生成一个相当长度,唯一,不可伪造的service ticket,并缓存以待将来验证,重定向到service地址
  4. 为客户端设置一个TGC(Ticket Granted Cookie),CAS Client 在拿到Service和新产生的Ticket 过后,在与CAS Server 进行身份合适
    以确保Service Ticket的合法性

(好啦,开始进入正文啦)HTTPS配置

因为CAS要求所有的请求都要在一个安全的通道,所以要配置服务端的https。

1.生成服务器的密匙文件 lcs.keystore

keytool -genkey -alias lcs_cas -keyalg RSA -keysize 2048 -validity 36500 -keystore C:/opt/keys/lcs_cas.keystore

cas单点登录(5.2)-使用cas-overlay-template搭建cas服务器_第1张图片打开cmd,输入结果:
cas单点登录(5.2)-使用cas-overlay-template搭建cas服务器_第2张图片

2.导出证书

keytool -export -alias lcs_cas -storepass 123456 -file C:/opt/keys/lcs_cas.cer -keystore C:/opt/keys/lcs_cas.keystore

cas单点登录(5.2)-使用cas-overlay-template搭建cas服务器_第3张图片在这里插入图片描述在C:/opt/keys文件夹下可以看到

在这里插入图片描述

3.导入证书导入到jdk信任库

查看当前JDK版本,必须是 JDK.1.8 以上

注意
1.原来的 $JAVA_HOME/jre/lib/security/cacerts 文件要先删掉,否则会报出java.io.IOException: Keystore was tampered with, or password was incorrect错误.
cas单点登录(5.2)-使用cas-overlay-template搭建cas服务器_第4张图片
2.如果路径有空格或特殊字符,像我上面一样加上引号.

执行命令

keytool -import -alias wolfcode -keystore C:/“Program Files”/Java/jdk1.8.0_152/jre/lib/security/cacerts -file C:/opt/keys/lcs_cas.cer -trustcacerts

运行结果

cas单点登录(5.2)-使用cas-overlay-template搭建cas服务器_第5张图片

使用cas-overlay-template搭建cas服务器

GitHub地址:https://github.com/apereo/cas

cas单点登录(5.2)-使用cas-overlay-template搭建cas服务器_第6张图片
使用步骤:

1.下载或者克隆cas-overlay-template(version:5.2)项目到本地,用Intellji Idea打开项目,下载依赖时间较长,需耐心等待,建议使用国内的镜像.

有个依赖下载很慢或者下载不了cas-server-webapp-tomcat,建议直接下载之后放到本地仓库对应的目录会快点.

https://mvnrepository.com/artifact/org.apereo.cas/cas-server-webapp-tomcat

打开项目后
cas单点登录(5.2)-使用cas-overlay-template搭建cas服务器_第7张图片

可以将pom.xml里的国外仓库换成国内的镜像

2.在项目中添加src/main/java和src/main/resources目录,并将src/main/java设置为代码文件根目录,将src/main/resources设置为资源文件根目录。

cas单点登录(5.2)-使用cas-overlay-template搭建cas服务器_第8张图片

3.将overlays目录下的WEB-INF/classes/目录中的application.properties文件复制到src/main/resources中
cas单点登录(5.2)-使用cas-overlay-template搭建cas服务器_第9张图片

4.将 证书 C:/opt/keys/lcs_cas.keystore 拷贝到resources 目录
cas单点登录(5.2)-使用cas-overlay-template搭建cas服务器_第10张图片

5.修改application.properties文件

此处为静态的用户名,密码
在这里插入图片描述

6.打开idea命令行,输入命令:build.cmd run

如图显示就是启动成功了
cas单点登录(5.2)-使用cas-overlay-template搭建cas服务器_第11张图片
7.浏览器输入 https://www.lcs.com:8443/cas/login
注:我这边是配置了host文件,如果没有配置host文件的画是https://localhost:8443/cas/login
cas单点登录(5.2)-使用cas-overlay-template搭建cas服务器_第12张图片

不用管,那是因为我们的证书是通过JDK生成的,不是认证机构发布的。

第一次进去会有点慢。跳转完成之后界面。

cas单点登录(5.2)-使用cas-overlay-template搭建cas服务器_第13张图片

输入静态的账号,密码

在这里插入图片描述

登录成功后页面

cas单点登录(5.2)-使用cas-overlay-template搭建cas服务器_第14张图片

你可能感兴趣的:(cas)