单点登录2 (https://blog.youkuaiyun.com/javaloveiphone/article/details/52439613)

本文详细阐述了CAS(Central Authentication Service)认证流程,包括系统A如何判断用户登录状态、重定向至认证中心的过程、登录后的令牌传递方式以及系统A验证令牌的具体步骤。

è¿éåå¾çæè¿°

访问不受保护的资源不需要判断登录;

1)用户访问 系统A 受保护资源,系统A做登录检查,若已登录,返回受保护资源;

2)若未登录,则重定向到认证中心,认证中心判断是否存在全局票据;

3)若不存在,则需要展示登录页,让用户登录,登录后生成全局票据,认证中心重定向请求到系统A,并附上认证通过令牌;若存在 认证中心重定向到系统A,并附上认证通过令牌;

4)系统A从第三步获得令牌,用令牌到认证系统认证,若通过认证,认证中心返回用户信息给系统A,系统A就可以标记登录状态;

5)系统A返回受保护资源给用户

 

 

1)、问:系统A是如何发现该请求需要登录重定向到认证中心的? 
答:用户通过浏览器地址栏访问系统A,系统A(也可以称为CAS客户端)去Cookie中拿JSESSION,即在Cookie中维护的当前回话session的id,如果拿到了,说明用户已经登录,如果未拿到,说明用户未登录。

2)、问:系统A重定向到认证中心,发送了什么信息或者地址变成了什么? 
答:假如系统A的地址为http://a:8080/,CAS认证中心的服务地址为http://cas.server:8080/,那么重点向前后地址变化为:http://a:8080/————>ttp://cas.server:8080/?service=http://a:8080/,由此可知,重点向到认证中心,认证中心拿到了当前访问客户端的地址。

3)、问:登录成功后,认证中心重定向请求到系统A,认证通过令牌是如何附加发送给系统A的? 
答:重定向之后的地址栏变成:http://a:8080/?ticket=ST-XXXX-XXX,将票据以ticket为参数名的方式通过地址栏发送给系统A

4)、问:系统A验证令牌,怎样操作证明用户登录的? 
答:系统A通过地址栏获取ticket的参数值ST票据,然后从后台将ST发送给CAS server认证中心验证,验证ST有效后,CAS server返回当前用户登录的相关信息,系统A接收到返回的用户信息,并为该用户创建session会话,会话id由cookie维护,来证明其已登录。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值