Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Single sign on CAS中的单点注销_Single Sign On_Logout_Saml_Cas_Jasig - Fatal编程技术网

Single sign on CAS中的单点注销

Single sign on CAS中的单点注销,single-sign-on,logout,saml,cas,jasig,Single Sign On,Logout,Saml,Cas,Jasig,我是使用CAS的初学者,我正在我的一个项目中使用它来使用它的单点登录服务。到目前为止,我已经实现了单点登录,我有一个JAVA客户端和一个PHP客户端。但是为了使用单点注销功能,我根据配置了我正在运行的CA。我已经在我的工作CA的deployerConfigContext.xml中完成了所有更改。我的CAS正在运行,但在注销时它不会显示任何SAML注销请求。我使用的是我自己制作的官方PHP客户端和Java客户端。我想这可能是因为我无法在客户端配置这些行 通知的完成方式(后通道或前通道)通过logo

我是使用CAS的初学者,我正在我的一个项目中使用它来使用它的单点登录服务。到目前为止,我已经实现了单点登录,我有一个JAVA客户端和一个PHP客户端。但是为了使用单点注销功能,我根据配置了我正在运行的CA。我已经在我的工作CA的deployerConfigContext.xml中完成了所有更改。我的CAS正在运行,但在注销时它不会显示任何SAML注销请求。我使用的是我自己制作的官方PHP客户端和Java客户端。我想这可能是因为我无法在客户端配置这些行

通知的完成方式(后通道或前通道)通过logoutType属性在服务级别进行配置。默认情况下,此值设置为LogoutType.BACK_通道

通过这行代码我无法理解,实际上我必须将Logouttype设置为BACK_CHANNEL,如果是我的客户机,那么为什么它默认设置为BACK_CHANNEL,因为任何人都可以创建客户机

非常感谢您的帮助。
提前感谢。

请查看jasig文档:

当CAS会话结束时,它会通知每个服务SSO 会议不再有效,依赖方需要 使他们自己的会话无效

这可以通过两种方式实现:

CAS将HTTP POST消息直接发送到服务(反向通道通信):这是传统的执行方式 通知服务

CAS使用消息和RelayState参数(前通道通信)重定向(HTTP 302)到服务:此功能是 受SAML SLO启发,如果客户端应用程序 由多个服务器组成,并使用会话关联。预期的 CAS客户端的行为是使web应用程序无效 会话并使用RelayState重定向回CAS服务器 参数

重要的是:

使用警告

此时,前通道SLO仍处于试验阶段

因此,SSO服务器直接向应用程序发送请求。身份验证器识别此请求是一个特殊请求,并注销被引用的用户

更新:

请查看以下链接:

您是否在applicationContext中意外删除或覆盖了logoutManager声明?在您的running spring上下文中是否有logoutManager bean

首先,我将在LogoutManagerImpl.java的handlelogoutforslosservice、performBackChannelLogout和performLogout方法中设置断点

他们被叫来了吗

你能穿过它们吗

是否调用performBackChannelLogout

performBackChannelLogout中的.httpClient.sendMessageToEndPoint(msg)是否成功?
如果您登录到2个服务,则应使用两个服务URL调用performBackChannelLogout两次

正如我之前所问的,“我无法理解这一行实际上我必须将Logouttype设置为BACK_CHANNEL的位置”。因此,当我看到Tomcat服务器的访问日志时,我无法获取SLO消息。实际上,现在我能够接收SLO消息的POST(是一些证书问题),但我无法使用request.getParameter(“logoutRequest”)检索它,它显示为空。你能帮我一下吗。你用的是哪个验证器?我用的是CAS(中央身份验证服务)。是的,但是php还是java客户端?java过滤器还是验证器(valvebase)?