Single sign on 具有WSO2I的SLO,idp不包括登录请求中的发卡机构

Single sign on 具有WSO2I的SLO,idp不包括登录请求中的发卡机构,single-sign-on,logout,saml-2.0,wso2is,spring-saml,Single Sign On,Logout,Saml 2.0,Wso2is,Spring Saml,在此设置中,我将wso2is用作idp,将2个应用程序用作sp。其中一个应用程序使用java、spring安全saml扩展,另一个使用php和simplesamlphp。SSO工作正常,但我无法使SLO工作 我所做的是: 在两个sp-s中登录 在第一个sp中注销 查看wso2日志,查看wso2是否已向第二个sp发送logoutrequest 第二个sp无法读取logoutrequest simplesamlphp错误消息: SimpleSAML_Error_BadRequest: BADREQU

在此设置中,我将wso2is用作idp,将2个应用程序用作sp。其中一个应用程序使用java、spring安全saml扩展,另一个使用php和simplesamlphp。SSO工作正常,但我无法使SLO工作

我所做的是:

  • 在两个sp-s中登录
  • 在第一个sp中注销
  • 查看wso2日志,查看wso2是否已向第二个sp发送logoutrequest
  • 第二个sp无法读取logoutrequest
  • simplesamlphp错误消息:

    SimpleSAML_Error_BadRequest: BADREQUEST('%REASON%' => 'Received message on logout endpoint without issuer.')
    
    idp发布的saml2 LogoutRequest:

    <?xml version="1.0" encoding="UTF-8"?>
    <saml2p:LogoutRequest ID="ljknoccfdhjcgelcpmbicffooeokboficpggcmpi"  IssueInstant="2014-04-08T06:45:19.944Z" NotOnOrAfter="2014-04-08T06:50:19.944Z" Reason="urn:oasis:names:tc:SAML:2.0:logout:user" Version="2.0" xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol">
        <saml2:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity" xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">EXAMPLE.AT/test01@domain.com</saml2:NameID>
        <saml2p:SessionIndex>5f14fc6e-1c31-42e1-b7c2-e1501bf400a8</saml2p:SessionIndex
    </saml2p:LogoutRequest>
    
    
    例如:AT/test01@domain.com
    
    5f14fc6e-1c31-42e1-b7c2-e1501bf400a8正如您在规范中发现的,发卡机构元素是强制性的。SP使用它来标识发件人。如果没有它,SP将不得不开始猜测是谁发送了消息,因为它可能同时连接到多个IDP。该问题应作为错误报告给wso。

    这在即将发布的Identity Server 5.1版本中已修复。


    我目前正在使用5.0.0,并最终修补了许多类似的东西,这样我就可以拥有所需的功能。一旦你适应了环境,做这件事并不太糟糕。您需要修补carbon平台4.2.0 chunk11的“identity”模块中的“org.wso2.carbon.identity.sso.saml”组件

    我这里也有同样的问题。我使用2个PHP应用程序(使用onelogin PHP saml)成功地配置了SSO,并且WSO2是5.0.0作为身份提供者。当IDP发送LogoutRequest时,不包括发卡机构。你找到解决这个问题的办法了吗?