CAS新版本(6.0-RC4)使用介绍(一)

2023-05-16

  1. 新版本CAS介绍(6..0-RC4)

 

    1. 简介

Central Authentication Service (CAS),通常称为CAS。 CAS是一种针对Web的企业多语言单点登录解决方案,并尝试成为您的身份验证和授权需求的综合平台。

下面是CAS(6.0.X)官方的一段简述:

  • Spring Webflow/Spring Boot Java server component.
  • 可拔插认证支持 (LDAP, Database, X.509, SPNEGO, JAAS, JWT, RADIUS, MongoDb, etc)
  • 多种协议支持 (CAS, SAML, WS-Federation, OAuth2, OpenID, OpenID Connect, REST)
  • 通过各种提供商支持多因素身份验证 (Duo Security, FIDO U2F, YubiKey, Google Authenticator, Microsoft Azure, Authy etc)
  • 支持外部提供者的委托认证,例如: ADFS, Facebook, Twitter, SAML2 IdPs, etc.
  • Built-in support for password management, notifications, terms of use and impersonation.
  • Support for attribute release including user consent.
  • 实时监控和跟踪应用程序行为,统计信息和日志。
  • 用特定的认证策略管理和注册客户端应用程序和服务。
  • 跨平台的客户端支持 (Java, .Net, PHP, Perl, Apache, etc).
  • Integrations with InCommon, Box, Office365, ServiceNow, Salesforce, Workday, WebAdvisor, Drupal, Blackboard, Moodle, Google Apps, etc.

相较于老版本CAS(4.1.7),新版本CAS增加了更丰富的功能支持。

以下将分别从CAS的构建、单点登录(登出)、高可用架构、密码管理、OAuth认证、服务管理、个性化登录界面、多因素认证等方面进行详细介绍。

 

    1. CAS服务构建

目前CAS官方发布的为源码,需要由个人进行构建生成war包。CAS服务可以通过两种方式进行构建:一种是通过CAS源码进行编译、打包;一种是通过官方提供的cas-overlay-template工程来构建war包。由于目前CAS的支持功能较多,针对不同需求需要添加不同的support包,建议采用官方建议的cas-overlay-template方式进行构建。旧版本CAS采用Maven进行管理,新版本已经采用了Gradle进行管理。因此,构建新版本的CAS时,需要添加Gradle的支持。本文档采用cas-overlay-template进行构建,此种构建方式的优势在于通过配置文件增添support包、制定CAS版本即可进行构建,无需自主下载CAS源码。

 

注意:

  • CAS新版本(6.0.x+)使用的是JDK11进行构建。因此,生产使用时也需要注意版权问题,可以考虑采用Open JDK 11代替。本例中使用的jdk版本为:openjdk version "11.0.2"。
  • 本例采用的数据库为MySQL5.7,在使用数据库配置连接数据库时,数据库连接方言需要使用如下配置:org.hibernate.dialect.MySQL57InnoDBDialect,否则可能出现报错。

 

      1. 工程构建
  1. CAS相关代码均可在https://github.com/apereo进行下载。CAS-Overlay-Template工程目前无release版本,可以直接下载master分支代码。

git clone https://github.com/apereo/cas-overlay-template.git

 

  1. 由于国内网络受限,因此在工程下载后,需要调整仓库地址,用以进行仓库构建。修改

cas-overlay-template-master/build.gradle文件,增加阿里云Maven仓库地址:

 

 

  1. 修改cas-overlay-template-master/gradle.properties文件,指定构建CAS服务的版本:

 

  1. 导入工程,本例中采用eclipse,因此需要安装gradle相关插件:

 

 

 

  1. 导入工程后,访问cas-overlay-template-master/src/main/resources/application.properties文件,修改CAS服务配置信息(若没有配置文件,可以自主创建或者先生成war包,再从war对应路径拷贝)。本例中主要配置,均在此文件中进行配置,也可以针对不同的配置拆分成不同的配置文件进行单独配置。

 

 

  1. 通过gradle tasks面板进行服务构建。若该页签无任务,可以尝试刷新。

 

 

  1. 构建完成的工程,将会生成在cas-overlay-template-master/build/libs路径下。

 

 

  1. 将此工程发布至Tomcat,即可通过web界面进行访问,http://ip:port/cas。

 

 

 

    1. 单点登录(登出)

单点登录、单点登出是CAS的核心功能,主要用于用户的认证。CAS默认提供从本地json获取用户认证数据,默认用户名及密码为casuser/Mellon。目前认证的方式支持LDAP、Database、X.509、SPNEGO、JAAS、JWT、RADIUS、MongoDb等多种方式。本例中,将采用MySQL数据库作为认证数据存储的方式。因此,需要创建数据库、数据库表,数据库表至少包含username、password或类似功能字段。用户表中password字段支持多种加密方式,包含:NONE、DEFAULT、STANDARD、BCRYPT、SCRYPT、PBKDF2、自定义(需要额外编码)等多种加密方式。本例采用DEFAULT MD5对password进行加密。

 

      1. 工作原理

CAS的认知支持多种协议,包含:CAS, SAML, WS-Federation, OAuth2, OpenID, OpenID Connect, REST等。默认采用的为CAS协议,目前CAS协议有1.0、2.0、3.0三个版本。本例将以最常用的CAS 2.0协议为基础进行原理的介绍。

 

以上为官方提供的单点登录时序图,分为以下三种场景:应用首次登录、应用再次登录、应用2首次登录。主要原理是通过url的重定向、cookie、session等功能来实现用户认证。

关于前后分离应用的单点登录,其认证方式与独立服务认证方式略有不同,需要通过validate来进行用户认证,调用过程参考下图:

 

 

 

关于单点登出,默认CAS服务也支持单点登出。在某一个应用登出后,会将CAS Server端的TGT删除,同时CAS Server会向对应TGT验证的其他应用发起logout请求。整理需要注意,CAS Server仅会发送logout请求,应用拦截到logout后,需要自己完善用户的logout逻辑,用以实现用户登出。其原理参考下图:

 

 

      1. 工程构建
  1. 使用MySQL作为认证数据源,需要在cas-overlay-template-master/build.gradle文件中增加以下配置信息,用以支持数据库认证。

 

 

  1. 修改cas-overlay-template-master/src/main/resources/application.properties文件中增加以下配置信息,用以支持数据库认证以及字段加密。

 

其中cas.authn.jdbc.query[0].sql属性用以配置通过用户名查询密码的sql,cas.authn.jdbc.query[0].fieldPassword属性用以指定密码字段。cas.authn.jdbc.query[0].passwordEncoder相关属性用以指定密码字段的加密方式。

 

  1. 通过gradle tasks面板构建并发布服务。访问CAS服务界面,可以通过MySQL数据库中保存的用户名和密码进行登录。

 

 

      1. 单点登录(登出)配置

 

  1. CAS的服务接入单点登录,具有权限限制,此处样例已经设置接入授权。关于接入授权将会在【服务管理】章节详细说明。目前仅确保tomcat发布路径webapps/cas/WEB-INF/classes/services/下,具有HTTPSandIMAPS-10000001.json此文件(若没有可以创建),文件内容如下:

 

 

  1. 通过配置CAS的客户端,能够实现应用服务的单点登录功能。主要配置属性包含应用服务自身登录、登出url,CAS服务的登录、登出rul。不同应用可能配置方式不同,参考样例如下:

 

 

      1. 单点登录样例

 

  1. APP1登录:

 

 

  1. APP1登录成功:

 

 

  1. APP2登录,直接进入登录界面:

 

 

      1. 单点登出样例
  1. 参考上例结束,APP1、APP2均已登录,直接进入APP1登录界面,选择登出:

 

 

  1. 在APP2已登录界面进行刷新:

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CAS新版本(6.0-RC4)使用介绍(一) 的相关文章

  • windows禁用rc4 算法

    公司的Windows服务器被扫描出安全漏洞 SSL TLS 受诫礼 BAR MITZVAH 漏洞 CVE 2015 2808 和安全厂家沟通 xff0c 漏洞是由rc4算法 xff0c 引起的 xff01 把服务里面的rc4算法禁用就行了
  • 轻松搭建CAS 5.x系列(6)-在CAS Server上增加OAuth2.0协议

    概述说明 CAS Server默认搭建出来 xff0c 客户端程序只能按照CAS自身的协议接入 CAS的强大在于 xff0c 有官方的插件 xff0c 可以支持其他的协议 本章节就让CAS Server怎么增加OAuth2 0的登录协议 安
  • cas下linux虚拟机在线扩容磁盘

    cas下linux在线扩容磁盘 xff1a 1 修改虚拟机配置 xff0c 扩大需要扩容的磁盘 xff0c 然后以root进入系统 xff0c lsblk查看扩容的空间 2 使用growpart扩展分区 root 64 zgy growpa
  • apereo CAS Server 6.2.x 和 6.4.x 的部署

    代码地址 xff0c 分别下载6 2和6 4两个版本 https github com apereo cas overlay template 版本地址 xff1a https github com apereo cas overlay t
  • cas 6.2 Incompatible because this component declares an API of a component compatible with Java 11

    最近用到cas6 2的项目 配置基本按下面的来 其中配置jdk什么的都是百度的 使用cas overlay template 6 2服务部署到整合cas client 爱学习的老王的博客 CSDN博客 cas overlay 但是导包出现国
  • cas服务端动态servers

    一 什么是servers cas的分为服务端和客户端 xff0c 如果客户端要使用cas需要把自己的域名或ip注册到cas服务端才可以使用 默认的servers为静态的 src main resources services HTTPSan
  • cas 配置相关

    默认配置 span class token comment span span class token comment CAS Cloud Bus Configuration span span class token comment sp
  • OKHttpUtils使用介绍

    一 xff0c 概述 在上一篇blog的末尾讲到了OKHttp使用时的缺点 xff0c 和对OKHttp封装的必要性 在github上有很多对OKHttp封装的优秀框架 xff0c 其首推的就是hongyang大神的OKHttpUtils
  • cas-overlay-template-5.3 集成Oauth2.0

    第一步 在pom xml 文件添加oauth2 0协议支持
  • 单点登录CAS学习(二):使用IDEA搭建cas-overlay-5.3工程

    上一篇对于单点登陆进行了初步了解 我们做单点登录应用的时候 会有两个场景 单点登录的服务端 单点登录的客户端 指各个应用系统 从本篇开始的系列文章将分别介绍服务端的工程如何搭建 客户端如何改造以适用于单点登录 首先从服务端开始 我们往往需要
  • 实战Java高并发程序设计(第二版)-chp4锁

    多线程引用 需要维护并行数据结构间的一致性状态 需要为线程的切换和调度花费时间 参考 实战Java高并发程序设计 第二版 Unsafe类详解 java cas算法实现乐观锁 4 1 合理的锁性能 4 1 1 减少锁持有时间 原有的程序 对整
  • 悲观锁synchronized、乐观锁CAS

    1 悲观锁 乐观锁 悲观锁是一种思想 在多线程竞争下 加锁 释放锁会导致比较多的上下文切换和调度延时 引起性能问题 一个线程持有锁会导致其它所有需要此锁的线程挂起 如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置 引起性能
  • ABA问题基础及解决

    一 ABA问题的产生 二 AtomicReference原子引用 三 AtomicStampedReference版本号原子引用 四 ABA问题解决 前面的内容之间的关联 CAS gt Unsafe类 gt CAS思想 gt ABA问题 g
  • CAS5.3 服务器集成MySQL8数据库

    MySQL 相关准备 1 安装MySQL8 并安装相关数据库实例 省略一千字 2 新建ucas auth user表 并增加相关用户条记录 DROP TABLE IF EXISTS ucas auth user CREATE TABLE u
  • Spring Security 与 CAS 集成

    任何人都可以在此处粘贴简单的步骤来集成 Spring security 和 CAS 以进行单点登录和单点退出 注意我不需要任何基于角色的访问 我有一个已经与 Spring Security 集成的 Web 应用程序 现在我尝试使用 CAS
  • OpenDJ、OpenAM 和 OpenIAM 是免费软件

    已经使用 OpenDJ 和 OpenAM 的人有什么体验 旧版本似乎可以免费使用 但新版本似乎不能免费使用 它们与现有的商业产品相比如何 它们看起来比使用 OpenLDAP 和 CAS 更好 但看起来并不免费 您可以在下面找到答案 具体取决
  • 如何使用 Devise 将 Rails 应用程序转变为 SSO/CAS 服务器?

    我从一个上一个问题我一直在问错误的问题 我想将我的应用程序变成 CAS 服务器 以便应用程序的管理员可以使用相同的身份验证机制来登录我们为组织开发的其他应用程序 你以前做过这个吗 是否有一个插件可以增加 Devise 充当 CAS 服务器的
  • 单点登录以保护 REST API 和基于 Web 的内部系统

    我需要一些关于如何使用单一身份验证系统保护 REST API 和基于 Web 的内部系统的建议 我正在研究使用的可能性 oAuth 2 0 JA SIG CAS Custom Implementation implement two sep
  • 如何将CAS认证与Spring Security集成?

    我已将 spring security 集成到我的项目中 并且之前使用 hibernate 验证用户详细信息 现在我必须使用 CAS 来完成它 这是我当前的 Spring security xml
  • 在 CAS 中,如果尚未接受协议,如何限制仅访问一项服务?

    有一个要求 用户应该首先接受一些许可协议 存在仅在服务中 以便能够登录所有其他服务 所以流程应该是 用户通过CAS登录 因为他还没有接受协议 所以只能登录serviceS 当他接受serviceA上的协议后 他也可以登录其他服务 Notes

随机推荐

  • 开启SELINUX真的就那么难吗?

    我们都知道Linux的安全性要高于windows xff0c 可是你明白Linux到底比windows的安全性高在哪里吗 xff1f 有人在部署环境的时候 xff0c 开局两件事关防火墙 关Selinux xff0c 请问你把Linux的这
  • SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)

    1 1 Spring Spring是一个开源框架 xff0c Spring 是于 2003 年兴起的一个轻量级的 Java 开发框架 xff0c 由 Rod Johnson 在其著作 Expert One On One J2EE Devel
  • 服务器不支持ipv6,怎么解决

    让服务器开发人员修改到上面的测试ipv6通过为止 如果服务器不会修改怎么办 找专业的人员帮忙 有可能需要购买中转服务 本解决方案的花钱找人帮忙部分有介绍 关于ipv6审核给你点借鉴 此文介绍了一些服务器如何适配ipv6 需要添加aaaa中转
  • VS2015远程连接虚拟机

    目录 一 安装VC Linux exe 二 打开VS 选择新建项目 三 配置VS 四 创建项目 一 安装VC Linux exe 下载地址 xff1a 二 打开VS 选择新建项目 三 配置VS 打开VS xff0c 菜单栏点击工具 gt 选
  • 成都富华力鼎:短视频脚本有哪些类型

    制作短视频 xff0c 一个好的脚本是成功的关键 很多小伙伴没有提前写脚本 xff0c 在拍摄的时候就会遇到各种各样的问题 xff0c 场景不适合 员不适合 临时改内容等等 短视频脚本有哪些类型 1 提纲脚本 提纲脚本 xff1a 应用在纪
  • Android开发-Android 10 的新功能及新特性

    前 言 Google 在去年 xff08 2019年 xff09 3月份首次公布了 Android 10 的测试版 xff0c 然后在去年 5 月份的 Google 年度 I O 开发者大会上展示了 Android 10 系统的几个新的功能
  • asp.net动态切换主题

    C 代码 protected void Page PreInit object sender EventArgs e if Request QueryString 34 theme 34 61 null switch Request Que
  • datatable中button

    function test 34 ruleDataTable2 34 dataTable 34 sAjaxSource 34 dbLinkUrl sqlResultexport 34 fnServerData 34 createShowin
  • 重构——使用多态替换switch

    好吧 xff0c 我这个菜鸟确实是常常在用面向过程的思想在考虑问题 xff0c 在编写程序 现在我已经摈弃了自己对java语言个人的偏见 xff0c 而是用平等公平的态度看待java和C 43 43 他们各有千秋 xff0c 各有乾坤的 好
  • HttpUtil

    package com cmb utils import com fasterxml jackson databind ObjectMapper import org apache http Header import org apache
  • springboot异步请求

    场景 xff1a 用户注册的时候会发送短信和邮件 xff0c 注册成功和发送短信 邮件解耦后会提高响应效率 启动类添加注解 64 EnableAsync 64 SpringBootApplication public class Appli
  • Linux安装Terminator

    大家在使用Linux系统的时候 xff0c 有很大一部分时间都是和系统的终端打交道 时间久了会不会有一种厌烦的感觉呢 xff1f xff08 我是一个始终如一的人 xff0c 怎能厌烦呢 xff1f xff09 x1f604 ubuntu下
  • 安装软件或者依赖包时显示错误:unable to locate package zliblg-dev

    在网上查了很久 xff0c 有人说需要更新一下 sudo apt get update 但是还是不行 xff0c 然后我把依赖包中的英文字母l改为阿拉伯数字1就好了 xff0c 哈哈 xff0c 就是这莫简单
  • ranger命令

    ranger命令 ranger主要用来在终端浏览文件的 使用起来也比较优于平时常用的cd命令 安装 span class token function sudo span span class token function apt get
  • firewalld 和 docker 冲突问题

    造成冲突的主要原因是 xff1a iptables的存在 firewalld 和 iptables 首先 xff0c firewalld 和 iptables 都不是防火墙 xff0c 它们只是防火墙的管理程序 xff0c 真正的防火墙是内
  • Android Studio项目中各目录的图标含义

    对初学安卓的人 xff0c 熟悉Android Studio上的各模块都要花力气 打开团队的一个工程 xff0c 对各目录上显示的图标有圆点 方块 三条柱形等等 xff0c 真的一脸茫然 所以本文记录对工程中的文件图标的含义 xff0c 方
  • base64转换

    String data 61 34 9j 4AAQSkZJRgABAQEAZABkAAD 2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8
  • Android中dispatchDraw分析

    Android中dispatchDraw分析 View中 xff1a public void draw Canvas canvas 1 Draw the background 绘制背景 2 If necessary save the can
  • fastboot flash system.img总失败

    7 0之后 system img会很大 xff0c 有时fastboot会很长时间 xff0c 甚至会报错 xff0c 可以用下面的方法 fastboot flash S 256M system system img
  • CAS新版本(6.0-RC4)使用介绍(一)

    新版本CAS介绍 xff08 6 0 RC4 xff09 简介 Central Authentication Service CAS xff0c 通常称为CAS CAS是一种针对Web的企业多语言单点登录解决方案 xff0c 并尝试成为您的