`
sagahl
  • 浏览: 23828 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

cas中pgtiou的设计必要性

阅读更多

    最近在看CAS协议,看到PGTIOU发现好像很多余,既然单点信任cas,那么为什么不在验证ST的时候直接返回PGT?而是先返回PGUIOU,然后通过https pgturl回调得到PGTIOU,PGT? 
    网上查了很多文章,发现抄袭的问题极为严重,都是一句话“设计为安全考虑,我将在下一章节介绍!”想请问高手,这样的设计到底是为了什么?适用场景是什么?如果不用,会有怎么样的安全隐患? 
    有人说是怕直接返回PGT被监听,或是伪造ST去验证得到PGT后可以做许多事情,但是如果如果真的拿到了ST,pgturl也是可以伪造的,一样能得到PGT。再说,当请求PT的时候代理服务器也是要发送PGT的。

 

       后来还是在国外论坛上的一段话解释了这个问题:

"The pgtIou provides a way to associate the Proxy Granting Ticket with a 
ticket validation response without including the Proxy Granting Ticket 
directly in the response. The PGT is sent (via an HTTPS request from CAS 
server to proxy callback URL) alongside a pgtiou. That same pgtiou is 
returned in the ticket validation response." 

"I think maybe because it's very unsafe to include the Proxy Granting Ticket 
directly in the response." 

Correct.  How unsafe it is depends on whether the service is using https:// 
But the short version is that in theory the Adversary could obtain a service 
ticket (for instance, by knowing the end user's password).  The https:// 
callback guarantees that a Proxy Granting Ticket is associated with an 
https:// URL at which the proxy granting ticket recipient is capable of 
listening.  It leverages the server SSL certificate to authenticate the 
service to CAS for the purpose of receiving a Proxy Granting Ticket. 

Only YaleInfo can obtain a proxy granting ticket in the name of YaleInfo.  I 
cannot obtain a proxy granting ticket in the name of YaleInfo *even though I 
know my own username and password and can capture a service ticket intended 
for YaleInfo*. 

> But I think CAS Client can get the PGT directly from the "proxy callback\ 
URL". 

Maybe.  Certainly the instance of the CAS client library installed in 
YaleInfo can obtain the PGTs that YaleInfo receives.  This authenticates 
that CAS client instance as actually being connected to the web application 
listening at YaleInfo's SSL URL. 

> But in fact CAS Client must get the PGT through the PGTIOU obtained from 
XML document which was returned through the "ticket validation response" by 
CAS server. I think it's superfluous. 

The pgtiou is the key whereby the CAS client knows *which* PGT to associate 
with the user whose service ticket has just been validated. 

 

通过再次阅读cas的协议细则,发现PGTIOU设置非常合理和必要。

 

题外:

    在网上搜索该问题,看到的相关文章十之八九就是一模一样,有的竟然连语气都是一样的。难道抄袭别人不感到羞耻吗?至少抄袭的时候也应该读懂与理解吧!就算不理解至少要把抄袭的文章看完吧!连修改遮蔽作假的功夫都省了,堂而皇之的大搞拿来主义。这不是在愚弄大家,而是在骗自己。这样的人不配做一个程序员,这样的网站也不配做技术类的网站。支持原创,支持创新。多些沉淀,少些浮华!

分享到:
评论

相关推荐

    汽车外饰正向CAS设计的要点与步骤.doc

    通过对汽车正向CAS设计的必要性和可行性的分析,提出了汽车正向CAS设计的要点和相关步骤。 一、汽车正向CAS设计的必要性和可行性 汽车造型设计中数字化技术的广泛应用已经改变了传统的设计流程。汽车正向CAS设计的...

    汽车外饰正向cas设计的要点及步骤.doc

    汽车正向CAS设计的必要性体现在两个方面:一方面是提高汽车的整体性能,如降低风阻系数、降低噪音、提高燃油经济性等;另一方面是提高汽车的外观美观性,如提高汽车的视觉效果、提高汽车的气动性能等。汽车正向CAS...

    统一身份认证(CAS)简单说明与设计方案

    在设计 CAS 解决方案时,需要考虑到以下几个方面:身份认证机制、授权机制、安全机制、可扩展性和可靠性。CAS 的设计需要满足企业的安全需求,保护用户的敏感信息,确保数据的安全传输和存储。 CAS 是一种功能强大...

    idea 中导入cas

    指定主类(通常是`org.apereo.cas.web.flow.CasWebflowConfigurer`),并配置必要的环境变量和系统属性,如服务器端口和数据库连接信息。 6. **编译与测试**:在Idea中,你可以直接点击"Build" -> "Rebuild Project...

    CAS单点登录(SSO)服务端自定义认证+CAS客户端配置+CAS完整使用文档+CAS4.2.7 cas-serv服务端源码 cas-client客户端源码

    压缩包中包含的文档将指导你如何配置CAS客户端,包括在Spring或Web.xml中添加必要的配置项,设置服务URL,以及处理TGT(Ticket Granting Ticket)和ST(Service Ticket)。 3. **CAS4.2.7源码**: CAS 4.2.7是CAS...

    CAS 协议 票据、url介绍,包括cas1.0和cas2.0

    在 CAS 协议中,票据是指身份验证的凭证。票据可以是 Ticket-Granting Ticket(TGT)、Service Ticket(ST)、Proxy Ticket(PT)等。TGT 是 CAS 服务器颁发给用户的身份验证凭证,ST 是 CAS 服务器颁发给用户的服务...

    iscas.rar_iscas_基准电路_逻辑综合

    本文将围绕"iscas.rar_iscas_基准电路_逻辑综合"这一主题,深入探讨这些概念及其在实际应用中的重要性。 iscas基准电路是一套广泛使用的标准测试集,由国际固态电路会议(International Solid-State Circuits ...

    cas修改登录页

    5. **Thymeleaf或JSP模板引擎**:CAS可能使用Thymeleaf或JSP作为其视图技术,所以熟悉这些模板引擎的语法是必要的,以便在其中嵌入动态数据和逻辑。 6. **CAS API**:在某些情况下,你可能需要直接与CAS API交互,...

    cas4.2.7 实现其他系统和cas互相认证互信

    3. **集成CAS客户端库**:在外部系统中,需要集成CAS客户端库,如Java CAS Client、Spring Security CAS等,它们负责处理与CAS服务器的交互,包括重定向用户到CAS登录页面、接收和验证服务票证。 4. **配置客户端...

    基于CAS的统一认证平台的设计与实现.pdf

    从提供的文件内容来看,文件标题为《基于CAS的统一认证平台的设计与实现》,描述部分重复了标题,而标签则是“CAS 统一认证 平台 设计与实现”。虽然这部分内容中存在OCR扫描错误和符号,我们可以提炼出关于基于CAS...

    汽车外饰正向CAS设计的要点及步骤.doc

    1. 正向CAS设计的必要性和可行性 随着科技的发展,数字化技术在汽车设计领域扮演着越来越重要的角色。正向CAS设计能够提高设计效率,减少物理样车的制作次数,降低研发成本。设计师可以通过电脑模拟出各种造型方案...

    H3C_CAS_LINUX安装cas-tools

    在虚拟化环境中,安装 CAS Tools 是一个非常重要的步骤。CAS Tools 是一个功能强大的虚拟化管理平台,能够帮助管理员更方便地管理和维护虚拟机。下面,我们将详细介绍如何在 Linux 系统中安装 CAS Tools。 虚拟化...

    基于springboot,cas5.3,shiro,pac4j,rest接口获取ticket不再跳转cas server登录页

    1. 配置Spring Boot:首先,我们需要在Spring Boot应用中引入必要的依赖,如CasClient、Shiro和Pac4J的相关依赖。然后,在配置文件中设置CAS服务器的URL和其他相关参数。 2. 集成CAS和Pac4J:在Spring Boot应用中,...

    cas 自定义登录页面

    在CAS服务器的配置文件(如`cas.properties`或`application.yml`,取决于你的CAS版本)中,找到`cas.server.loginUrl`或`server.servlet.context-path/login`配置项,将其修改为你自定义登录页面的URL。例如: ```...

    cas源码修改-登录页面

    总之,修改CAS的登录页面涉及多个层面,从界面设计到业务逻辑,再到安全性和性能优化。理解CAS的架构和工作流程对于有效地定制登录页面至关重要。在实践中,应遵循良好的编程实践,保持代码的清晰性和可维护性。

    struts2+cas单点登陆例子

    3. **配置struts.xml**:在`struts.xml`中,添加特定的拦截器,如`CasValidationInterceptor`,用于在Action执行前验证CAS票据的有效性。 4. **创建登录/登出界面**:在Struts2的视图层,我们需要为用户提供一个...

    cas-client-2.0.11.zip_cas client_cas-clie_cas-client-2._java CAS

    CAS(Central Authentication Service)是耶鲁大学开发的一种开放源代码的单点登录(Single Sign-On,简称SSO)协议,用于网络应用中的身份验证。它允许用户在一个认证点登录后,无需再次输入凭证就能访问其他受保护...

    cas-3.4.1_单点登录_CAS_

    7. **可扩展性**:CAS的架构设计允许开发者轻松添加自定义功能,如自定义认证处理器、票证生成器等。 8. **国际化与本地化**:CAS支持多语言界面,方便不同地区的用户使用。 在这个压缩包中,你将找到的“cas-...

Global site tag (gtag.js) - Google Analytics