zoukankan      html  css  js  c++  java
  • CAS学习笔记二:CAS单点登录流程

    背景

    由于公司项目甲方众多,各甲方为了统一登录用户体系实现单点登录(SSO)开始要求各乙方项目对接其搭建的CAS单点登录服务,有段时间对CAS的流程很迷,各厂商还有基于CAS进行二次开发的情况,所以对它的官方文档进行了一定的学习,记录下来帮助有需要的同学。

    由于CAS的验签协议较多,此处将仅使用 验签 略过其子流程,感兴趣的可以查看官方文档进行系统学习。

    术语

    此处将不介绍验签相关的术语,约等于CAS1

    • CAS (Central Authentication Service) - 中央认证服务器
    • SSO (Single Sign On) - 单点登录
    • CAS Client - 集成CAS登录流程的应用服务
    • TGT (Ticket Granting Ticket) - 存在 CAS 服务端的用户票据,可使用此票据颁发ST
    • TGC (Ticket Granting Cookie)- 存在浏览器的 Cookie,对应 CAS 服务端的 TGT
    • ST (Service Ticket) - 服务票据,CAS为每个登录成功的应用服务生成唯一票据,对应应用服务的服务名(serverName)

    CAS单点登录流程

    单点登录流程:

    1~5步 为首次访问服务A的单点登录流程,6~9步为访问A服务单点登录成功后再访问服务B的单点流程

    1. 用户通过浏览器请求服务A资源
    2. 服务A校验发现此请求未认证,重定向浏览器到CAS服务端登录地址
    3. 用户通过浏览器输入用户名密码,发起登录请求
    4. CAS服务端校验用户名密码通过,响应头会将TGC写入浏览器CAS域名的Cookie中,重定向浏览器到 服务A地址 + 服务A的ST
    5. 服务A向CAS服务端发起校验ST请求,验证通过后服务A重定向请求到服务A未携带ST的地址,业务响应返回结果
    6. 用户通过浏览器请求服务B的资源
    7. 服务B发现此请求未认证,重定向浏览器到CAS服务端登录地址,由于CAS地址的Cookie有TGC,重定向时会被携带传递给CAS服务端
    8. CAS服务端校验TGC发现有对应的TGT,颁发ST给服务B,重定向浏览器到 服务B + 服务B的ST
    9. 服务B向CAS服务端发起校验ST请求,验证通过后服务B重定向请求到服务A未携带ST的地址,业务响应返回结果

    总结

    1. 用户登录成功会创建TGT,由TGT颁发ST。
    2. 用户浏览器端会保存TGC,它对应一个TGT
    3. 浏览器端存在未过期的TGC,访问CAS服务端时携带TGC,CAS使用TGT颁发ST,实现单点登录

    本文同步于本人博客园(hellxz.cnblogs.com) 与 CSDN(https://blog.csdn.net/u012586326),禁止转载。

  • 相关阅读:
    SQL中的聚合函数
    vs移动团队项目集合
    网页变量的赋值示例
    PRD、MRD、BRD的含义
    w3cschool中jQuery测试结果总结
    sql队伍的胜负情况
    winform中获取当前周次
    select2 的使用
    layui layer table 常见问题
    spring websocket tomcat was websphere9.0 Multiple Endpoints may not be deployed to the same path
  • 原文地址:https://www.cnblogs.com/hellxz/p/15766277.html
Copyright © 2011-2022 走看看