点击关注公众号,实用技术文章及时了解

1. 概述

1.1. 什么是SSO?

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

1.2. 什么是CAS?

随着SSO技术的流行,相关产品也比较多,其中CAS就是一套解决方案,CAS(Central Authentication Service)中文翻译为统一身份认证服务或中央身份服务,它由服务端和客户端组成,实现SSO,并且容易进行企业应用的集成。

CAS是Yale大学(耶鲁)发起的一个开源项目,旨在为web应用系统提供一种可靠的单点登录方法,CAS在2004年12月正式成为JA-SIG的一个项目。

官网:https://www.apereo.org/projects/cas

CAS具有以下的特点:

  • 开源的企业级单点登录解决方案

  • CAS Server为需要独立部署的web应用

  • CAS Client支持非常多的客户端(这里指单点登录系统中的各个web应用),包括 Java、.Net 、ISAPI、Php、Perl、uPortal、Acegi、Ruby、VBScript等客户端

有了CAS,我们的系统架构就演变成下面这样的:

从架构上可以看出,CAS包含两个部分:CAS Server和CAS Client.

  • CAS Server需要独立部署,主要负责对用户的认证工作,CAS Client负责处理

  • 对客户端受保护资源的访问请求,需要登录,重定向到CAS Server。

下面,我们一步步搭建CAS实现SSO.

1.3. 开发环境要求

Jdk1.8+ maven3.6 idea tomcat9.0+ windows10

2. CAS Server服务器端

2.1. CAS服务器端软件包下载

  • 下载版本为5.3

下载服务器的overlay地址: https://github.com/apereo/cas-overlay-template/tree/5.3

压缩包:cas-overlay-template-5.3.zip

解压好后用命令:build.cmd package

然后用编译的目录查看war包:

2.2. 服务器端的基本部署和测试

将war包放到tomcat的webapp中,然后启动tomcat

访问地址:http://localhost:8080/cas 或者 http://localhost:8080/cas/login

默认用户名和密码在\webapps\cas\WEB-INF\classes\application.properties里面 用户名:casuser 密码:Mellon

CAS服务端启动成功

2.3. CAS Server服务器配置

2.3.1 去除https认证

CAS默认使用的是HTTPS协议,如果使用HTTPS协议需要SSL安全证书(需向特定的机构申请和购买)。如果对安全要求不高或是在开发测试阶段,可使用HTTP协议。我们这里讲解通过修改配置,让CAS使用HTTP协议。

修改CAS服务端配置文件:

\cas\WEB-INF\classes\application.properties里添加如下内容:

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

\cas\WEB-INF\classes\services目录下的HTTPSandIMAPS-10000001.json修改内容如下:

"serviceId" : "^(https|http|imaps)://.*"

3. CAS Client客户端配置(自己项目)

Pom文件的依赖即pom.xml

<dependency>
<groupId>net.unicon.cas</groupId>
<artifactId>cas-client-autoconfig-support</artifactId>
<version>2.1.0-GA</version>
</dependency>

application.yml配置文件

客户端1

server:port: 9010
cas:server-url-prefix: http://localhost:8080/casserver-login-url: http://localhost:8080/cas/loginclient-host-url: http://localhost:9010validation-type: cas3

注:启动类追加开启CAS的注解@EnableCasClient

项目中新建一个测试类

iimport io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@Api(description = "SSO-CAS的测试")
public class TestController {@GetMapping("/test1")public String test1(){return "test1....";}
}

客户端2

server:port: 9011
cas:server-url-prefix: http://localhost:8080/casserver-login-url: http://localhost:8080/cas/loginclient-host-url: http://localhost:9011validation-type: cas3

注:启动类追加开启CAS的注解@EnableCasClient

项目中新建一个测试类

import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@Api(description = "SSO-CAS的测试")
public class TestController {@GetMapping("/test2")public String test1(){return "test2....";}
}

客户端1,客户端2和cas服务器搭建好之后,接下来我们进行测试:

1.首先启动tomcat服务器中的CAS Server。

2.分别启动客户端1和客户端2,然后在浏览器地址栏输入客户端1的地址http://localhost:9010/test1

在不登录的状态,在浏览器的地址栏继续输入客户端2的地址:http://localhost:9011/test2

当我们在其中一个登录界面登录账号后(假设登录客户端2)就会跳转到登陆后的界面,如下图:

我们再次在浏览器窗口重新输入客户端1,http://localhost:9010/test1,或者在刚刚输入客户端页面重新刷新,不用登录即可进入页面,如下图:

以上就是单点登录的测试。

●【练手项目】基于SpringBoot的ERP系统,自带进销存+财务+生产功能

●分享一套基于SpringBoot和Vue的企业级中后台开源项目,代码很规范!

●能挣钱的,开源 SpringBoot 商城系统,功能超全,超漂亮!

PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。点“在看”支持我们吧!

基于CAS实现SSO单点登录相关推荐

  1. cas跨域单点登录原理_基于CAS的SSO单点登录-实现ajax跨域访问的自动登录

    先补课,以下网址可以把CAS环境搭起来. [问题背景]两个系统的整合就不说了,简单来说就是网页放在NginX上,但是ajax调用tomcat的API获取数据,其中tomcat段用CAS做身份认证.具体 ...

  2. 学习CAS实现SSO单点登录

    学习CAS实现SSO单点登录 网上找了几篇比较详细的教程,在这记录一下: 原理: CAS实现SSO单点登录原理 教程: 1.CAS实现单点登录(SSO)经典完整教程 2.SSO之CAS单点登录实例演示 ...

  3. 前后端分离基于Oauth2的SSO单点登录怎样做?

    一.说明 单点登录顾名思义就是在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统,免除多次登录的烦恼:本文主要介绍跨域间的 前后端分离 项目怎样实现单点登录,并且与 非前后端分离 的差 ...

  4. 框架CAS实现SSO单点登录功能

    1. 概述 1.1. 什么是SSO? 单点登录( Single Sign-On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要 登录一 ...

  5. Liferay门户与CAS实现SSO单点登录

    http://blog.csdn.net/yang_19790212/article/details/6635778 1.1 准备工作 1.1.1  安装JDK1.6.0.20 JAVA 1.6.0以 ...

  6. CAS实现SSO单点登录-CAS Server搭建

    最近公司连续接了三四个单点登录集成的项目,由我们公司提供CAS Server端的,也有需要我们把Client与其他公司提供的Server端对接的,我负责把我们公司的一个Client与另外一个公司提供的 ...

  7. CAS实现SSO单点登录原理介绍

    一.结构体系 从结构体系看, CAS 包括两部分: CAS Server 和 CAS Client . 1. CAS Server CAS Server 负责完成对用户的认证工作 , 需要独立部署 , ...

  8. spring + shiro + cas 实现sso单点登录

    sso-shiro-cas spring下使用shiro+cas配置单点登录,多个系统之间的访问,每次只需要登录一次,项目源码 系统模块说明 cas: 单点登录模块,这里直接拿的是cas的项目改了点样 ...

  9. 基于cookie的SSO单点登录系统

    利用COOKIE实现单点登录功能 近期公司要求帮一个项目实现单点登录功能,在综合考量下决定采用cookie实现,大概的流程如下图所: 转载于:https://www.cnblogs.com/bugge ...

最新文章

  1. 第五届新疆ACM H-虚无的后缀
  2. 使用Kubernetes里的job计算圆周率后2000位
  3. Java8新特性--CompletableFuture
  4. fb 4.7英文版 显示行数
  5. java 随机生成图,Java中的快速实值随机生成器
  6. python特征选择的过程_【来点干货】机器学习中常用的特征选择方法及非常详细的Python实例...
  7. 小学生都开始学Python了,你还不抓紧提升技术?
  8. Zabbix监控和分布式部署实施方案
  9. 零售连锁专卖信息化解决方案简介之一
  10. 常用位操作以及相关原理
  11. 【工控】脉冲当量怎么算?
  12. 钢琴乐谱怎么看?学习五线谱及其口诀
  13. Ubuntu硬盘分区和挂载
  14. 怎么做科研你懂吗?道翰天琼认知智能机器人平台API接口大脑为您揭秘。
  15. 安全管理体系升级 迈动互联获得ISO国际认证
  16. Auto CAD 2020安装教程附安装包下载-详细教程
  17. 游戏用户隐私协议《贪吃鱼进化》
  18. Cyclone V LAB ALM结构
  19. Docker概述与安装
  20. linux怎么运行dat文件,dat文件扩展名,dat文件怎么打开?

热门文章

  1. 首次亮相!法拉第未来公布FF 91内饰图:贾跃亭心血没白费
  2. 小米真香产品被友商怼:只有USB2.0接口 怎么播高码率的视频?
  3. 防不胜防!微信借钱语音确认仍被骗:我可真是太难了
  4. 一套房钱就可以做一个品牌的电子烟,让罗永浩们再赚一波快钱?
  5. 百度HR发布招聘信息要求“热爱小米文化”?百度回应:冒充的
  6. 男性加入防晒大军 购买遮阳伞比例同比增长23.54%
  7. 华为P30 Pro外观无悬念:双曲面水滴屏 屏占比超高
  8. 厉害了!春节不打烊年货30分钟即买即送 饿了么新上线650多家超市
  9. 软件自动化测试面试三部曲:第三是经验,第二是技术,第一是...
  10. python自动化测试框架有哪几种_Python自动化测试-Unittest单元测试框架详解