1. 概述

1.1. 什么是SSO?

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

管网地址:https://www.apereo.org/projects/cas

1.2. 什么是CAS?

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

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

CAS provides enterprise single sign-on service for the Web:

  • An open and well-documented protocol
  • An open-source Java server component
  • Pluggable authentication support (LDAP, database, X.509, 2-factor)
  • Support for multiple protocols (CAS, SAML, OAuth, OpenID)
  • A library of clients for Java, .Net, PHP, Perl, Apache, uPortal, and others
  • Integrates with uPortal, BlueSocket, TikiWiki, Mule, Liferay, Moodle and others
  • Community documentation and implementation support
  • An extensive community of adopters

CAS具有以下的特点:

  • 一个开放且有据可查的协议
  • 一个开源的 Java 服务器组件
  • 可插拔身份验证支持(LDAP、数据库、X.509、2-factor)
  • 支持多种协议(CAS、SAML、OAuth、OpenID)
  • 用于 Java、.Net、PHP、Perl、Apache、uPortal等的客户端库
  • 与uPortal、BlueSocket、TikiWiki、Mule、Liferay、Moodle 等集成
  • 社区文档和实施支持
  • 广泛的采用者社区

有了CAS,我们的系统架构就演变成下面这样的:手工绘制,看把。。。

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

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

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

2. CAS Server服务器端

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

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

切换分支下载源码,目前最新源码是6.4版本的。我下载的是5.3 ,6.4编译是gradle,不是maven,

下载后idea打开build新的war包

然后放进tomcat中,启动项目

启动成功浏览器输入地址打开  http://localhost:8080/cas 者 http://localhost:8080/cas/login

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

2.3. CAS Server服务器配置

2.3.1 去除https认证

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

修改CAS服务端配置文件:

增加

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

然后再次修改 D:\apache-tomcat-8.5.31\webapps\cas\WEB-INF\classes\services路径下的HTTPSandIMAPS-10000001.json文件

修改serviceid

"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>

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

第三:application.yml配置文件

客户端1

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

项目写个测试类

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: 8011
cas:server-url-prefix: http://localhost:8080/casserver-login-url: http://localhost:8080/cas/loginclient-host-url: http://localhost:8011validation-type: cas3

测试类

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.首先重新启动tomcat服务器中的CAS Server。

2.分别启动客户端1和客户端2,然后在浏览器地址栏输入客户端1的地址http://localhost:8010/test1和客户端2的地址,跳出登陆页面

当我们在其中一个登录界面登录账号后(假设登录客户端2)就会跳转到登陆后的界面,既test2字符串页面。。同理test1登陆后跳转test1页面。。以上就是单点登录的测试。

框架CAS实现SSO单点登录功能相关推荐

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

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

  2. 基于CAS实现SSO单点登录

    点击关注公众号,实用技术文章及时了解 1. 概述 1.1. 什么是SSO? 单点登录( Single Sign-On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使 ...

  3. 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以 ...

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

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

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

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

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

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

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

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

  8. 重学 Java 设计模式:实战装饰器模式(SSO单点登录功能扩展,增加拦截用户访问方法范围场景)

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获!

  9. php 单点登录实现代码,PHP简单实现单点登录功能示例

    1.准备两个虚拟域名 127.0.0.1  www.openpoor.com 127.0.0.1  www.myspace.com 2.在openpoor的根目录下创建以下文件 index.PHP 1 ...

最新文章

  1. log4j配置不生效
  2. POJ - 1509 Glass Beads
  3. KubeNode:阿里巴巴云原生 容器基础设施运维实践
  4. yum安装源是出现报冲突错误,解决办法
  5. SAP UI5 testFLPService - local run will start mock server
  6. Android下载apk异常java.net.SocketTimeoutException: timeout解决办法
  7. P4900 食堂(数学式子推导)
  8. numpy中的方差、协方差、相关系数
  9. 有答案了!一张图告诉你到底学Python还是Java?你怎么选?
  10. SDK 可能是数百万 iPhone 上的特洛伊木马
  11. 音频的相MATLAB,音频处理后频率响应和相位响应问题
  12. 项目实战-1读取记事本中的文件,写入到slice切片中。
  13. 系统自带的3D模型控件
  14. C++编程导出XVID编码的AVI视频
  15. html老师祝福语,给大学老师的祝福语
  16. 2022高频面试题之css篇
  17. 108.【RabbitsMQ】
  18. 我看世界杯——来自一个“假”球迷视角
  19. 嵌入式软件工程师就业方向有哪些呢?
  20. 岗位po是什么意思_po主是什么意思

热门文章

  1. Charles开启抓包后,浏览器访问网页提示不信任的证书
  2. 学习3dmax一直没进步?找到这几个突破口
  3. 详解自下而上构建知识图谱全过程(转载)
  4. python结巴分词去掉停用词、标点符号、虚词_NLP自然语言处理入门-- 文本预处理Pre-processing...
  5. 17个拉伸小运动帮你缓解久坐疲劳
  6. 计算机和电脑键盘进水怎么办,电脑键盘进水怎么办 键盘进水解决方法【详解】...
  7. python写作_学会Python实现学写作
  8. java是干嘛的(JAVA能干嘛)
  9. 快速搭建离线地图开发环境(局域网地图开发工具)离线地图二次开发
  10. 物联网卡是怎么开通的?