Authentication WSO2IS:正在验证的用户已使用SSOTokeId和IdentitySamlsoServiceSOAP webservice记录
我已按照以下步骤从WSO2 Identity Server 4.1.0检索HTTP响应头中的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
SSOTokeID
。我在本地运行这个
我还提供了identitysamlsosservice
,网址为:
https://localhost:9443/services/IdentitySAMLSSOService?wsdl
此服务提供3种操作:
- 鉴定
- 退出
- 验证请求
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[<?xml version="1.0" encoding="UTF-8"?>
<saml2p:Response ID="dgjkpdhojndphkhklhlpcdjnbakojekiajbflpjp" IssueInstant="2013-07-11T08:46:32.008Z" Version="2.0" xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"><saml2:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity" xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">https://localhost:9443/samlsso</saml2:Issuer><saml2p:Status><saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:AuthnFailed"/><saml2p:StatusMessage>login.fail.message</saml2p:StatusMessage></saml2p:Status></saml2p:Response>]]></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服务的存根?是否有其他方法@吉姆罗伊