B\S备忘录15——旁友,票子要伐

  研究了几天的单点登录,.Net这边关于单点登录的资料不多,强行让自己看了一波java资料,虽然实现方法有差别,但是原理都是差不多的,应该能用得上。

  单点登录,用户只需要登陆一次,就能访问所有其他应用,退出一次,不管再进哪个应用都需要进行登陆。相当于进游乐场买的那张门票,然后一票通,听起来是不是很厉害?话说真的有一票通的游乐场吗- -

  其实没有那么厉害的,我们如果使用cas作为单点登录的服务端的话,只需要进行一些配置,并且让这个cas的服务端跑起来,再在我们自己的应用中添加一点配置文件的内容就行了。

  先不说怎么做了,不然怎么水博客啊,先说说所谓的单点登录是怎么实现的。

  在第一次登陆系统的时候,系统通过Filter进行拦截,先检查一下客户端有没有cas服务端发的凭证,这个凭证又称服务票据(Service Ticket),如果没有这个ST,不好意思,出门左拐去cas服务端买票。

  那么我们怎么知道cas服务端的地址呢?配置文件中有人指路,我们在加入权限Filter的时候配置过cas,哪些配置文件中

  <casClientConfig casServerLoginUrl="http://192.168.24.247:8113/cas/login" 
			casServerUrlPrefix="http://192.168.24.247:8113/cas/" 
			serverName="http://192.168.24.247:7060/" 
			redirectAfterValidation="true" renew="false" 
			singleSignOut="true" 
			ticketValidatorName="Cas20" 
			serviceTicketManager="CacheServiceTicketManager" />
  嗯,就是这告诉我们如果没有票去哪买。

  然后就是输入用户名,密码买票呗。票子买好之后,咱得把票带在身上是吧,以后去哪个应用都要拿出来给人家看看,所以这个时候,cas服务端会传给客户端一个TGT(Ticket grant ticket),和一个ST。然后把这两个东西存在客户端的Cookie中,Cookie的key值应该是这个TGT,value就是ST了。

  认证完成之后,服务端会直接重定向到之前要访问的的页面,并且会把ST作为参数放到URL中,这个时候应用看到有ST,会去cas服务端在验证一下是不是真的,如果是真的,说明这个ST有效,将用户信息放到Session中,并且允许用户访问应用。

  大概的流程就是下面这个样子。

  
  仔细看看好像并没有什么难得地方,说看不懂的都是在骗自己,遇到问题不要怕,输一次没关系,但是怂就输一辈子。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 30
    评论
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值