`
abirdman
  • 浏览: 3105 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

看罗时飞的书,应用CAS Proxy进行SSO时有个问题问大家

阅读更多
现在在研究CAS SSO 参考书是罗时飞的那本ACEGI CAS,有个不明白的地方

在应用CAS Proxy时(注意这里讲的是代理模式),第一个客户系统验证通过后,得到了PGT,第2个系统如果不想再次去输入口令验证,就得用第一个系统中的PGT去计算出一个PT(而且还要在第一个系统内部算出来),然后把这个PT手工加在第2个系统的url后面作为ticket传进去才能通过,是这个意思吗?

那我难道每次都要客户把pt粘贴在url后面吗?是不是我理解错了
分享到:
评论
10 楼 linliangyi2007 2008-02-28  
pikachu 写道
abirdman 写道
现在在研究CAS SSO 参考书是罗时飞的那本ACEGI CAS,有个不明白的地方

在应用CAS Proxy时(注意这里讲的是代理模式),第一个客户系统验证通过后,得到了PGT,第2个系统如果不想再次去输入口令验证,就得用第一个系统中的PGT去计算出一个PT(而且还要在第一个系统内部算出来),然后把这个PT手工加在第2个系统的url后面作为ticket传进去才能通过,是这个意思吗?

那我难道每次都要客户把pt粘贴在url后面吗?是不是我理解错了


概念性错误!
proxy不是这样玩的(念 di)
1,如果要用proxy,web browser只访问第一个应用,后面的应用由前一个应用代理.
2,PT不是系统算的,是CAS给的
3,带pt的url是第一个系统发起的,不是用户输的

完整的CAS proxy场景打比方说是这样的

1 你去看周杰伦演唱会(我不喜欢周杰伦,但是CAS介绍都拿他打比方)
2 门口检票的不让你过,在你身上挂块牌子写着"这家伙想看周杰伦演唱会",然后把你打发到到联合办票中心
3 你乖乖掏钱买票
4 收到钱后,联合办票中心给你一张周杰伦演唱会的一次性票,并且在你身上别人看不见的地方又挂了块牌子"这家伙付过钱了,三小时内可以随便进出协议宾馆,酒店,洗浴中心,桑拿会馆......",这块牌子就是cas 1.0 模式的TGCookie,proxy里不使用.
5 办票中心知道你要看周杰伦演唱会,就把你送回来,还把票给保安.
6 保安收到票还不放心,亲自跑到联票中心,用这张票查一下,果然abirdman同学付过钱了.票被收回去了,但是又多拿回一个牌子,这块牌子上写着"见此牌,如abirdman亲临",还好,这块牌子不是一次性的,保安好好的保管着.这块牌子就是PGT,而且是通过PGTURL把牌子送回来的.但是这牌子只有去联票中心才管用,别人不吃这一套.
7 你看着周杰伦演唱会,忽然想起李宇春来了,作为一个"玉米",你很不好意思的问保安,能不能给我弄张李宇春的签名?
8 保安虽然很愤怒,但是本着顾客是上帝的原则,答应试试.他穿好制服,拿起那块牌子又跑到联票中心去了(我们的保安真辛苦),联票中心很讲信誉,又发给了张票(PT)给保安,说用这个可以换李宇春签名.
9 保安帮你跑到李宇春这,把票子给李宇春,李宇春将信将疑,什么人那么大本领,能拿到我的签名.喂喂,那个谁,就是你,看帖的,帮我跑跑腿,看看这张票是不是真的.
10 李宇春的保安拿着票,也跑到联票中心,果然这张票是真的,不过也是一次性的,票也被收回去了.
11 李宇春写个签名交给周杰伦的保安.
12 周杰伦的保安把签名给了你.

看懂了?没看懂我也没办法了.


赞一个,说的很到位。PGT是一个对proxy而言永久的票据,通过PGT,proxy可以从CAS中心获取登陆任意后端系统的PT,但PT是一次性哒!要说的是,CAS对ticket使用url绑定机制,及一个请求操作+来源URL对应一个有效的Ticket

9 楼 bill008 2008-02-26  
罗的书就第一本精通spring比较差,后面的敏捷acegi还凑合。我访问了他的blog,感觉他对一些东西理解的还挺透的。还期待他那本cruisecontrol,不知道写的怎么样。
8 楼 luoshifei 2007-09-26  
我是罗时飞,刚看到你的问题。PGT/PT主要用于非B/S应用的场合,如果目标应用(服务)都是B/S应用,则不会涉及到PGT/PT的使用。至于《敏捷Acegi、CAS-构建安全的Java系统》一书中采用了B/S应用演示PGT/PT,这只是处于论述问题方便而考虑的,这一点在书中已经作了交代(书中P464-P.467作了交代,尤其是P464-P465对PGT/PT的问题背景作了详细介绍)。如果愿意,则你也可以在B/S应用中通过 PGT/PT实现SSO,但这不是Web SSO,也不是建议的做法。

这里再强调一点,PGT/PT主要用于非B/S应用的场合。

所以,你的理解存在问题,但并不表示书中存在错误。

以后类似问题你可以直接发邮件给我,同时我会在这几天公布出一免费的邮件列表,专门用来回答读者问题,广大的读者(包括你)在订阅这一邮件列表后便能够参与到问题的讨论中。

谢谢!
7 楼 luoshifei 2007-09-26  
全的Java系统》一书中采用了B/S应用演示PGT/PT,这只是处于论述问题方便而考虑的,这一点在书中已经作了交代(书中P464-P.467作了交代,尤其是P464-P465对PGT/PT的问题背景作了详细介绍)。如果愿意,则你也可以在B/S应用中通过PGT/PT实现SSO,但这不是 Web SSO,也不是建议的做法。

这里再强调一点,PGT/PT主要用于非B/S应用的场合。

所以,你的理解存在问题,但并不表示书中存在错误。

以后类似问题你可以直接发邮件给我,同时我会在这几天公布出一免费的邮件列表,专门用来回答读者问题,广大的读者(包括你)在订阅这一邮件列表后便能够参与到问题的讨论中。

具体见http://www.open-v.com

谢谢!
6 楼 daquan198163 2007-09-20  
不会吧。精通Spring 2.0很不错的,还有那本讲acegi的
5 楼 Saro 2007-09-14  
天啊,居然还有人买罗时飞的书。
4 楼 sg552 2007-09-14  

罗时飞的书,极差。

那本《精通Spring》,就是黑色背景,一个正方体冰块中包了一个房子的封面,差到家了。通篇堆砌SPRING源代码和配置文件。举的例子都不完整,语言晦涩难懂,根本就是baidu/google来的。

那本书让我扔了。以后再也不买他的了。
也不买那个“飞思科技”的书了。
3 楼 ebeach 2007-09-14  
呵呵 二楼的说的很有意思呀。

最近也要做个sso的东东,正在看。proxy的模式有点绕,而且使用面也很小就没再研究。

个人感觉把CAS基本模型的原理搞明白就行了。
2 楼 liquidthinker 2007-09-13  
楼上正解
1 楼 pikachu 2007-09-13  
abirdman 写道
现在在研究CAS SSO 参考书是罗时飞的那本ACEGI CAS,有个不明白的地方

在应用CAS Proxy时(注意这里讲的是代理模式),第一个客户系统验证通过后,得到了PGT,第2个系统如果不想再次去输入口令验证,就得用第一个系统中的PGT去计算出一个PT(而且还要在第一个系统内部算出来),然后把这个PT手工加在第2个系统的url后面作为ticket传进去才能通过,是这个意思吗?

那我难道每次都要客户把pt粘贴在url后面吗?是不是我理解错了


概念性错误!
proxy不是这样玩的(念 di)
1,如果要用proxy,web browser只访问第一个应用,后面的应用由前一个应用代理.
2,PT不是系统算的,是CAS给的
3,带pt的url是第一个系统发起的,不是用户输的

完整的CAS proxy场景打比方说是这样的

1 你去看周杰伦演唱会(我不喜欢周杰伦,但是CAS介绍都拿他打比方)
2 门口检票的不让你过,在你身上挂块牌子写着"这家伙想看周杰伦演唱会",然后把你打发到到联合办票中心
3 你乖乖掏钱买票
4 收到钱后,联合办票中心给你一张周杰伦演唱会的一次性票,并且在你身上别人看不见的地方又挂了块牌子"这家伙付过钱了,三小时内可以随便进出协议宾馆,酒店,洗浴中心,桑拿会馆......",这块牌子就是cas 1.0 模式的TGCookie,proxy里不使用.
5 办票中心知道你要看周杰伦演唱会,就把你送回来,还把票给保安.
6 保安收到票还不放心,亲自跑到联票中心,用这张票查一下,果然abirdman同学付过钱了.票被收回去了,但是又多拿回一个牌子,这块牌子上写着"见此牌,如abirdman亲临",还好,这块牌子不是一次性的,保安好好的保管着.这块牌子就是PGT,而且是通过PGTURL把牌子送回来的.但是这牌子只有去联票中心才管用,别人不吃这一套.
7 你看着周杰伦演唱会,忽然想起李宇春来了,作为一个"玉米",你很不好意思的问保安,能不能给我弄张李宇春的签名?
8 保安虽然很愤怒,但是本着顾客是上帝的原则,答应试试.他穿好制服,拿起那块牌子又跑到联票中心去了(我们的保安真辛苦),联票中心很讲信誉,又发给了张票(PT)给保安,说用这个可以换李宇春签名.
9 保安帮你跑到李宇春这,把票子给李宇春,李宇春将信将疑,什么人那么大本领,能拿到我的签名.喂喂,那个谁,就是你,看帖的,帮我跑跑腿,看看这张票是不是真的.
10 李宇春的保安拿着票,也跑到联票中心,果然这张票是真的,不过也是一次性的,票也被收回去了.
11 李宇春写个签名交给周杰伦的保安.
12 周杰伦的保安把签名给了你.

看懂了?没看懂我也没办法了.

相关推荐

    cas-proxy认证

    通过本文档的学习,我们可以了解到 CAS-Proxy 认证是一种高效且安全的单点登录解决方案,尤其适用于需要跨多个后端服务进行认证的复杂应用场景。通过对 CAS-Proxy 认证的基本原理、配置方法以及实践案例的深入理解,...

    CAS--SSO单点用到的jar包

    SSO允许用户在访问多个应用系统时只需要进行一次身份验证,之后访问其他系统无需再次输入凭证,提高了用户体验和安全性。下面将详细解释标题和描述中涉及到的几个关键jar包以及它们在CAS SSO中的作用。 1. **cas-...

    CAS-SSO源码包(两个版本)

    SSO允许用户在一次登录后访问多个应用系统,而无需为每个系统分别进行认证,大大提升了用户体验。这个压缩包包含了CAS服务器的源代码,提供了两个不同版本,可能是为了满足对不同功能需求或兼容性的研究。 CAS的...

    Yale CAS SSO DotNet Client

    "Yale CAS SSO DotNet Client" 是一个专为.NET框架设计的客户端库,用于集成耶鲁大学(Yale)的中央认证服务(Central Authentication Service, CAS)。CAS是一种开源的身份验证协议,它允许用户通过单一登录...

    CAS 框架 SSO的实现.pdf

    - 当用户再次访问其他已受保护的Web应用时,CASClient会尝试获取TGC,并使用TGC来请求Service Ticket。 - 如果TGC有效,则CASServer生成新的Service Ticket并返回给CASClient。 - 这样用户无需重复登录即可访问...

    CAS + .net Client 实现 SSO部署说明.rar

    SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在一次登录后访问多个应用系统,无需为每个系统分别进行登录。本部署说明主要围绕CAS(Central Authentication Service)服务器与.NET客户端如何协同实现...

    CAS单点登录(SSO)完整教程

    CAS(Central Authentication Service)是 Yale 大学发起的一个开源项目,它提供了一种在Web 应用中统一处理用户认证的解决方案,被称为单点登录(Single Sign-On,简称SSO)。SSO允许用户在一个系统中登录后,无须...

    基于Tomcat6的CAS SSO配置

    除了基本的SSO功能,CAS还支持Proxy模式,允许一个应用代表用户去获取其他应用的Service Ticket,以实现更复杂的跨域认证需求。这在多应用集成或者需要后台服务之间相互认证的场景中非常有用。 总的来说,基于...

    sso demo 例子

    这个压缩包中的"SSO_CAS_Demo"很可能是包含了一个演示性的SSO实现,可能包括服务提供商应用和服务端的CAS服务器配置。通常,这个Demo会包含以下部分: - 服务提供商应用代码:演示如何配置应用以使用CAS进行身份...

    SSO是什么?CAS是什么?

    为了实现SSO,CAS使用了一种名为“代理票证”(Proxy Ticket)的机制,允许一个已经认证过的用户代表另一个系统获取访问权限。这使得CAS能够跨域提供服务,增强了系统的灵活性和可扩展性。 总的来说,SSO和CAS都是...

    【转载】CAS实现单点登录(SSO)经典完整教程

    CAS(Central Authentication Service)是一种广泛使用的开放源码的单点登录(Single Sign-On,简称SSO)框架,它为各种应用程序提供了统一的认证服务。在本文中,我们将深入探讨如何利用CAS实现单点登录功能,这将...

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

    CAS 协议 票据、url 介绍,包括 cas1.0 和 cas2.0 CAS 协议是一个基于 HTTP 的协议,分为两部分:票据(Ticket)和 URL。CAS 协议的主要目的是提供单点登录(SSO)功能,实现用户的身份验证和授权。 票据(Ticket...

    CAS SSO

    CAS SSO 是一个开源的身份验证框架,它允许用户通过单一登录(Single Sign-On,SSO)在多个应用程序之间移动,无需多次输入他们的凭证。这提高了用户体验并增强了安全性,因为用户只需要记住一套登录凭据。CAS 的...

    cas-server-3.5.1和cas-client-3.2.1

    CAS(Central Authentication Service)是一种广泛使用的开放源代码的单点登录(Single Sign-On,简称SSO)系统,它允许用户通过一个认证入口访问多个应用系统,而无需在每个系统上分别进行登录。在这个压缩包中,...

    cas 配置client 1.0 &2.0 及proxy DEMO 说明

    CAS(Central Authentication Service)是一种基于Web的单点登录(Single Sign-On, SSO)协议,它允许用户通过一个认证入口登录,然后访问多个受保护的应用系统,而无需再次进行身份验证。在本文中,我们将详细讨论...

    net_proxy_demo.rar_CAS_breathkbl_sincedld_金智的cas_金智统一认证

    用户在访问受CAS保护的应用时,会被重定向到CAS服务器进行身份验证。一旦验证成功,CAS会返回一个服务票据(Service Ticket),这个票据是访问其他受保护资源的凭证。应用系统通过验证这个票据,确认用户的身份,...

    利用CAS实现单点登录的完整实例

    同时,每个需要保护的应用系统也需要配置为CAS客户端,这通常涉及到修改应用的过滤器配置,以便在用户尝试访问时引导他们到CAS服务器进行认证。 在"cas-demo"这个压缩包中,可能包含了用于演示如何设置和运行CAS...

    sso系统CAS配置[总结].pdf

    SSO(Single Sign-On)系统是一种身份验证机制,允许用户在一个应用系统中登录后,无需再次登录即可访问其他相互信任的应用系统。CAS(Central Authentication Service)是SSO的一种开源实现,广泛应用于各种软件...

    CAS(Central Authentication Service、中央认证服务)

    CAS的出现解决了多应用系统下用户管理与认证的复杂性问题,提高了用户体验并增强了安全性。 CAS的核心概念包括: 1. **认证服务器**:这是CAS系统的核心部分,负责处理用户的身份验证请求。当用户尝试访问受保护的...

Global site tag (gtag.js) - Google Analytics