1. 环境说明


2. 安装 JDK 1.8


3. 生成证书

为支持 SSO(单点登录,Single Sign On),必须通过 HTTPS 登陆 CAS Server,故需要生成证书并导入到 JRE 中。

3.1. 创建并切换目录
3.2. 使用 Java 自带的 keytool 创建本地密钥库

注意:

3.3. 把密钥库导出成证书文件

查看证书:

3.4. 将创建的证书导入到 Java 证书库

查看 JDK 证书内容:

如果想删除 JDK 证书,那么使用如下命令:

3.5. 将 casServer.crt 和 casServer.keystore 拷贝到 /etc/cas/

4. 构建 CAS

4.1. 下载 cas-overlay-template 5.3
4.2. 添加 Maven 仓库

添加华为和 Sonatype 联合发布的中国官方 Maven 仓库:

pom.xml:

4.3. 集成 LDAP

在 pom.xml 中

后面添加:

4.4. 定制化项目

构建项目:

创建资源目录:

配置资源目录,修改 pom.xml,在 project/build 节点下添加:

将 war 包下的 application.properties 拷贝到资源目录:

修改 application.properties:

在 src/main/resources 目录下创建 services 目录:

将 war 包中的 HTTPSandIMAPS-10000001.json 拷贝到 src/main/resources/services 目录:

将其内容修改为:

在 application.properties 中添加:

4.5. 测试

说明:

  1. 在测试之前先安装 LDAP

在测试机上绑定 host:

4.5.1. 测试 CAS Server

cas_tester.py:

说明:

  1. Python 版本:3.10.6

  2. 依赖包:

    • xmltodict==0.13.0
    • aiohttp==3.8.3
    • uvicorn==0.19.0
    • fastapi==0.85.1
  3. 操作系统:macOS 12.6


5. 部署到 Tomcat

官网下载 Tomcat,我使用的是 9.0.69

将 war 包拷贝到 Tomcat 的 webapps 目录下,比如:

5.1. 配置 SSL

修改 conf/server.xml,添加 Connector:

5.2. 启动

查看日志:

5.3. 关闭

6. 补充

6.1. 认证方式

CAS 除支持 LDAP 认证外,还支持 JDBC 认证、自定义认证、REST 认证。

6.2 常用配置项
6.3. Ticket 的存储

默认情况下,CAS 使用运行时内存存储 Ticket,当 Web 服务重启时,发出的 Ticket 将丢失。CAS 支持将 Ticket 存储到 Redis 中。


Appendix 1 - 用于创建 Ubuntu 虚拟机的 Vagrantfile


参考文档