SSO单点登录系列2:cas客户端和cas服务端交互原理动画图解cas协议终极.重点.doc

SSO单点登录系列2:cas客户端和cas服务端交互原理动画图解cas协议终极.重点.doc

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1)PPT流程图: 一、用户第一次访问web1应用。 ? ? ? 二、用户第一次访问web2应用。 ? ? 困扰了好久的流程,其实静下进来搜个一二十篇百度上的讲解,集众家之所长,加上自己的理解,不难发现,流程理解下来很是简单。 下面讲一下原理: ? ? ? ? 2)简易流程图: 一、用户第一次访问web1应用 ? 二、用户第一次访问web2应用 ? ? ? ? 3)文字流程: 一、用户第一次访问web1应用 1、Web1的客户端检测到session中无令牌凭证信息,将用户重定向到Cas-server端进行验证。 2、s端检测到传来的请求没有带ST参数,所以跳到Login页面进行用户登录验证。 3、s端认证结束后,生成TGT令牌和随机Ticket-ST,并且在用户的浏览器中写入Cookie-STC,随后让用户的浏览器重定向到Web1应用中,并将随机参数ST带上一起传参过去,之后Web1的cas客户端将检测到此ST参数,发送到server端进行校验,校验成功之后,服务端主动销毁此ST,并继续返回到web1应用中,web1应用此时将令牌信息写入到自己的session中,从而完成用户的单点登录认证,服务端同样的也会用一个Map记录web1加入到单点登录范围内。 4、带上ST参数重定向到web1应用。 5、web1拿到ST参数发送到s端进行校验。 6、校验成功,进入W1应用,w1将令牌凭证TGT写入session,与此同时,完成用户第一次访问应用web1的情形。 二、用户第一次访问web2应用 1、此时,用户第一次访问Web2应用,web2在自己的session中无法找到令牌信息,所以将用户重定向到S端,S端拿到用户的浏览器传来的cookie,从里面读出TGT,生成一个随机的ST,发回w2,w2拿到ST,就立即和S端进行校验,S端校验成功后,立即销毁此ST,并将web2加入到单点登录范围内,用户此时可以在Web2中进行业务操作,web2也同样的会在session中记录此令牌凭证,至此,完成用户的单点登录功能。当用户下次访问web1或者web2的时候,由于各自的session中能够拿到TGT信息,所以,只需要从中读到每次请求时所带的ST参数即可和S端进行交互,验证正确之后达到一站登录,N站访问的SSO效果。 2、w2让用户浏览器带cookie重定向到S端。 3、s端认证结束后,生成TGT令牌和随机Ticket-ST,并且在用户的浏览器中写入Cookie-STC,随后让用户的浏览器重定向到Web1应用中,并将随机参数ST带上一起传参过去,之后Web1的cas客户端将检测到此ST参数,发送到server端进行校验,校验成功之后,服务端主动销毁此ST,并继续返回到web1应用中,web1应用此时将令牌信息写入到自己的session中,从而完成用户的单点登录认证,服务端同样的也会用一个Map记录web1加入到单点登录范围内。 4、w2根据参数ST发回到s端进行校验 5、校验成功,可以访问W2,W2令牌写入session。 4)程序流程 来两段程序玩玩,打开你的火狐谷歌调试器,IE的就算了。 用Tomcat?7?搭载?cas-server?端。 用Tomcat?6?搭载你的web1和web2和web3... 之后我们开始今天的玩法 1.不登陆直接访问client2 2.不登陆直接访问client3 3.登录client2成功后,访问client3(同域?) 4.登录client3成功后,访问client2(同域?) 5.登录client2或者client3成功后,访问client4(不同域) 6.用client2去访问client3?(同域情况下用ajax拿后台的数据过来)(同域?) 7.用client2去访问client4(不同域情况下用ajax+jsonp跨域拿后台数据)(不同域?) 8.你是不是又想到了更疯狂的,来留言实验一把。 实验截图和结果以及调试分析: 测试一: (1)不登陆直接访问client2 (2)不登陆直接访问client3 client2的web.xml ? !-- 用于单点登录 -- filter filter-nameCAS Filter/filter-name filter-class edu.yale.its.tp.cas.client.filter.CASFilter /filter-class init-param param-name edu.yale.its.tp.cas.client.filter.loginUrl /param-nam

文档评论(0)

富贵礼包 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档