论坛首页 Java企业应用论坛

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

浏览 9230 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间: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

0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics