`
y806839048
  • 浏览: 1107640 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

cas流程原理之一(及普通的验证原理比较)

    博客分类:
  • cas
 
阅读更多

1,

cas服务端值配置数据库验证,加密方式,返回数据等数据信息

cas客户端配配置认证请求,验证请求,包装请求,本地session,以及退出请求等请求

 

 

 

cookie(TGT的id,TIcket的id) ----session

 

一般的客户端,服务端的验证设计:

tooken-session

客户端:第一次传给服务端服务端自己生成的(token),第二次,传入sesion值,(token)值(传入服务器反写的,除token外)

服务端:第一次以K-V的方式组建(token)-session(发session个客户端),存入缓存,第二次用客户端的此时传入的token作为key获取session

和传入的session比较,一致即通过验证,不一致或者为空即要求登录

 

 

 

cas的客户端验证:

cookie--session

cas服务端:登录成功后给客户端服务器,写session,自己留TGT(ticket)在缓存,浏览器写cookie(TgT的id)

 

客户端服务:获取浏览器的cookie信息,如果客户服务端session为空,cas服务器根据cookie能够获取ticket(TGT)即放行,同时生成session,

cookie在cas中获取不到对象就要求登录

客户服务端session不为空直接放行

 

也就是说K-V的匹配实现在cas服务器完成,不像传统的在web服务中完成,其他的比如session不为空即放行仍一致

 

客户端要实现登录要走完这些过滤器

整理一下整个登录流程(一次登录包含三次请求):

 

第一次请求应用服务器:

 

当用户第一次访问应用服务器的URL,由于session中没有"_const_cas_assertion_"且参数中没有ticket(或cookie没有值,cookie有值可以生成session),会被AuthenticationFilter跳转到CAS服务器的登录页面。

 

第二次请求应用服务器:

 

在CAS服务器的登录页面成功登录以后,会跳转到应用服务器登录前的页面,但是加上了一个参数ticket。此次请求由于有ticket参数,通过了AuthenticationFilter,但是TicketValidationFilter会对ticket进行校验,校验成功后,会在session中加入"_const_cas_assertion_",再去掉ticket参数进行一次跳转。

 

第三次请求应用服务器:

 

此时由于session中已经有了"_const_cas_assertion_",会通过AuthenticationFilter,由于没有ticket参数,也通过了TicketValidationFilter,也就是可以正常显示出这个页面了。以后再请求应用服务器就和这次一样了,由于session包含"_const_cas_assertion_"即可正常访问。

 

 

 

 

http://zhenkm0507.iteye.com/blog/546805

分享到:
评论

相关推荐

    CAS原理和配置过程

    其主要目的是提供一个统一的身份验证解决方案,使得用户只需要在一个地方进行登录,即可访问所有已经集成CAS的服务。下面将详细介绍CAS的工作原理、核心概念以及配置流程。 #### 一、CAS工作原理 CAS的核心机制...

    cas核心流程图

    CAS的核心流程涉及多个步骤,为用户提供了一种安全、集中化的验证机制,使得用户只需登录一次,就能访问多个相互信任的应用系统。 在CAS的核心业务流程中,主要有以下几个关键步骤: 1. **服务请求**:当用户尝试...

    cas单点才登出原理

    当用户登出时,除了清理服务器端的TGT,还会向浏览器发送一个特殊的URL,导致浏览器删除与之关联的Cookie,进一步确保用户在所有支持CAS的系统中的会话都被终止。 总结来说,CAS单点登出的原理主要依赖于TGT的管理...

    CAS实现原理与例子

    一、CAS实现原理 CAS的实现原理基于Cookie机制或Session机制。Cookie机制是将认证信息存储在客户端的Cookie中,而Session机制是将认证信息存储在服务器端的Session中。CAS系统会将用户的认证信息存储在Cookie或...

    cas原理 webflow mvc ioc

    CAS(Central Authentication Service)是一种单点登录(Single Sign-On,SSO)协议,旨在简化多应用环境下的用户身份验证过程。它通过引入中央认证服务器(CAS Server)的概念,为各个服务或应用提供统一的身份验证...

    CAS的ASP.NET客户端配置及验证

    本篇文章将深入探讨如何在ASP.NET应用程序中配置CAS客户端,并进行验证流程。 首先,理解SSO的基本概念是至关重要的。SSO允许用户只需一次登录就能访问多个相互关联的应用系统,而无需在每个系统上单独进行身份验证...

    CAS自定义加密和登录验证

    CAS(Central Authentication Service,中央认证服务)是一种广泛使用的开源身份验证框架,主要用于实现单点登录(Single Sign-On,SSO)。在本主题中,我们将深入探讨如何在CAS中进行自定义加密和登录验证。 首先...

    cas认证原理[参考].pdf

    【CAS认证原理】 单点登录(SSO,Single Sign-On)是一种网络认证机制,它允许用户在访问多个相互关联的应用系统时,只需登录...理解并掌握CAS的工作原理对于软件开发者来说,是提高系统安全性及用户体验的重要技能。

    CAS SSO 原理

    综上所述,CAS SSO原理是通过中心化的认证服务器和分散的客户端协同工作,实现了用户只需一次登录即可访问多个应用系统的功能。这种设计既方便了用户,又简化了系统管理员的身份管理,同时保持了一定的安全性。然而...

    cas原理.doc

    总的来说,CAS原理涉及到的身份验证机制、TGT和ST的概念,以及Spring Webflow在实现登录流程中的作用,都是理解CAS工作方式的关键点。通过定制化Spring Webflow配置,开发者可以根据需求扩展或调整CAS的默认行为,以...

    CAS的原理分析

    CAS的原理分析

    cas 普通方式和SpringBoot方式客户端 普通方式服务端

    CAS(Central Authentication Service)是一种广泛使用的开放源码身份验证框架,它允许用户通过单一登录(Single Sign-On,SSO)访问多个应用系统。在本文中,我们将探讨如何在普通方式和Spring Boot方式下配置和...

    cas认证原理

    CAS认证原理 单点登录概述 单点登录(Single Sign-On,简称SSO)是指用户在访问多个相关应用系统时,只需要登录一次即可访问所有相互信任的应用系统的解决方案。在SSO环境下,用户不需要重复提供凭证信息(如用户名...

    CAS restful接口调用

    ### CAS Restful接口调用详解 ...以上便是通过RESTful接口实现CAS票据获取与验证的基本流程。在整个过程中,需要注意的是请求URL、请求参数以及请求头的正确设置,这些细节将直接影响到最终的结果。

    cas server 5.3.9 整合数据库验证用户信息,使用security密码验证方式

    CAS(Central Authentication Service)是一种广泛使用的开放源代码的单点登录(Single Sign-On,SSO)协议,它允许用户在一个地方进行身份验证后,就可以访问多个应用系统,而无需再次登录。CAS Server 5.3.9是CAS...

    CAS 原理讲解

    普渡大学采用CAS作为其身份与访问管理系统的核心组成部分之一。具体来说: - **认证服务**:普渡大学运行自己的CAS服务器,用于验证用户的Purdue Career Account。 - **授权的应用服务器**:截至2011年4月5日,已有...

    Java CAS 原理分析

    CAS操作可能会遇到ABA问题(即在两次比较之间,一个值可能被多次修改回到初始状态),这时可以考虑使用带有版本号的CAS或其他替代方案。 #### 七、结论 CAS作为多线程环境中不可或缺的一种同步机制,通过硬件层面...

    CAS整合LDAP实现单点登录原理及部署

    CAS整合LDAP实现单点登录的原理及部署学习笔记,cas实现单点登录,ldap负责账户管理

    php版cas验证程序

    CAS(Central Authentication Service)是一种基于Web的单点登录(Single Sign-On, SSO)协议,主要应用于企业或教育环境,允许用户通过一个统一的身份验证系统访问多个应用系统,而无需多次登录。在PHP环境中实现...

Global site tag (gtag.js) - Google Analytics