cas-01

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架构】