CAS单点登录简介

news2024/11/16 7:29:08

1、传统cookie认证
通常在登录的时候,前端将用户名和密码传送给后端,然后后端将加密后的认证字符串设置成cookie,在以后的每次请求中,都会将cookie发过去,再解密校验请求者的信息,或者进行一系列的鉴权。
这种方式的缺点就是不能跨域,如果是多个应用,如果需要更改登录流程,则需更改多出代码。

2、统一认证中心
基于cookie的流程,如果我拥有多个应用,那么每个应用之间都是相互隔离的,如果来回使用,可能需要几次登录,先不说用户体验,开发体验也很不友好。
所以我们继续改造,将认证服务统一独立起来。只要判断没有登录的,都重定向到认证中心,等登录成功后再再重定向到原应用,每次校验Cookie的时候,都用认证中心的服务校验,这样自然而然就方便多了。
但是这里还是有个问题,后端认证服务统一了,但是前端好像并没有,对于多个前端应用,cookie并不能跨域,也不能在多个应用之间随便读取,如果登录过一次,再切换到另一个应用,也还是得登录。


3、CAS单点登录(Central Authentication Server)
CAS全称Central Authentication Server,也称作中央认证服务。
从结构上看,CAS 包含两个部分: CAS Server 和 CAS Client。CAS Server 需要独立部署,主要负责对用户的认证工作;CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server。
在上面的例子中,我们说的统一认证中心,负责登录的工作部分可以作为CAS Client,而后端部分可以作为CAS Server。
在请求阶段CAS Client 会分析该请求的 Http 请求中是否包含 Service Ticket,如果没有,则说明当前用户尚未登录,于是将请求重定向到指定好的 CAS Server 登录地址,并传递 Service (也就是要访问的目的资源地址),以便登录成功过后转回该地址。用户在第 3 步中输入认证信息,如果登录成功,CAS Server 随机产生一个相当长度、唯一、不可伪造的 Service Ticket,并缓存以待将来验证,之后系统自动重定向到 Service 所在地址,并为客户端浏览器设置一个 Ticket Granted Cookie(TGC),CAS Client 在拿到 Service 和新产生的 Ticket 过后,在之后的请求中与 CAS Server 进行身份核实,以确保 Service Ticket 的合法性。
同时为了解决上述的多个应用之间的问题,我们可以利用cookie的domain属性,在子应用之间分享cookie。
Domain 指定了哪些主机可以接受 Cookie。如果不指定,默认为origin,不包含子域名。如果指定了,则一般包含子域名,可以在多个网页之间共享。Domain

认证流程:

  1. 浏览器向客户端请求提供某个受保护的资源。
  2. 重定向到服务端进行认证
  3. 用户进行身份认证
  4. 服务端生成票据
  5. 客户端向服务端验证票据
  6. 验证成功返回用户信息

(7 封私信) jwt单点登陆和cas单点登陆有什么区别,cas单点登录是否集成了jwt? - 知乎 (zhihu.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1575129.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++ STL容器适配器】stack 栈

文章目录 【 1. 基本原理 】【 2. stack 的创建 】2.1 创建一个空的的 stack 适配器,并采用默认的 deque 基础容器2.2 指定其他序列式容器2.3 通过基础容器初始化 stack2.4 通过一个 stack 初始化另一个 stack 【 3. stack 支持的成员函数 】 【 1. 基本原理 】 st…

实测STM32的RTC,什么校准都不做,不断电,半年后快了13分钟

【测试结果】 TOOL的RTC时钟一直都是通过上位机这里手动校准的,这次做了了实验,测试期间不做任何校准,看看半年后效果。 测试是从去年的9月29号开始 截至到今年的4月5号,快了13分钟 【误差原因】 因为晶振对温度敏感&#xff0…

windows 系统下 mysql 数据库的下载与安装(包括升级安装)

windows 系统下 mysql 数据库的下载与安装(包括升级安装) 一、mysql 介绍: MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品。 MySQL 是最流行的关系型数据库管理系统之一&#xf…

算法 第34天 贪心3

1005 K 次取反后最大化的数组和 给你一个整数数组 nums 和一个整数 k ,按以下方法修改该数组: 选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。 重复这个过程恰好 k 次。可以多次选择同一个下标 i 。 以这种方式修改数组后,返回数组 可能…

Unity Meta Quest MR 开发(五):空间锚点

文章目录 📕教程说明 此教程相关的详细教案,文档,思维导图和工程文件会放入 Spatial XR 社区。这是一个高质量 XR 开发者社区,博主目前在内担任 XR 开发的讲师。该社区提供专人答疑、完整进阶教程、从零到一项目孵化保姆服务&…

华为海思2024春招数字芯片岗机试题(共9套)

huawei海思2024春招数字芯片岗机试题(共9套)(WX:didadidadidida313,加我备注:CSDN huawei数字题目,谢绝白嫖哈) 题目包含数字集成电路、System Verilog、Verilog2001、半导体制造技术、高级ASIC芯片综合、…

微信小程序使用自己的布局

我第一天学习微信小程序,照着黑马程序员老师的操作模仿编辑。因为视频是23年的,我24年4月份学习发现很多地方不一样了。 新版微信开发者工具中没有自带wxss文件。我自己建了一个list.wxss文件,发现用不了,在list.wxml文件中编写v…

安卓java打包uniapp原生插件 和 uniapp使用安卓android原生插件

1.uniapp dcloud官方文档 简介 | uni小程序SDK 2.前提,需要有经验的安卓java开发人员,并且同时具备uniapp移动端开发经验。说明:android打包的.aar和uniapp需要的.aar是不一样的,uniapp需要的.aar是需要有一些特定配置的&#x…

vue结合Elempent-Plus/UI穿梭框更改宽度以及悬浮文本显示

由于分辨率不同会导致文本内容显示不全,如下所示: 因此需要 1、悬浮到对应行上出现悬浮信息 实现代码如下所示: 这里只演示Vue3版本代码,Vue2版本不再演示 区别就在插槽使用上Vue3使用:#default“”;Vu…

阿里云服务器租赁一年收费标准

阿里云服务器租用价格表2024年最新,云服务器ECS经济型e实例2核2G、3M固定带宽99元一年,轻量应用服务器2核2G3M带宽轻量服务器一年61元,ECS u1服务器2核4G5M固定带宽199元一年,2核4G4M带宽轻量服务器一年165元12个月,2核…

C#基础:类,对象,类成员简介(第四节课)

本节内容: 类与对象的关系 什么时候叫“对象”,什么时候叫实例引用变量与实例的关系 类的三大成员 属性方法事件 类的静态成员与实例成员 关于“绑定” 1.什么是类:(再详细一点) 类是对现实世界事物进行抽象所…

蓝桥杯练习系统(算法训练)ALGO-959 P0705 集合运算

资源限制 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 输入两个整数集合A、B,求出他们的交集、并集以及B在A中的余集。交集、并集和余集的计算都要求写成一个单独的函数。   输…

VMware虚拟机(Rocky9.3)硬盘扩容详细图文教程

参考<<鸟哥的Linux>>以及VMware虚拟机硬盘扩容详细图文教程 原因: 用户空间不足,且系统是用LVM&#xff08;logical volume manager&#xff09;进行分区 df -h #查看/home目录下磁盘容量不足磁盘扩容步骤 关闭虚拟机,选择编辑虚拟机, 点击硬盘,再点击扩容 这个…

2024年租用阿里云服务器多少钱一年?连夜整理分享

阿里云服务器租用价格表2024年最新&#xff0c;云服务器ECS经济型e实例2核2G、3M固定带宽99元一年&#xff0c;轻量应用服务器2核2G3M带宽轻量服务器一年61元&#xff0c;ECS u1服务器2核4G5M固定带宽199元一年&#xff0c;2核4G4M带宽轻量服务器一年165元12个月&#xff0c;2核…

代码随想录第32天|455.分发饼干 376. 摆动序列

理论基础 贪心算法核心&#xff1a;选择每一阶段的局部最优&#xff0c;从而达到全局最优。 455.分发饼干 455. 分发饼干 - 力扣&#xff08;LeetCode&#xff09;代码随想录 (programmercarl.com)455. 分发饼干 - 力扣&#xff08;LeetCode&#xff09; 贪心算法理论基础&am…

Spring之ApplicationListener实现监听原理

文章目录 ApplicationListener使用方式ApplicationListener实现原理1.引入并实例化时机2.作用时机3.发布事件&#xff0c;生效 总结 ApplicationListener使用方式 package com.cyl.listener;import org.springframework.context.ApplicationEvent; import org.springframework…

秋招学习数据库LeetCode刷题

数据库基本知识以前学过次数较多&#xff0c;今天看完一遍后都是可以理解的。直接刷Leetcode题吧 牛客上题库刷基础&#xff0c;Leetcode刷 写语句题(争取坚持每日2个sql语句题) 牛客&#xff1a;https://www.nowcoder.com/exam/intelligent?questionJobId10&tagId21015 L…

Redis性能管理及集群三种模式(一)

一、前期准备 至少准备三台服务器为主从复制、哨兵的实验做准备 一台主redis、两台从redis 二、Redis性能管理 2.1 查看Redis内存使用 查看Redis内存使用——info memory 2.2 内存使用率 1<内存碎片<1.5表示合理的内存碎片大于>1.5&#xff0c;需要输入shutdown save…

Easy TCP Analysis让TCP数据包分析变得跟看聊天记录一样简单

网络交互是几乎所有产品不可或缺的功能&#xff0c;涵盖接口请求响应、消息实时推送&#xff0c;以及文件上传下载等各种场景。这种交互不仅存在于客户端与服务器之间&#xff0c;也存在于服务端微服务之间的通信。 网络方面出问题不像进程内程序异常有异常堆栈&#xff0c;能…

文件实时同步工具PanguFlow

今天推荐一款Windows服务器文件实时同步工具PanguFlow,如果有需要做服务器文件实时冗余灾备的老铁&#xff0c;一定不能错过&#xff0c;错过可能就是一生。这款软件不同于其他普通文件同步工具通过比对源和目标的差异来同步文件&#xff0c;而是实时监控源的增量变化&#xff…