Cas认证基本概念
- SSO Single Sign On 单点登录
- TGT Ticket Granting Ticket 用户身份凭证票据(令牌,存在与浏览器与S端)
- ST Service Ticket 服务许可凭证票据(随机参数,每次S端校验后作废)
- TGC Ticket Granting Cookie 存放用户身份认证票据(存放令牌)的cookie ,浏览器关闭就失效
认证过程
- 1 web1的客户端检测到session无令牌凭证信息,将用户重定向到casserver
2 s端检测到传来的请求没有带(st)证书 参数,所以跳转到Login界面进行用户登陆验证
3 s端登陆认证结束后生成TGT令牌 和 随机的Ticket-ST证书 ,
并在用户的浏览器写入cookie STC,
随后让用户的浏览器重定向到web1应用中,并将随机参数ST证书带上一起带过去,之后web1的cas客户端将检测到此ST证书参数,
发送到Server端进行校验,校验成功后,服务端主动销毁此ST证书,并继续返回web1应用中,
web应用此时将令牌信息写入自己的Session中,从而完成用户的单点登陆认证。
服务端同样的也会用一个Map记录web1假如到单点登陆范围。4 带参重定向到web1
- 5 拿到ST参数发送到s端进行校验
- 6 校验成功,进入web1应用,w1将令牌凭证TGT写如session
web2 发出请求
此时用户第一次访问web2应用,
web2在自己的session中无法找到令牌信息。所以将用户重定向到S端,
S端拿到用户浏览器传来的cookie,从里面读取TGT,
生成一个随机的ST证书,
返回w2,w2拿到ST证书,就立即和S端进行校验,
S端校验成功后,立即销毁此ST证书,
并将web2加入到单点登陆范围内,
用户此时在web2中进行业务操作,
web2同样也会在seesion中记录此令牌凭证的,至此完成用户单点登陆功能当用户下次访问web1或者web2的时候,
由于各自session中都能拿到TGT信息,
只需要从中的取到每次请求时所带的ST证书参数即可和S端进行交互校验正确后达到一站登陆,N站访问的SSO效果。
校验最后一登陆的信息。w2让用户浏览器带cookie重定向到S端
- s端从cookie中找到了TGT,生成ST证书返回到w2
- w2根据参数ST返回到S端进行校验
- 校验成功后可以访问W2,W2的令牌写入Session
【H:\archive\17-06-06\cas架构】