zoukankan      html  css  js  c++  java
  • 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就会退出整个业务逻辑,后续的功能应该是应用自身完成.

  • 相关阅读:
    mysql的四种隔离
    mysql-事物
    Mysql数据备份
    线程池
    springboot整合log4j2
    springboot项目部署
    数组去重
    倒叙输出算法
    使用LLDB和debugserver对ios程序进行调试
    Linux使用pyinstaller 编译py成可执行程序
  • 原文地址:https://www.cnblogs.com/chengmuyu/p/10051305.html
Copyright © 2011-2022 走看看