我们正在使用WSO2 Identity Server 5.3.0。我在WSO2 IDP(符号名称“IDP1”)和服务提供者(符号名称“SP1”)之间配置了信任。然后我在作为服务提供者(“SP2”)的WSO2和联合IDP(符号名称“IDP2”,一些公共/政府服务)之间配置了第二个信任。 SP1保护某些资源,只有在用户通过IDP2身份验证时才会授予对它们的访问权限。一切都基于SAML协议。 登录工作正常 - 登录请求从WSO2(= IDP1)重定向到IDP2。 IDP1启动注销也很好。 但IDP2启动注销失败并显示消息(在浏览器中):“注意:在身份验证过程中出现问题。请尝试重新登录。”它生成WSO2日志的记录:“{... DefaultRequestCoordinator}上下文不存在。可能是由于缓存无效”。 在IDP2发起的注销期间,正确的LogoutRequest被发送到WSO2(https://amsrv.mydomain.org:9443/commonauth)。 WSO2是否支持这种情况(IDP2启动注销)?
答案 0 :(得分:0)
SLO基于会话ID工作。您不能使IDP无法识别的会话无效。
您的日志变为指示上下文[由SLO请求中提供的会话ID指向]不存在,因此无法终止。
请关闭流程上的加密,放一个Wireshark并查看它。 WSO2IS在用户dahsboard中提供一个屏幕,以查看哪个会话是打开的以及哪些ID。
我怀疑IdP2正在发送Client和IdP2之间会话的会话ID ...而不是Client和IdP1之间会话的会话ID。
杰夫