CSA单点登录的原理解析

CAS5.3单点登录服务端搭建与整合springboot 什么是单点登录 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 SSO是概念,实现SSO需要用到CAS框架 使用cas框架实现单点登陆 有多个不同服务器的web层需要登陆。就要使用cas。在一个web层页面登录,其他页面都不需要登录就能访问 如www.tao... 阅读详情

1、基于Cookie的单点登录的回顾

在这里插入图片描述
基于Cookie的单点登录核心原理:

将用户名密码加密之后存于Cookie中,之后访问网站时在过滤器(filter)中校验用户权限,如果没有权限则从Cookie中取出用户名密码进行登录,让用户从某种意义上觉得只登录了一次。

该方式缺点就是多次传送用户名密码,增加被盗风险,以及不能跨域。同时www.qiandu.com与mail.qiandu.com同时拥有登录逻辑的代码,如果涉及到修改操作,则需要修改两处。

2、统一认证中心方案原理

在生活中我们也有类似的相关生活经验,例如你去食堂吃饭,食堂打饭的阿姨(www.qiandu.com)告诉你,不收现金。并且告诉你,你去门口找换票的(passport.com)换小票。于是你换完票之后,再去找食堂阿姨,食堂阿姨拿着你的票,问门口换票的,这个票是真的吗?换票的说,是真的,于是给你打饭了。

基于上述生活中的场景,我们将基于Cookie的单点登录改良以后的方案如下:

在这里插入图片描述

经过分析,Cookie单点登录认证太过于分散,每个网站都持有一份登陆认证代码。于是我们将认证统一化,形成一个独立的服务。当我们需要登录操作时,则重定向到统一认证中心http://passport.com。于是乎整个流程就如上图所示:

第一步:用户访问www.qiandu.com。过滤器判断用户是否登录,没有登录,则重定向(302)到网站http://passport.com。
第二步:重定向到passport.com,输入用户名密码。passport.com将用户登录的信息记录到服务器的session中。
第三步:passport.com给浏览器发送一个特殊的凭证,浏览器将凭证交给www.qiandu.com,www.qiandu.com则拿着浏览器交给他的凭证去passport.com验证凭证是否有效,从而判断用户是否登录成功。
第四步:登录成功,浏览器与网站之间进行正常的访问。

3、Yelu大学研发的CAS(Central Authentication Server)

下面就以耶鲁大学研发的CAS为分析依据,分析其工作原理。首先看一下最上层的项目部署图:

在这里插入图片描述

部署项目时需要部署一个独立的认证中心(cas.qiandu.com),以及其他N个用户自己的web服务。

认证中心:也就是cas.qiandu.com,即cas-server。用来提供认证服务,由CAS框架提供,用户只需要根据业务实现认证的逻辑即可。

用户web项目:只需要在web.xml中配置几个过滤器,用来保护资源,过滤器也是CAS框架提供了,即cas-client,基本不需要改动可以直接使用。

4、CAS的详细登录流程

在这里插入图片描述

上图是3个登录场景,分别为:第一次访问www.qiandu.com、第二次访问、以及登录状态下第一次访问mail.qiandu.com。

下面就详细说明上图中每个数字标号做了什么,以及相关的请求内容,响应内容。

4.1、第一次访问www.qiandu.com

标号1:用户访问http://www.qiandu.com,经过他的第一个过滤器(cas提供,在web.xml中配置)AuthenticationFilter。

过滤器全称:org.jasig.cas.client.authentication.AuthenticationFilter

主要作用:判断是否登录,如果没有登录则重定向到认证中心。

标号2:www.qiandu.com发现用户没有登录,则返回浏览器重定向地址。

在这里插入图片描述

首先可以看到我们请求www.qiandu.com,之后浏览器返回状态码302,然后让浏览器重定向到cas.qiandu.com并且通过get的方式添加参数service,该参数目的是登录成功之后会要重定向回来,因此需要该参数。并且你会发现,其实server的值就是编码之后的我们请求www.qiandu.com的地址。

标号3:浏览器接收到重定向之后发起重定向,请求cas.qiandu.com。

标号4:认证中心cas.qiandu.com接收到登录请求,返回登陆页面。

在这里插入图片描述

上图就是标号3的请求,以及标号4的响应。请求的URL是标号2返回的URL。之后认证中心就展示登录的页面,等待用户输入用户名密码。

标号5:用户在cas.qiandu.com的login页面输入用户名密码,提交。

标号6:服务器接收到用户名密码,则验证是否有效,验证逻辑可以使用cas-server提供现成的,也可以自己实现。

在这里插入图片描述

上图就是标号5的请求,以及标号6的响应了。当cas.qiandu.com即csa-server认证通过之后,会返回给浏览器302,重定向的地址就是Referer中的service参数对应的值。后边并通过get的方式挟带了一个ticket令牌,这个ticket就是ST(数字3处)。同时会在Cookie中设置一个CASTGC,该cookie是网站cas.qiandu.com的cookie,只有访问这个网站才会携带这个cookie过去。

Cookie中的CASTGC:向cookie中添加该值的目的是当下次访问cas.qiandu.com时,浏览器将Cookie中的TGC携带到服务器,服务器根据这个TGC,查找与之对应的TGT。从而判断用户是否登录过了,是否需要展示登录页面。TGT与TGC的关系就像SESSION与Cookie中SESSIONID的关系。

TGT:Ticket Granted Ticket(俗称大令牌,或者说票根,他可以签发ST)

TGC:Ticket Granted Cookie(cookie中的value),存在Cookie中,根据他可以找到TGT。

ST:Service Ticket (小令牌),是TGT生成的,默认是用一次就生效了。也就是上面数字3处的ticket值。

标号7:浏览器从cas.qiandu.com哪里拿到ticket之后,就根据指示重定向到www.qiandu.com,请求的url就是上面返回的url。

在这里插入图片描述

标号8:www.qiandu.com在过滤器中会取到ticket的值,然后通过http方式调用cas.qiandu.com验证该ticket是否是有效的。

标号9:cas.qiandu.com接收到ticket之后,验证,验证通过返回结果告诉www.qiandu.com该ticket有效。

标号10:www.qiandu.com接收到cas-server的返回,知道了用户合法,展示相关资源到用户浏览器上。

在这里插入图片描述

至此,第一次访问的整个流程结束,其中标号8与标号9的环节是通过代码调用的,并不是浏览器发起,所以没有截取到报文。

4.2、第二次访问www.qiandu.com

上面以及访问过一次了,当第二次访问的时候发生了什么呢?

标号11:用户发起请求,访问www.qiandu.com。会经过cas-client,也就是过滤器,因为第一次访问成功之后www.qiandu.com中会在session中记录用户信息,因此这里直接就通过了,不用验证了。

标号12:用户通过权限验证,浏览器返回正常资源。

4.3、访问mail.qiandu.com

**标号13:**用户在www.qiandu.com正常上网,突然想访问mail.qiandu.com,于是发起访问mail.qiandu.com的请求。

**标号14:**mail.qiandu.com接收到请求,发现第一次访问,于是给他一个重定向的地址,让他去找认证中心登录。

在这里插入图片描述

上图可以看到,用户请求mail.qiandu.com,然后返回给他一个网址,状态302重定向,service参数就是回来的地址。

标号15:浏览器根据14返回的地址,发起重定向,因为之前访问过一次了,因此这次会携带上次返回的Cookie:TGC到认证中心。

标号16:认证中心收到请求,发现TGC对应了一个TGT,于是用TGT签发一个ST,并且返回给浏览器,让他重定向到mail.qiandu.com

在这里插入图片描述

可以发现请求的时候是携带Cookie:CASTGC的,响应的就是一个地址加上TGT签发的ST也就是ticket。

标号17:浏览器根据16返回的网址发起重定向。

标号18:mail.qiandu.com获取ticket去认证中心验证是否有效。

标号19:认证成功,返回在mail.qiandu.com的session中设置登录状态,下次就直接登录。

标号20:认证成功之后就反正用想要访问的资源了。

在这里插入图片描述

CAS框架单点登录原理解析 单点登录:Single Sign On,简称SSO,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。CAS框架:CAS(Central Authentication Service)是实现SSO单点登录的框架。CSA中包括三个:A系统,B系统,CAS认证中心 用户首次登录时流程如下: 1)、用户浏览器访问系统A需登录受限资源,此时进行登录检查,发现未登录,然后进行 阅读详情

相关推荐

带你了解如何分析Jmeter监听器常用图表并定位瓶颈

1.1 Jmeter监听器常用图表 目录 1.1 Jmeter监听器常用图表 1.1-1 查看结果树 1.1-2 汇总报告 1.1-3 集合报告 1.1-4 综合图 1.1-5 断言结果 1.1-6 图形结果 1.1-7 响应时间图 1.2 Jmeter性能瓶颈定位 1.2-1 性能瓶颈产生的原因 1.2-2 性能瓶颈的解决方法 1.2-3 性能瓶颈如何定位 1.1-1 查看结果树 查看结果树:调试利器。可以查看每个请求具体的详情,方便进行测试的比对。有点类似我...

weixin_49029722的博客 4451

CSA实现单点登录原理详解 ,如何判断访问不同域名时用户是否登录

原理图 www.cas.client.com为cas客户端,也就是用户要访问的资源所在,www.cas.server.com为cas服务端,是单点登录的认证中心。 图中各步骤拆解说明: ①:首先用户访问www.cas.client.com,cas客户端收到请求判断用户是否登录。判断过程在AuthenticationFilter过滤器中进行。AuthenticationFilter主要判断用户是否登录,未登录则重定向到登录页面。 那么是如何验证用户是否登录过呢? 如果session中包含“const_cas

Sunny__wei的博客 1936

声品质粗糙度matlab,声品质的应用分析方法

声品质的应用分析方法2016-04-05 09:18:57阅读次数:14198摘要:声品质分析在噪声的主观评价方面已经得到越来越多的应用。本文比较了声品质分析与传统计权声级的区别,并介绍了在声品质分析的实际应用中,针对稳态信号、非稳态信号的几种不同分析方法,以及各分析方法的要求和特点。关键词:声品质,响度,尖锐度,粗糙度,波动度1前言传统评价噪声的方法主要为计权声压级,用以反映声音的大小。但是人耳...

weixin_30767323的博客 2438

CAS单点登录原理解析

推荐阅读 1.SpringBoot 整合篇 2.手写一套迷你版HTTP服务器 3.记住:永远不要在MySQL中使用UTF-8 4.Springboot启动原理解析 1、基于Cookie的单点登录的回顾 基于Cookie的单点登录核心原理: 将用户名密码加密之后存于Cookie中,之后访问网站时在过滤器(filter)中校验用户权限,如果没有权限则从Cookie中取出用户名...

Java笔记虾 6516

揭秘N531:这颗不到2毛钱的国产栅极驱动器,如何成为功率开关的“全能搭档”?

本文深入解析了国产栅极驱动器N531如何成为功率开关的“全能搭档”。针对MOSFET和IGBT等电压驱动器件在实际应用中需要大电流实现快速开关的核心痛点,N531凭借±500mA的强劲驱动能力、宽电压供电及高兼容性,有效降低开关损耗,提升系统效率与可靠性。文章通过实战案例与设计指南,阐述了这颗高性价比芯片在简化设计、降低成本方面的显著优势。

z5a6b的博客 621

SVG绘制圆环进度条

在我们的大屏可视化项目中,经常会用到各种各样的图表。与传统的表格展示、枯燥的文字阐述相比,图表展示则使用户看起来更加直观、数据的展示则更加一目了然。本文基于svg绘图技术结合前端技术栈vue,以工作中常用的环形进度条为例,简单阐述一下绘制进度条的一些思路。............

qq_40289557的博客 8361

CAS单点登录详细流程

一、CAS简介和整体流程 CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点: 开源的企业级单点登录解决方案。 CAS Server 为需要独立部署的 Web 应用。 CAS Client 支持非常多的客户端(这里指单点登录系统中的各个 Web 应用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby ...

Aplumage的专栏 1056

基于PID算法的循迹小车

这一期为创客们带来基于PID算法的循迹小车制作 1.标准赛道示意图: (该赛道包含了:左直角、右直角、十字路口等路况) 2.灰度传感器安装示意图: (可根据实际情况调节各传感器之间的间距) 3.硬件原理图: 4.控制逻辑: 5.程序如下: #define leftA_PIN 7 #define leftB_PIN 6 #define left_Pwm_PIN 5 #define STBY...

qq_44343584的博客 4万+

单点登录CAS实现

当用户尝试访问其他应用程序或系统时,这些应用程序或系统会向身份提供者发送身份验证请求,并使用之前获得的授权令牌进行授权。单点登录(Single Sign-On,简称SSO)是一种身份验证技术,它允许用户使用一组凭据(如用户名和密码)登录到多个应用程序或系统中,而无需在每个应用程序或系统中单独登录。当用户尝试访问其他应用程序或系统时,这些应用程序或系统会检查Cookie中的身份验证信息,并使用该信息进行身份验证和授权。使用单点登录技术,员工可以在这些应用程序之间无缝地切换,而无需在每个应用程序中单独登录。

weixin_46894136的博客 9404

物联网定位技术|实验报告|实验一 Wi-Fi指纹定位

全球定位系统是迄今为止应用最为成功的地位系统,具备高精度的定位能力,但在室内和高楼密布的城区等信号遮挡严重的密集环境中,由于接受机捕获不到足够强度的卫星信号,GPS的定位质量难以保证甚至无法完成定位,使其可用性受到严重制约。由于室内环境下都普及了WiFi,因此利用WiFi进行定位无需额外部署硬件设备,是一个非常节省成本的方法。

m0_57656758的博客 3356

AFSim仿真系统中的图像处理器:从静态图像到视频流的目标识别技术解析

本文深入解析了AFSim仿真系统中WSF_IMAGE_PROCESSOR图像处理器的核心功能与技术实现。它详细阐述了该处理器如何从静态图像与视频流中完成目标检测、跟踪与识别,将原始像素数据转化为可供指挥系统使用的轨迹情报,并重点介绍了其基于约翰逊准则的目标识别进阶逻辑、关键参数配置以及脚本扩展能力,为构建高逼真度仿真应用提供了实践指导。

cola5的博客 214

CAS单点登录原理解析及相关配置

基于Cookie的单点登录核心原理:将用户名密码加密之后存于Cookie中,之后访问网站时在中校验用户权限,如果没有权限则从Cookie中取出用户名密码进行登录,让用户从某种意义上觉得只登录了一次。该方式缺点就是多次传送用户名密码,增加被盗风险,以及。同时www.qiandu.com与mail.qiandu.com同时拥有登录逻辑的代码,如果涉及到修改操作,则需要修改两处。

顺其自然~专栏 4985

20251121更新纷玩岛

【代码】20251121更新纷玩岛。

猫敷雪 1019

跟我一起学“网络安全”通识-安全设备

本篇文章是《跟我一起学“网络安全”通识》的第七章,主要为大家介绍了企业里常用的安全设备,包括:IPS、IDS、WAF、隔离装置、蜜罐等。

Cool_foolisher的博客 2855

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

单点登录的实现方式对比

在企业发展初期,企业使用的系统很少,通常一个或者两个,每个系统都有自己的登录模块,运营人员每天用自己的账号登录,很方便。但随着企业的发展,用到的系统随之增多,运营人员在操作不同的系统时,需要多次登录,而且每个系统的账号都不一样,这对于运营人员来说,很不方便。于是,就想到是不是可以在一个系统登录,其他系统就不用登录了呢?这就是单点登录要解决的问题。...

我叫火柴 1451

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

CAS实现单点登录(SSO)经典完整教程

一、简介                 1、cas是有耶鲁大学研发的单点登录服务器                  2、本教材所用环境 Tomcat7.2JDK6CAS Service 版本    cas-server-3.4.8-releaseCAS Client版本      cas-client-3.2.1-release

1980

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

jasig cas java示例_CAS Demo

#SSL证书CAS服务端进行登陆验证时一般使用HTTPS协议,此时需要提供证书。证书可以使用JDK自带工具生成,其中证书私钥需要存放到CAS服务端,供Tomcat的SSL端口配置使用(获取其他容器);证书公钥则存放到客户端应用程序运行的JDK中。##keytool生成证书JDK自带的keytool工具可以生成证书,示例命令:keytool -genkey -keystore "D:\localho...

weixin_36301989的博客 615

单点登录与第三方登录 + CSRF-XSS-DNS-DDOS-SQL攻击

多系统实现单点登录方案:SSO 单点登录 一、什么是单点登录SSO(Single Sign-On)   SSO是一种统一认证和授权机制,指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护资源时,不再需要重新登录验证。 二、单点登录解决了什么问题   解决了用户只需要登录一次就可以访问所有相互信任的应用系统,而不用重复登录。 三、单点登录的技术实现机制   如下图所示:    认证后返回给应用系统而不是用户 注(图片所

Java后端技术栈 2万+

cas单点登录流程

CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的。

Lzfnemo2009的博客 1529

cas单点登录原理与实现(整合springsecurity)

一、cas原理分析1.1 Cas登录: 两次前端跳转、一次后端验证1.1.1 首次访问应用A第一次跳转:第二次跳转:后台进行一次票据验证:图例: 1.1.2 访问A登陆后首次访问应用B二、实现cas客户端yaml配置: 2.1 参数配置类: 应用服务器参数配置类 2.2 CAS配置...

qq_46624276的博客 9677

CSA实现的SSO单点登录例子

<br />cas的sso例子,现在将详细步骤叙述一下 <br />下载         <br />cas-server-3.0.4.zip             http://www.ja-sig.org/downloads/cas/cas-server-3.0.4.zip<br />cas-client-2.0.11.zip             http://www.ja-sig.org/downloads/cas-clients/cas-client-2.0.11.zip<br /><br /

Kevin‘s blog 1428

简述CAS单点登录的实现原理

CAS单点登录的实现原理

小白的博客 1557

CAS单点登录原理

CAS单点登录原理说明1.背景2.技术实现2.1同域下的单点登录2.2不同域下的单点登录3.总结 说明 原文:单点登录(SSO)看这一篇就够了 本文从原文完全抄录,主要防止以后到处找文章或原文失效,原文写得很清楚,对理解CAS单点登录有很大帮助。 CAS实现的具体流程时序图,我也是在后续搭建排错debug中才有了具体理解。 1.背景 在企业发展初期,企业使用的系统很少,通常一个或者两个,每个系...

weixin_44294381的博客 3260

CAS单点登入登出原理

CAS 集中式认证服务(Central Authentication Service,CAS),单点登录协议,允许一个用户访问多个应用程序,而只需要提供一次凭证。 具体实现框架有:OAuth2,Shiro等。 普通CAS1.0 登入详细流程 流程解析: (1-2) 用户第一次通过浏览器Browser访问受保护的应用系统app1,应用系统app1发现访问请求中没有JSESSIONID or ST(service ticket) ,要求Browser重定向去CAS service获取ST; 在每个受

FromZeroJiYuan的博客 1820

cas单点登录认证原理

讲述CAS认证原理

Lordinloft的专栏 1966

CAS 单点登录原理及流程 一图搞定

单点登录:Single Sign On,简称SSO,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。CAS框架:CAS(Central Authentication Service)是实现SSO单点登录的框架。从结构上看,CAS包含两个部分:CAS Server 和CAS Client需要独立部署,主要负责对用户的认证工作;

u014212540的博客 773
上一篇: Kafka生产者与消费者详解
下一篇: 《JAVA多线程》之初探多线程-synchronized
我是王大宝
博客等级 码龄7年 9粉丝 13原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值