单点登录系统CAS服务端部署与配置

什么是单点登录?

单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

我们目前的系统存在诸多子系统,而这些子系统是分别部署在不同的服务器中,那么使用传统方式的session是无法解决的,我们需要使用相关的单点登录技术来解决。

什么是CAS

CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点:

  • 开源的企业级单点登录解决方案。
  • CAS Server 为需要独立部署的 Web 应用。
  • CAS Client 支持非常多的客户端(这里指单点登录系统中的各个 Web 应用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。

下图是 CAS 最基本的协议过程:

单点登录系统CAS服务端部署与配置_第1张图片

从结构上看,CAS 包含两个部分: CAS Server CAS ClientCAS Server 需要独立部署,主要负责对用户的认证工作;CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server

SSO单点登录访问流程主要有以下步骤:

  1. 访问服务:SSO客户端发送请求访问应用系统提供的服务资源。
  2. 定向认证:SSO客户端会重定向用户请求到SSO服务器。
  3. 用户认证:用户身份认证。
  4. 发放票据:SSO服务器会产生一个随机的Service Ticket
  5. 验证票据:SSO服务器验证票据Service Ticket的合法性,验证通过后,允许客户端访问服务。
  6. 传输用户信息:SSO服务器验证票据通过后,传输用户认证结果信息给客户端。

CAS服务端部署:

环境准备:

CentOS-7-x86_64-Minimal-1908 、apache-maven-3.5.4-bin 、apache-tomcat-8.5.46 、cas-overlay-template-5.1.zip

java version  1.8.0_221

首先解压cas-overlay-template-5.1.zip 到指定目录[ -d参数表示安装到指定目录下,与tar包不同的是,zip的解压的目标路径在前]。

unzip -d /usr/local/software/ cas-overlay-template-5.1.zip

若提示没有unzip,则通过以下命令安装unzip

yum install unzip

解压完成后进入目录,执行 

[root@master cas-5.1]# ./build.sh run
-bash: ./build.sh: Permission denied
[root@master cas-5.1]# 

若出现这种情况表明执行权限不够,我们查看操作权限

单点登录系统CAS服务端部署与配置_第2张图片

发现确实没有执行权限,加权:

chmod +x build.sh

单点登录系统CAS服务端部署与配置_第3张图片

加权成功,再次运行  ./build.sh run    该过程需要些时间。。。

完成后会在当前目录下出现一个target目录,进入该目录,会发现有个cas.war文件。

复制cas.war文件到Tomcat目录下的webapps目录下,然后开启Tomcat。(因为我的机器上之前已经开启一个tomcat7了,而cas5.x版本需要Tomcat8,再次我将Tomcat8的服务端口改为了8081,在浏览器中访问)

http://192.168.139.100:8081/cas/login

单点登录系统CAS服务端部署与配置_第4张图片

默认用户名密码为:casuser    Mellon

单点登录系统CAS服务端部署与配置_第5张图片

 

CAS服务端配置

首先修改默认登录账号和密码

首先进入到CAS部署的目录下,依次进入到以下目录下,

tomcat8-cas/webapps/cas/WEB-INF/classes

打开改目录下的application.properties文件

修改默认用户名和密码

单点登录系统CAS服务端部署与配置_第6张图片

保存退出,重新启动tomcat

再次试用默认  casuser  Mellon登录后提示认证信息无效

用admin登录成功

去除https认证

首先继续在aplication.properties文件汇中加入如下配置

cas.tgc.secure=false
cas.serviceRegistry.initFromJson=true

单点登录系统CAS服务端部署与配置_第7张图片

其次在进入到 tomcat8-cas/webapps/cas/WEB-INF/classes/services目录下

单点登录系统CAS服务端部署与配置_第8张图片

编辑HTTPSandIMAPS-10000001.json文件

单点登录系统CAS服务端部署与配置_第9张图片

修改serviceId的内容为(为了支持http协议的客户端,我在里面加了个http,代表所有URL符合这个正则表达式的服务都会被当成已经注册的服务

保存退出,重新启动tomcat

 

你可能感兴趣的:(JavaWeb,CAS,单点登录)