CAS5 Client单点登出即一处注销处处注销
像单点登录一样,单点登出也是一处操作处处生效。
单点登录是靠拦截一个登录路径判断有无ticket,进而选择是获取登录信息在CAS Client取更多的用户信息装载入session后直接登录还是去CAS server认证后登录;
单点登出是在一个Client 通过cas logout发起登出后,CAS Server进行回调各个Client的接口并传入对应的sessionId,各个Client需要自己注销该用户。
所以CAS Server中的每个Client配置如下
{
"@class" : "org.apereo.cas.services.RegexRegisteredService",
"serviceId" : "^http://itosdemo.com.*",
"name" : "Easyop",
"theme" : "easyop",
"id" : 1001,
"description" : "Easyop service",
"evaluationOrder" : 1,
"logoutType" : "BACK_CHANNEL",
"logoutUrl": "http://itosdemo.com:8083/itos/logout.action"
}
在笔者的开发中,未发现回调,最后排查原因是:CAS Server回调Https是会报不安全的错误,所以请注意你的开发环境中的Https是否已经认证。
参考文档
https://stackoverflow.com/questions/39599243/cas-single-logoutslo-not-working-cas-4-2-3
https://wiki.jasig.org/display/CAS/Proposal%3A+Front-Channel+Single+Sign-Out
https://wiki.jasig.org/display/casum/single+sign+out
https://apereo.github.io/cas/5.1.x/installation/Logout-Single-Signout.html#front-channel