Authentication WSO2IS:正在验证的用户已使用SSOTokeId和IdentitySamlsoServiceSOAP webservice记录

Authentication WSO2IS:正在验证的用户已使用SSOTokeId和IdentitySamlsoServiceSOAP webservice记录,authentication,single-sign-on,wso2,saml-2.0,wso2is,Authentication,Single Sign On,Wso2,Saml 2.0,Wso2is,我已按照以下步骤从WSO2 Identity Server 4.1.0检索HTTP响应头中的SSOTokeID。我在本地运行这个 我还提供了identitysamlsosservice,网址为: https://localhost:9443/services/IdentitySAMLSSOService?wsdl 此服务提供3种操作: 鉴定 退出 验证请求 使用authenticate操作,我想验证用户是否确实登录。我希望使用之前检索到的SSOTokeID。此外,我假设JSESSIONID

我已按照以下步骤从WSO2 Identity Server 4.1.0检索HTTP响应头中的
SSOTokeID
。我在本地运行这个

我还提供了
identitysamlsosservice
,网址为:

https://localhost:9443/services/IdentitySAMLSSOService?wsdl
此服务提供3种操作:

  • 鉴定
  • 退出
  • 验证请求
使用authenticate操作,我想验证用户是否确实登录。我希望使用之前检索到的SSOTokeID。此外,我假设JSESSIONID在这一点上不相关

ssoTokenId=1E5F811E2FAC8AFBEE31621E889DE3FD
我已经使用soapUI启动了对authenticate服务的SOAP请求。我添加了基本身份验证用户名/密码

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://org.apache.axis2/xsd" xmlns:xsd1="http://dto.saml.sso.identity.carbon.wso2.org/xsd">
   <soap:Header/>
   <soap:Body>
      <xsd:authenticate>
         <!--Optional:-->
         <xsd:authReqDTO>
            <!--Optional:-->
            <xsd1:assertionConsumerURL>http://localhost:8080/saml2.demo/consumer</xsd1:assertionConsumerURL>
            <!--Optional:-->
            <xsd1:assertionString></xsd1:assertionString>
            <!--Optional:-->
            <xsd1:certAlias></xsd1:certAlias>
            <!--Optional:-->
            <xsd1:claim></xsd1:claim>
            <!--Optional:-->
            <xsd1:doSignAssertions>false</xsd1:doSignAssertions>
            <!--Optional:-->
            <xsd1:doSingleLogout>false</xsd1:doSingleLogout>
            <!--Optional:-->
            <xsd1:id></xsd1:id>
            <!--Optional:-->
            <xsd1:issuer>saml2.demo</xsd1:issuer>
            <!--Optional:-->
            <xsd1:loginPageURL></xsd1:loginPageURL>
            <!--Optional:-->
            <xsd1:logoutURL></xsd1:logoutURL>
            <!--Optional:-->
            <xsd1:nameIDFormat></xsd1:nameIDFormat>
            <!--Optional:-->
            <xsd1:password></xsd1:password>
            <!--Zero or more repetitions:-->
            <xsd1:requestedClaims></xsd1:requestedClaims>
            <!--Optional:-->
            <xsd1:rpSessionId>1E5F811E2FAC8AFBEE31621E889DE3FD</xsd1:rpSessionId>
            <!--Optional:-->
            <xsd1:stratosDeployment>false</xsd1:stratosDeployment>
            <!--Optional:-->
            <xsd1:subject></xsd1:subject>
            <!--Optional:-->
            <xsd1:useFullyQualifiedUsernameAsSubject>false</xsd1:useFullyQualifiedUsernameAsSubject>
            <!--Optional:-->
            <xsd1:username></xsd1:username>
         </xsd:authReqDTO>
         <!--Optional:-->
         <xsd:sessionId></xsd:sessionId>
      </xsd:authenticate>
   </soap:Body>
</soap:Envelope>

http://localhost:8080/saml2.demo/consumer
假的
假的
saml2.demo
1E5F811E2FAC8AFBEE31621E889DE3FD
假的
假的
我收到了以下答复:

<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
   <soapenv:Body>
      <ns:authenticateResponse xmlns:ns="http://org.apache.axis2/xsd">
         <ns:return xsi:type="ax2301:SAMLSSORespDTO" xmlns:ax2299="http://base.identity.carbon.wso2.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ax2301="http://dto.saml.sso.identity.carbon.wso2.org/xsd">
            <ax2301:assertionConsumerURL xsi:nil="true"/>
            <ax2301:errorMsg>login.fail.message</ax2301:errorMsg>
            <ax2301:loginPageURL xsi:nil="true"/>
            <ax2301:respString><![CDATA[&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;saml2p:Response ID=&quot;dgjkpdhojndphkhklhlpcdjnbakojekiajbflpjp&quot; IssueInstant=&quot;2013-07-11T08:46:32.008Z&quot; Version=&quot;2.0&quot; xmlns:saml2p=&quot;urn:oasis:names:tc:SAML:2.0:protocol&quot;&gt;&lt;saml2:Issuer Format=&quot;urn:oasis:names:tc:SAML:2.0:nameid-format:entity&quot; xmlns:saml2=&quot;urn:oasis:names:tc:SAML:2.0:assertion&quot;&gt;https://localhost:9443/samlsso&lt;/saml2:Issuer&gt;&lt;saml2p:Status&gt;&lt;saml2p:StatusCode Value=&quot;urn:oasis:names:tc:SAML:2.0:status:AuthnFailed&quot;/&gt;&lt;saml2p:StatusMessage&gt;login.fail.message&lt;/saml2p:StatusMessage&gt;&lt;/saml2p:Status&gt;&lt;/saml2p:Response&gt;]]></ax2301:respString>
            <ax2301:sessionEstablished>false</ax2301:sessionEstablished>
            <ax2301:subject xsi:nil="true"/>
         </ns:return>
      </ns:authenticateResponse>
   </soapenv:Body>
</soapenv:Envelope>

login.fail.message
假的
我尝试在不同的位置添加
SSOTokeId
的值:

  • 我已尝试将
    SSOTokeId
    的值添加到
  • 我还尝试将其添加到
  • 还尝试将其添加到SOAP请求的头中

不幸的是,在所有情况下,都会出现
login.fail.message
。检查用户是否已通过身份验证的正确方法是什么?

是否存在此web服务的存根?是否有其他方法@吉姆罗伊