• cas系列-cas登出(四)


    跟登陆一样,登出操作也很重要.由于是多应用间操作,状态保持也是一个要点,根据登出的影响范围,可以将登出操作分为两类:

    • 单应用登出
    • 单点登出(多应用登出)

    顾名思义,单应用登出即登出只影响被操作的应用会话,其他应用和CAS会话状态不受影响.这也就需要你退出每一个应用,如果应用数量较多,每次退出可能都是件力气活.单点登出是结束SSO会话,所有建立在SSO会话上的的应用会话都会进行登出.使用户的状态保持一致.当应用间会话记录不一致时,登出操作可能会造成会话记录丢失;

    • 登出操作:
    /logout?service=http://redirectUrl

    根据CAS协议,/logout终点可以销毁当前SSO回话.

    根据重定向配置的不同,可以分为三种方式:

    第一种:全局重定向

      在cas的配置文件中,通过cas.logout.redirectUrl参数可以定义全局重定向地址.

    第二种:参数重定向

      通过service参数定义登出重定向地址,启用service参数需要在允许服务重定向,相关配置如下:

    cas.logout.followServiceRedirects=true 
    cas.logout.redirectParameter=service
    cas.logout.redirectUrl=https://www.github.com
    cas.logout.confirmLogout=false
    cas.logout.removeDescendantTickets=true

    第三种:服务级别重定向

      在注册服务中定义logoutUrl参数进行定义重定向地址;

    {
      "@class" : "org.apereo.cas.services.RegexRegisteredService",
      "serviceId" : "testId",
      "name" : "testId",
      "id" : 1,
      "logoutType" : "BACK_CHANNEL",
      "logoutUrl" : "https://web.application.net/logout"
    }
    logoutType:分为FRONT_CHANNEL,BACK_CHANNEL
      FRONT_CHANNEL:显示登出.cas直接发送http post请求到服务;
      BACK_CHANNEL:隐式登出.cas发送异步ajax get请求到已认证服务.通过cas客户端使应用会话失效;

    • 关闭单点登出:

    需要在cas配置文件中增加如下配置,单点登出默认开启

    cas.slo.disabled=true
    cas.slo.asynchronous=true
    • SSO会话和应用会话

    SSO会话是CAS通过TicketGrantingTicket和TGC进行状态保持而建立的会话;

    应用会话:应用进行状态保持而建立的会话;

    CAS不是一个应用会话管理工具,应用会话管理应该是应用自身的职责.当认证工作完成之后,CAS就会退出整个业务逻辑,后续的功能应该是应用自身完成.

  • 相关阅读:
    zw版【转发·台湾nvp系列Delphi例程】HALCON CropPart
    zw版【转发·台湾nvp系列Delphi例程】HALCON ObjToInteger1-4
    zw版【转发·台湾nvp系列Delphi例程】HALCON TestObjDef
    zw版【转发·台湾nvp系列Delphi例程】HALCON DispCross
    ios-toolchain-based-on-clang-for-linux
    使用gdb调试theos tweak插件
    设置RabbitMQ远程ip登录
    ARC下带CF前缀的类型与OC类型转换
    laravel部署常用命令
    国产手机插入mac os 系统中无法被识别的解决方法
  • 原文地址:https://www.cnblogs.com/chengmuyu/p/10051305.html
Copyright © 2020-2023  润新知