H__D  

CAS 介绍

  CAS(Central Authentication Service)是一个开源的单点登录(SSO)解决方案,旨在为多个应用程序提供统一的身份验证服务。它允许用户在一个地方登录,并在多个应用程序之间共享会话信息,从而简化用户的登录体验和提高安全性。

  官网:https://github.com/apereo/cas

CAS 服务的主要特性

  1. 单点登录(SSO): 用户只需登录一次,即可访问多个应用程序。
  2. 多种认证方式: 支持用户名/密码、LDAP、数据库、OAuth、SAML 等多种认证方式。
  3. 可扩展性: 提供丰富的扩展点,可以根据需要定制。
  4. 安全性: 提供多种安全机制,如双因素认证、票据加密等。
  5. 开源社区支持: 由 Apereo 基金会维护,拥有活跃的开源社区。

安装环境准备

  0、阅读:READMEmld

  1、准备Java的JDK,本例使用的是JDK 1.8

CAS 安装

  由于本例JDK是1.8,所以CAS使用 5.3 版本,在高的版本需要升级JDK

  安装前阅读项目:README.md 文件

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包,安装前阅读项目:README.md 文件

     

3、使用自带脚本生成密钥

  此步骤也可以自己手动创建密钥,参考:【Java】使用JDK自带工具生成密钥对 - H__D - 博客园

  切换到项目目录,打开命令窗口,脚本文件(windows:build.cmd ;linux:build.sh)

  命令:.\build.cmd gencert

  

   在cas的配置目录  /etc/cas中,可以找到对应证书

  

  (可选)根据提示,可以将转换密钥库格式

  命令:keytool -importkeystore -srckeystore \etc\cas\thekeystore -destkeystore \etc\cas\thekeystore -deststoretype pkcs12

  

   

 4、使用自带脚本启动项目

  启动命令:.\build.cmd run   

  开发中,可以使用启动命令.\build.cmd bootrun   

  

4. 使用浏览器访问

  地址:https://localhost:8443/cas/

  默认用户可以在 项目目录\target\cas\WEB-INF\classes\application.properties 找到(用户:casuser,密码:Mellon)

  cas.authn.accept.users=casuser::Mellon

   

  证书情况

  

5. 修改配置

  在项目中新建目录 src/main/resources, 从target/war/work/cas-server-webapp-tomcat的WEB-INF\classes目录下拷贝application.properties,log4j2.xml文件

  或者也可以解压cas.war,在其中找到文件

   在application.properties中 修改默认用户  cas.authn.accept.users=admin::123456

  

CAS启动

情况一:无证书启动

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. 打包启动

  使用脚本启动,启动命令:.\build.cmd run

  浏览器访问地址:http://localhost:8443/cas/

  

   使用对应的账号密码即可登录

情况二:tomcat启动

  准备tomcat,本例使用的是tomcat 9 参考:【Linux】Tomcat安装及一个服务器配置多个Tomcat - H__D - 博客园

有证书的情况

  将证书放到配置目录  tomcat目录/conf 中,

  配置https证书

复制代码
    <!-- RSA 格式证书 -->
<!--     <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true"
           maxParameterCount="1000"
           >
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="conf\thekeystore.old"
                         certificateKeystorePassword="changeit" type="RSA" />
        </SSLHostConfig>
    </Connector> -->

<!-- <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true"
           maxParameterCount="1000"
           >
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="E:\etc\cas\thekeystore.old"
                         certificateKeystorePassword="changeit" type="RSA" />
        </SSLHostConfig>
    </Connector> -->

    <!-- PKCS12 格式证书 -->
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="conf\thekeystore"
                         certificateKeystorePassword="changeit"/>
        </SSLHostConfig>
    </Connector>

   <!--  <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="E:\etc\cas\thekeystore"
                         certificateKeystorePassword="changeit"/>
        </SSLHostConfig>
    </Connector> -->
    
View Code
复制代码

  正常启动tomcat即可,使用 https://localhost:8443/cas 访问

 证书的情况

  正常启动tomcat即可,使用 http://localhost:8080/cas 访问

项目自带脚本build.cmd

  linux系统使用脚本 build.sh

  命令帮助:build.cmd help

  运行项目命令:build.cmd run 

  README.md 解释

复制代码
下面是对 CAS Overlay Template 的解释。这是一个用于搭建和运行最新版本 CAS 服务器的通用 WAR overlay 模板。这个模板可以作为本地 CAS WAR overlay 的起点。

### 版本

```xml
<cas.version>5.3.x</cas.version>
```
- 这个模板使用 CAS 版本 5.3.x。

### 要求

- 需要 JDK 1.8 及以上版本。

### 配置

- `etc` 目录包含需要复制到 `/etc/cas/config` 的配置文件和目录。

### 构建

- 查看可用的构建命令:
  ```bash
  ./build.sh help
  ```

- 打包最终的 web 应用程序:
  ```bash
  ./build.sh package
  ```

- 更新 `SNAPSHOT` 版本:
  ```bash
  ./build.sh package -U
  ```

### 部署

- 创建一个名为 `thekeystore` 的密钥库文件在 `/etc/cas` 目录下。使用密码 `changeit` 作为密钥库和密钥/证书条目的密码。
- 确保密钥库中包含服务器的密钥和证书。

成功部署后,通过以下方法可以访问 CAS:

- `http://cas.server.name:8080/cas`
- `https://cas.server.name:8443/cas`

### 可执行 WAR

- 作为可执行 WAR 运行 CAS web 应用程序:
  ```bash
  ./build.sh run
  ```

### Spring Boot

- 通过 Spring Boot 作为可执行 WAR 运行 CAS web 应用程序。这在开发和测试期间非常有用:
  ```bash
  ./build.sh bootrun
  ```

### 警告

- 使用这种部署方法时要小心。`bootRun` 并不是为已经可执行的 WAR 工件设计的,比如 CAS 服务器 web 应用程序。这种模式 **仅在没有其他依赖项** 并且 `cas-server-webapp` 是唯一存在的模块时有效。更多信息请参见 [这个问题](https://github.com/spring-projects/spring-boot/issues/8320)。

### Spring Boot 应用服务器选择

- 在 `pom.xml` 中有一个 `app.server` 属性,可以用来选择 Spring Boot 应用服务器。
- 默认值是 `-tomcat`,但也支持 `-jetty` 和 `-undertow`。
- 如果你想将 CAS 部署到你选择的外部应用服务器,可以将其设置为空值。

```xml
<app.server>-tomcat</app.server>
```

### Windows 构建

- 如果你在 Windows 上构建,请尝试使用 `build.cmd` 而不是 `build.sh`。参数类似,但使用方法如下:
  ```bash
  build.cmd help
  ```

### 外部部署

- 将生成的 `target/cas.war` 部署到你选择的 servlet 容器中。

### 命令行 Shell

- 调用 CAS 命令行 Shell。要查看命令列表,可以不使用任何参数或使用 `-h`。要进入交互式 shell,请使用 `-sh`。
  ```bash
  ./build.sh cli
  ```

这个模板提供了一个快速入门的方式,使你能够快速搭建和运行 CAS 服务器,并根据需要进行定制和配置。如果你有其他问题或需要进一步的帮助,请随时告诉我!
View Code
复制代码

 

 

参考:https://blog.csdn.net/wangwenke2003/article/details/80348998

参考:https://www.cnblogs.com/wuyongyin/p/16034502.html

参考:https://www.jb51.net/program/315428xsz.htm

 

posted on   H__D  阅读(302)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
· 数据并发安全校验处理工具类
 
点击右上角即可分享
微信分享提示