【权限管理】CAS(Central Authentication Service)

CASCentral Authentication Service)是一种广泛应用的 单点登录(SSO) 协议,它允许用户在一个集中式的身份验证系统中登录一次后,便可以无缝访问多个应用系统,而无需重复登录。CAS 通过统一的身份验证服务来简化多个应用之间的用户认证流程,提高了用户体验,并减少了管理多个用户凭证的复杂性。

1. CAS 单点登录工作原理

CAS 是一种基于 Web 的认证协议,通常包括以下几个核心组成部分:

  • CAS 服务器:中央身份验证服务器,负责验证用户身份并为其发放票据(ticket)。
  • CAS 客户端:集成到各个应用中的客户端,负责将用户请求重定向到 CAS 服务器进行认证,并验证 CAS 服务器返回的票据。
  • 用户:进行认证并访问多个应用系统的终端用户。
  • 票据:CAS 使用票据(Ticket)来管理认证信息,最常见的是 服务票据(Service Ticket)登录票据(Login Ticket)

2. CAS 单点登录的流程

2.1 用户访问应用系统(服务提供者)
  • 用户试图访问某个受保护的应用(服务提供者,SP),但尚未进行身份验证。
  • 应用检测到用户未登录,自动将用户重定向到 CAS 服务器
2.2 重定向到 CAS 服务器
  • 用户被重定向到 CAS 服务器,提示用户进行身份验证(通常是输入用户名和密码)。
  • 用户输入凭证并提交给 CAS 服务器。
2.3 CAS 服务器进行身份验证
  • CAS 服务器验证用户凭证。如果凭证有效,CAS 服务器创建一个登录票据(TGT,Ticket Granting Ticket)并返回给用户的浏览器。
  • 该登录票据通常保存在浏览器的 cookie 中,用于后续的认证请求。
2.4 用户重定向回应用系统(服务提供者)
  • CAS 服务器生成一个 服务票据(Service Ticket,ST),并将用户重定向回原先的应用系统(SP),同时附带这个 服务票据(ST)
  • 应用系统接收到请求后,使用 服务票据(ST) 向 CAS 服务器请求验证,CAS 服务器确认票据有效后,返回用户的身份信息。
2.5 服务提供者验证服务票据
  • 服务提供者通过向 CAS 服务器验证服务票据来确认用户身份。若票据有效,CAS 服务器返回包含用户身份信息的响应。
  • 应用系统根据返回的身份信息建立用户会话,允许用户访问资源。
2.6 后续请求
  • 一旦用户成功登录,用户的会话将在浏览器中保存,并且其他应用系统会识别该会话,从而不再要求用户重复登录。

3. CAS 协议的关键点

  • 单点登录:用户只需登录一次,便可以访问多个应用系统。无论用户访问多少个受保护的应用系统,CAS 只会要求用户在首次访问时进行身份验证,后续的访问都会凭借已获得的服务票据来认证。
  • 票据机制:CAS 使用票据(Ticket)来实现无状态的认证。服务票据(ST)是应用系统与 CAS 服务器之间验证用户身份的桥梁。
  • 用户体验:CAS 提供统一的登录界面,用户只需要记住一个用户名和密码即可登录所有集成的应用系统。
  • 跨域认证:CAS 支持跨域认证,用户可以在不同的应用系统之间无缝切换,而不需要重新登录。

4. CAS 的优缺点

优点:
  1. 统一管理:集中式认证可以简化用户管理和权限管理,提高系统的安全性。
  2. 用户体验:减少了用户在多个系统间跳转时重复登录的麻烦,提供无缝的体验。
  3. 支持多应用:CAS 可以集成到多个应用中,支持跨域的单点登录。
  4. 开放标准:CAS 是一种开放协议,支持不同平台的实现,可以与多种技术栈兼容。
  5. 可扩展性:CAS 服务器支持多种扩展功能,如 LDAP 集成、两步验证、身份同步等。
缺点:
  1. 性能瓶颈:CAS 服务器可能成为瓶颈,所有的认证请求都必须通过 CAS 服务器处理,导致它需要较高的负载和高可用性。
  2. 单点故障:如果 CAS 服务器出现故障,所有的认证请求都会失败,导致无法登录任何应用系统。
  3. 复杂的配置:集成 CAS 到多个应用中需要一定的配置工作,尤其是当应用系统复杂或采用不同技术栈时。

5. CAS 实现与集成

CAS 协议通常有多种实现,其中最著名的是 Jasig CAS,它是一个开源项目,提供了完整的 CAS 服务器和客户端的实现。

5.1 CAS 服务器
  • Jasig CAS Server:最常用的 CAS 服务器实现,提供集中式的身份验证服务,可以部署在自己的服务器上。
  • CAS 服务器的配置:通常需要配置认证方式(如 LDAP、数据库、CAS 票据存储等)和应用系统的集成。
5.2 CAS 客户端

每个应用系统需要集成 CAS 客户端,以便能够重定向用户到 CAS 服务器进行身份验证。常见的客户端实现包括:

  • Java 客户端:在 Java 应用中,CAS 客户端库(如 cas-client-java)用于与 CAS 服务器进行交互,验证服务票据。
  • Spring Security:Spring Security 提供了 CAS 集成,允许基于 Spring 构建的应用系统与 CAS 协议集成。
  • 其他技术栈客户端:如 Node.js、PHP 等平台上也有相应的 CAS 客户端实现,可以集成到各种类型的 Web 应用中。

6. CAS 安全性

  • 加密:服务票据(ST)和登录票据(TGT)通常是通过加密技术保护的,以防止被篡改。
  • HTTPS:CAS 协议需要通过 HTTPS 进行传输,确保敏感数据(如凭证和票据)在网络传输过程中不会被窃取。
  • 会话管理:CAS 服务器会管理用户会话,一旦用户注销或会话过期,所有应用系统的访问权限也会被撤销。

7. 应用场景

  • 企业应用:许多企业需要为员工提供访问多个内部应用(如人力资源管理系统、财务系统等)的单点登录服务,CAS 是理想的解决方案。
  • 教育系统:学校和教育机构可以使用 CAS 来提供一个集中认证的系统,简化学生、教师和管理员的认证流程。
  • 政府系统:对于需要集中管理的多部门系统,CAS 可以提供统一的认证平台,简化身份验证管理。
  • 大型 Web 应用:对于包含多个 Web 应用(如门户网站、子系统等)的组织,CAS 提供了无缝的身份验证和权限控制。

总结

CAS 单点登录是一个非常强大的认证协议,能够简化多应用、多系统环境中的用户身份验证流程。它通过集中式的身份验证服务提供无缝的用户体验,但也需要合理的架构设计和高可用性保障。CAS 是企业、教育和其他需要集中认证管理的大型系统的理想选择。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【算法与数据结构】—— 回文问题

回文问题 目录 1、简介2、经典的回文问题(1) 判断一个字符串是否为回文(2) 给定字符集求构建的最长回文长度(3) 求最长回文子串方法一:中心拓展方法二:Manacher 算法 (4) 求回文子串的数目方法一:中心拓展方法二:Manacher 算法 1、…

Linux第一个系统程序---进度条

进度条---命令行版本 回车换行 其实本质上回车和换行是不同概念,我们用一张图来简单的理解一下: 在计算机语言当中: 换行符:\n 回车符:\r \r\n:回车换行 这时候有人可能会有疑问:我在学习C…

西电-神经网络基础与应用-复习笔记

此为24年秋研究生课程复习笔记 导论 神经网络的研究方法分为 连接主义,生理学派,模拟神经计算。高度的并行、分布性,很强的鲁棒和容错性。便于实现人脑的感知功能(音频图像的识别和处理)。符号主义,心理学派,基于符号…

利用obs studio制作(人像+屏幕)录制影像

1.什么是obs? OBS(Open Broadcaster Software)是一款功能强大的开源软件,它使用户能够直接从电脑录制视频和直播内容到 Twitch,YouTube 和 Facebook Live 等平台。它在需要直播或录制屏幕活动的游戏玩家、YouTube 用户和专业人士…

maven多模块项目编译一直报Failure to find com.xxx.xxx:xxx-xxx-xxx:pom:1.0-SNAPSHOT in问题

工作中项目上因为多版本迭代,需要对不同迭代版本升级版本号,且因为项目工程本身是多模块结构,且依然多个其他模块工程。 在将工程中子模块的pom.xml中版本号使用变量引用父模块中定义的版本号时,一直报Failure to find com.xxx.x…

音视频入门基础:RTP专题(2)——使用FFmpeg命令生成RTP流

通过FFmpeg命令可以将一个媒体文件转推RTP: ffmpeg -re -stream_loop -1 -i input.mp4 -c:v copy -an -f rtp rtp://192.168.0.102:5400 但是通过ffplay尝试播放上述产生的RTP流时会报错:“Unable to receive RTP payload type 96 without an SDP file …

Nacos 3.0 Alpha 发布,在安全、泛用、云原生更进一步

自 2021 年发布以来,Nacos 2.0 在社区的支持下已走过近三年,期间取得了诸多成就。在高性能与易扩展性方面,Nacos 2.0 取得了显著进展,同时在易用性和安全性上也不断提升。想了解更多详细信息,欢迎阅读我们之前发布的回…

C语言gdb调试

目录 1.gdb介绍 2.设置断点 2.1.测试代码 2.2.设置函数断点 2.3.设置文件行号断点 2.4.设置条件断点 2.5.多线程调试 3.删除断点 3.1.删除指定断点 3.2.删除全部断点 4.查看变量信息 4.1.p命令 4.2.display命令 4.3.watch命令 5.coredump日志 6.总结 1.gdb介绍…

【xLua】xLua-master签名、加密Lua文件

GitHub - Tencent/xLua: xLua is a lua programming solution for C# ( Unity, .Net, Mono) , it supports android, ios, windows, linux, osx, etc. 如果你想在项目工程上操作,又发现项目工程并没导入Tools,可以从xLua-master工程拷贝到项目工程Assets…

9.4 visualStudio 2022 配置 cuda 和 torch (c++)

一、配置torch 1.Libtorch下载 该内容看了【Libtorch 一】libtorchwin10环境配置_vsixtorch-CSDN博客的博客,作为笔记用。我自己搭建后可以正常运行。 下载地址为windows系统下各种LibTorch下载地址_libtorch 百度云-CSDN博客 下载解压后的目录为: 2.vs…

Python基于YOLOv8和OpenCV实现车道线和车辆检测

使用YOLOv8(You Only Look Once)和OpenCV实现车道线和车辆检测,目标是创建一个可以检测道路上的车道并识别车辆的系统,并估计它们与摄像头的距离。该项目结合了计算机视觉技术和深度学习物体检测。 1、系统主要功能 车道检测&am…

相加交互效应函数发布—适用于逻辑回归、cox回归、glmm模型、gee模型

在统计分析中交互作用是指某因素的作用随其他因素水平变化而变化,两因素共同作用不等于两因素单独作用之和(相加交互作用)或之积(相乘交互作用)。相互作用的评估是尺度相关的:乘法或加法。乘法尺度上的相互作用意味着两次暴露的综合效应大于(…

ECharts饼图下钻

背景 项目上需要对Echarts饼图进行功能定制,实现点击颜色块,下钻显示下一层级占比 说明 饼图实现点击下钻/面包屑返回的功能 实现 数据结构 [{name: a,value: 1,children: [...]},... ]点击下钻 // 为图表绑定点击事件(需要在destroy…

MySQL-事务

事务特性 在关系型数据库管理系统中,事务必须满足 4 个特性,即所谓的 ACID。 原子性(Atomicity) 事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。 修改操作>修改B…

C# 元组

总目录 C# 语法总目录 C# 元组 C# 介绍元组1. 元组元素命名2. 元组的解构3. 元组的比较 总结参考链接 C# 介绍 C#主要应用于桌面应用程序开发、Web应用程序开发、移动应用程序开发、游戏开发、云和服务开发、数据库开发、科学计算、物联网(IoT)应用程序、…

用 Python 绘制可爱的招财猫

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​​​​ ​​​​​​​​​ ​​​​ 招财猫,也被称为“幸运猫”,是一种象征财富和好运的吉祥物,经常…

Java多线程

一、线程的简介: 1.普通方法调用和多线程: 2.程序、进程和线程: 在操作系统中运行的程序就是进程,一个进程可以有多个线程 程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念; 进程则是执行程序的一次执…

IP 地址与蜜罐技术

基于IP的地址的蜜罐技术是一种主动防御策略,它能够通过在网络上布置的一些看似正常没问题的IP地址来吸引恶意者的注意,将恶意者引导到预先布置好的伪装的目标之中。 如何实现蜜罐技术 当恶意攻击者在网络中四处扫描,寻找可入侵的目标时&…

鸿蒙面试 2025-01-09

鸿蒙分布式理念?(个人认为理解就好) 鸿蒙操作系统的分布式理念主要体现在其独特的“流转”能力和相关的分布式操作上。在鸿蒙系统中,“流转”是指涉多端的分布式操作,它打破了设备之间的界限,实现了多设备…

GDPU Android移动应用 重点习题集

目录 程序填空 ppt摘选 题目摘选 “就这两页ppt,你还背不了吗” “。。。” 打开ppt后 “Sorry咯,还真背不了😜” 更新日志 考后的更新日志 没想到重点勾了一堆,还愣是没考到其中的内容,翻了一下,原…