五分钟初步了解CAS单点登录

简介: 五分钟初步了解CAS单点登录

前言:

小面学弟:小面,啥是单点登录啊?

小面:单点登录啊,就是SSO,你可以简单理解为,假如你有多个系统A,B,C,D, 你只要登录过一次A,那么在其他可信任的系统BCD就都可以去访问了。

小面学弟:哦~原来是这样,那啥是CAS啊?

小面:CAS就是一个开源项目,是一种可靠的单点登录。

小面学弟:小面,能详细讲讲不?

小面白眼。

正文:

CAS主要分为两个部分,一个是client端,一个是server端。

server端主要职责是,对用户进行认证操作,需要去独立部署。

client端主要职责是,对于受保护的信息资源,client会重定向至server端进行认证操作。

假设我们要访问一个网站A。用户第一次访问网站A,会经过认证过滤器,这个认证过滤器的主要作用就是去看该用户是否在该网站进行过登录操作,如果认证过滤器返回该用户没有进行过登录操作,那么将会重定向到认证中心(CAS Server)。

此时我们将会重定向www.CASXXX.com?A地址 ,他会拼接上原来要访问的网站A,这样认证完成后会重定向至A。

我们会向CAS认证系统发出请求,CAS认证系统接受请求返回登录页面。用户进行登录操作,提交请求。

此时CAS Server端就会根据用户输入的账号密码进行认证操作。并且响应浏览器。同时返回一个ticket令牌,在Cookie中设置一个TGC,这个cookie是CAS认证系统的cookie,我们只有携带了这个cookie,我们才可以正常地去访问这个网站。

TGC可以理解为,我们下一次访问CAS认证系统,浏览器就会带着TGC去访问,Cas就会根据TGC去查找TGT,判断用户是否登录。客户端拿到ticket后,会经过ticket过滤器,去CAS判断该ticket是否有效。

通过ticket校验后,session就会被保存进用户的信息。下一次访问的时候,就可以直接了当获取到用户信息从session中,不用再次验证了。网站A接收到了CAS认证系统,知道了用户已经登录,ticket有效。这样用户第一次访问就就结束了。

当用户第二次访问网站A。我们还是会经过认证过滤器,但是此时客户端已经有session,可以获取到用户信息,所以不需要进行验证,可以直接访问。

当用户第一次访问网站B。将重定向到CAS认证中心,由于我们已经进行过登录操作,因此浏览器是带着cookie的。认证中心收到请求后,签发一个ticket给浏览器。然后会重定向到client端。client端带着ticket去验证是否有效。认证成功后,把用户信息存进session。同时告知浏览器可以访问。

这里小面绘制了一个流程图给大家看一下,以方便大家去理解。

总结:

总结就是:重定向到CAS Server ,用户输入账号密码,验证成功后,建立浏览器和CAS的信任,然后CAS返回ST,应用服务器拿到st去CAS认证是否合法, 认证成功那应用与浏览器建立信任。

今天的分享就到此结束,如果觉得本文不错的还请伙伴们帮忙点赞转发,欢迎持续关注我们!

相关文章
|
运维 Java Nacos
nacos常见问题之读取不到配置文件如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
7397 2
|
Java Linux Windows
Java“Could Not Create Java Virtual Machine”解决
当在Java中遇到“Could Not Create Java Virtual Machine”错误时,通常是由于内存设置不当、Java版本不兼容、类路径错误或操作系统限制等原因导致JVM无法启动。解决方法包括调整内存参数、确认Java版本兼容性、检查类路径和启动参数、以及检查用户权限和文件系统。
6488 1
|
监控 网络协议 数据安全/隐私保护
​邮件发送失败DMARC报错问题排查解决有什么理想方法
在邮件营销中,DMARC(域消息验证)报错常见。DMARC基于SPF和DKIM,指定如何处理未认证邮件。排查DMARC问题需检查SPF记录,验证DKIM签名,配置DMARC策略,使用AOKSend发送测试邮件。理想的解决方法包括:定期更新DNS记录,使用专业邮件服务如AOKSend简化配置,监控DMARC报告,逐步加强DMARC策略,并对员工进行培训。这将提高邮件发送成功率和安全性。
|
前端开发 JavaScript 应用服务中间件
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
本文是一篇详细的教程,介绍了如何在Linux系统上安装和配置nginx,以及如何将打包好的前端项目(如Vue或React)上传和部署到服务器上,包括了常见的错误处理方法。
3867 0
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
|
定位技术 C++ Python
C++一个函数返回两个或更多个返回值的方法
C++一个函数返回两个或更多个返回值的方法
412 1
|
传感器 数据采集 API
C语言与硬件编程:GPIO操作
C语言与硬件编程:GPIO操作
|
开发框架 自然语言处理 Java
如何在Spring Boot中实现动态多语言支持
如何在Spring Boot中实现动态多语言支持
1830 3
|
缓存 运维 Linux
保姆级python项目离线部署服务器教程只需这一篇就够了(建议收藏)
这篇文章提供了详尽的Python项目在离线Linux(CentOS)服务器上的部署教程。作者首先介绍了环境背景,强调了无网络环境和使用有网络的CentOS虚拟机准备安装包的重要性。教程分为两部分:外网环境搭建和内网离线安装。在外网环境中,包括下载Python 3.9.0安装包、传输至服务器、安装依赖包,并使用pip3下载项目所需依赖。内网安装则涉及依赖包的复制和Python环境的同样步骤。最后,作者分享了运行项目的命令,并总结了离线安装的整个流程,提醒读者注意可能出现的问题。
保姆级python项目离线部署服务器教程只需这一篇就够了(建议收藏)
|
存储 算法 安全
|
XML JSON API
⚡REST 和 SOAP 协议有什么区别?
这篇文章对比了 REST 和 SOAP 两种常见的 Web API 规范。REST 是一种 API 架构风格,遵循客户端-服务器、无状态和缓存等原则,使用 HTTP 协议和 JSON 格式,适合轻量级、高兼容性的场景。SOAP 是一种基于 XML 的网络服务访问协议,提供消息级安全性和 ACID 合规性,适用于企业级应用。REST 的优点包括前后端分离、浏览器兼容和带宽效率,而 SOAP 适用于需要高级安全特性的应用。除了 REST 和 SOAP,还有 gRPC 和 GraphQL 等其他选择。

热门文章

最新文章