在我们的开发环境中,我们在应用程序中使用WSO2 Identity Server(版本5.9)和SAML2 SSO / SLO登录用户。
我们的开发包括单个应用程序的多个分支,这些分支都与WSO2中的单个服务提供商进行通信并验证用户身份。每个分支具有以下结构:
Branch 1
ACS URL: https://branch1-dev.company.com/login/saml2-acs.php/dev-sp
Logout Response URL: https://branch1-dev.company.com/saml2-logout.php/dev-sp
Branch 2
ACS URL: https://branch2-dev.company.com/login/saml2-acs.php/default-sp
Logout Response URL: https://branch2-dev.company.com/saml2-logout.php/dev-sp
WSO2中的服务提供者正在使用Signature Validation in Authentication Requests and Logout Requests
和Response Signing
。登录功能按预期运行,登录声明被分派到每个分支的ACS URL,AuthnRequests
按预期进行处理。
但是,根据文档,当我们在未定义SLO响应URL的情况下启用SLO(HTTP-POST)时,将SP发起的LogoutResponse
后的LogoutRequest
分派到当前没有的ACS URL无法处理LogoutResponses(我们正在为此使用SimpleSAMLphp,并且断言使用者服务不处理注销响应)。
如果我们将固定URL设置为SLO响应URL(例如https://branch2-dev.company.com/logout
),则从分支1注销将重定向到分支2的注销URL,该URL无法正常工作。
我认为有3种解决方案:
是否可以以某种方式支持第三个选项?