WSO2 IS - 使用IdentitySAMLSSOService进行单点注销

时间:2015-06-09 18:26:57

标签: wso2 single-sign-on saml wso2is

我想使用IdentitySAMLSSOService.wsdl来使用doSingleLogout方法结束会话,但我找不到任何文档。该方法要求sessionId,问题是我不知道在哪里找到该值,我在查看SAML响应,标题等。

    <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://org.apache.axis2/xsd">
       <soap:Header/>
       <soap:Body>
          <xsd:doSingleLogout>
             <!--Optional:-->
             <xsd:sessionId></xsd:sessionId>
          </xsd:doSingleLogout>
       </soap:Body>
    </soap:Envelope>

输出似乎总是与我尝​​试的所有值相同。

<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
   <soapenv:Body>
      <ns:doSingleLogoutResponse xmlns:ns="http://org.apache.axis2/xsd">
         <ns:return xsi:type="ax2362:SAMLSSOReqValidationResponseDTO" xmlns:ax2360="http://base.identity.carbon.wso2.org/xsd" xmlns:ax2362="http://dto.saml.sso.identity.carbon.wso2.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ax2364="http://util.java/xsd">
            <ax2362:assertionConsumerURL xsi:nil="true"/>
            <ax2362:destination xsi:nil="true"/>
            <ax2362:doSingleLogout>false</ax2362:doSingleLogout>
            <ax2362:forceAuthn>false</ax2362:forceAuthn>
            <ax2362:id xsi:nil="true"/>
            <ax2362:idPInitSSO>false</ax2362:idPInitSSO>
            <ax2362:issuer xsi:nil="true"/>
            <ax2362:logOutReq>true</ax2362:logOutReq>
            <ax2362:loginPageURL xsi:nil="true"/>
            <ax2362:logoutRespDTO xsi:nil="true"/>
            <ax2362:logoutResponse xsi:nil="true"/>
            <ax2362:passive>false</ax2362:passive>
            <ax2362:queryString xsi:nil="true"/>
            <ax2362:requestMessageString xsi:nil="true"/>
            <ax2362:response xsi:nil="true"/>
            <ax2362:rpSessionId xsi:nil="true"/>
            <ax2362:subject xsi:nil="true"/>
            <ax2362:valid>false</ax2362:valid>
         </ns:return>
      </ns:doSingleLogoutResponse>
   </soapenv:Body>
</soapenv:Envelope>

我正在使用不带SP1的Identity Server 5.0.0。 WebService内置于org.wso2.carbon.identity.sso.saml(4.2.3)中,并在identityserverurl中公开:9443 / services / IdentitySAMLSSOService?wsdl。

提前致谢。

1 个答案:

答案 0 :(得分:0)

根据执行流程,它可以是任何值。由于doSingleLogout方法不考虑实际的SAML2注销请求,因此根据sessionid值不会发生任何验证。但是,在真正的SSO信号注销流程中,sessionid将是&#39; samlssoTokenId&#39;设置在浏览器中的cookie。请注意,doSingleLogout方法不能用于向其他会话参与者发送SAML注销请求。据我所知,它可以用来破坏WSO2IS中的SSO会话。

此外,您可以按照this

中最后一次选择中提到的commonauth结束点,按照以下方式销毁WSO2IS SSO会话
  

https://localhost:9443/commonauth?commonAuthLogout=true&type=oidc2&sessionDataKey=7fa50562-2d0f-4234-8e39-8a7271b9b273&commonAuthCallerPath=http://localhost:8080/SSOWebApp/&relyingParty=SSOWebAPP