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

匆匆过客 提交于 2020-01-04 00:48:12

在开始之前先介绍一下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

参数说明打开cmd,输入结果:
在这里插入图片描述

2.导出证书

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

在这里插入图片描述在这里插入图片描述在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错误.
在这里插入图片描述
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-overlay-template搭建cas服务器

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

在这里插入图片描述
使用步骤:

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

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

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

打开项目后
在这里插入图片描述

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

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

在这里插入图片描述

3.将overlays目录下的WEB-INF/classes/目录中的application.properties文件复制到src/main/resources中
在这里插入图片描述

4.将 证书 C:/opt/keys/lcs_cas.keystore 拷贝到resources 目录
在这里插入图片描述

5.修改application.properties文件
在这里插入图片描述
此处为静态的用户名,密码
在这里插入图片描述

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

如图显示就是启动成功了
在这里插入图片描述
7.浏览器输入 https://www.sso.com:8443/cas/login

在这里插入图片描述

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

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

在这里插入图片描述

输入静态的账号,密码

在这里插入图片描述

登录成功后页面

在这里插入图片描述

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!