框架CAS实现SSO单点登录功能
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单点登录功能相关推荐
- 学习CAS实现SSO单点登录
学习CAS实现SSO单点登录 网上找了几篇比较详细的教程,在这记录一下: 原理: CAS实现SSO单点登录原理 教程: 1.CAS实现单点登录(SSO)经典完整教程 2.SSO之CAS单点登录实例演示 ...
- 基于CAS实现SSO单点登录
点击关注公众号,实用技术文章及时了解 1. 概述 1.1. 什么是SSO? 单点登录( Single Sign-On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使 ...
- 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以 ...
- spring + shiro + cas 实现sso单点登录
sso-shiro-cas spring下使用shiro+cas配置单点登录,多个系统之间的访问,每次只需要登录一次,项目源码 系统模块说明 cas: 单点登录模块,这里直接拿的是cas的项目改了点样 ...
- CAS实现SSO单点登录-CAS Server搭建
最近公司连续接了三四个单点登录集成的项目,由我们公司提供CAS Server端的,也有需要我们把Client与其他公司提供的Server端对接的,我负责把我们公司的一个Client与另外一个公司提供的 ...
- CAS实现SSO单点登录原理介绍
一.结构体系 从结构体系看, CAS 包括两部分: CAS Server 和 CAS Client . 1. CAS Server CAS Server 负责完成对用户的认证工作 , 需要独立部署 , ...
- cas跨域单点登录原理_基于CAS的SSO单点登录-实现ajax跨域访问的自动登录
先补课,以下网址可以把CAS环境搭起来. [问题背景]两个系统的整合就不说了,简单来说就是网页放在NginX上,但是ajax调用tomcat的API获取数据,其中tomcat段用CAS做身份认证.具体 ...
- 重学 Java 设计模式:实战装饰器模式(SSO单点登录功能扩展,增加拦截用户访问方法范围场景)
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获!
- php 单点登录实现代码,PHP简单实现单点登录功能示例
1.准备两个虚拟域名 127.0.0.1 www.openpoor.com 127.0.0.1 www.myspace.com 2.在openpoor的根目录下创建以下文件 index.PHP 1 ...
最新文章
- log4j配置不生效
- POJ - 1509 Glass Beads
- KubeNode:阿里巴巴云原生 容器基础设施运维实践
- yum安装源是出现报冲突错误,解决办法
- SAP UI5 testFLPService - local run will start mock server
- Android下载apk异常java.net.SocketTimeoutException: timeout解决办法
- P4900 食堂(数学式子推导)
- numpy中的方差、协方差、相关系数
- 有答案了!一张图告诉你到底学Python还是Java?你怎么选?
- SDK 可能是数百万 iPhone 上的特洛伊木马
- 音频的相MATLAB,音频处理后频率响应和相位响应问题
- 项目实战-1读取记事本中的文件,写入到slice切片中。
- 系统自带的3D模型控件
- C++编程导出XVID编码的AVI视频
- html老师祝福语,给大学老师的祝福语
- 2022高频面试题之css篇
- 108.【RabbitsMQ】
- 我看世界杯——来自一个“假”球迷视角
- 嵌入式软件工程师就业方向有哪些呢?
- 岗位po是什么意思_po主是什么意思
热门文章
- Charles开启抓包后,浏览器访问网页提示不信任的证书
- 学习3dmax一直没进步?找到这几个突破口
- 详解自下而上构建知识图谱全过程(转载)
- python结巴分词去掉停用词、标点符号、虚词_NLP自然语言处理入门-- 文本预处理Pre-processing...
- 17个拉伸小运动帮你缓解久坐疲劳
- 计算机和电脑键盘进水怎么办,电脑键盘进水怎么办 键盘进水解决方法【详解】...
- python写作_学会Python实现学写作
- java是干嘛的(JAVA能干嘛)
- 快速搭建离线地图开发环境(局域网地图开发工具)离线地图二次开发
- 物联网卡是怎么开通的?