2016-04-20 4 views
2

demande de savon qui va au serveur. Je n'ai pas de STS.canal WCF de CreateChannelWithIssuedToken envoie toujours la requête 'requestsecuritytoken'

Le code de référence ici 'Need signature after SAML token in client request' semble fonctionner.

Mon CustomBinding dans app.config est

 <customBinding> 
      <binding name="AccountDetailsServiceSoap11" > 
      <textMessageEncoding messageVersion="Soap11WSAddressing10"/> 
      <security includeTimestamp="true"> 
      </security> 
      <httpTransport></httpTransport> 
      </binding> 
    </customBinding> 

et l'enveloppe de savon généré est

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:a="http://www.w3.org/2005/08/addressing"> 
<s:Header> 
<a:Action s:mustUnderstand="1">http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue</a:Action><a:MessageID>urn:uuid:b7ff68ac-df62-4051-a68a-7382b0ec4995</a:MessageID><a:ReplyTo><a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address></a:ReplyTo><a:To s:mustUnderstand="1">http://localhost:8888/spring-webservices-sample/endpoints</a:To></s:Header><s:Body><t:RequestSecurityToken Context="uuid-f4007218-af5c-4f84-b800-0e47f102d3b5-1" xmlns:t="http://schemas.xmlsoap.org/ws/2005/02/trust"><t:TokenType>http://schemas.xmlsoap.org/ws/2005/02/sc/sct</t:TokenType><t:RequestType>http://schemas.xmlsoap.org/ws/2005/02/trust/Issue</t:RequestType><t:KeySize>256</t:KeySize><t:BinaryExchange ValueType="http://schemas.xmlsoap.org/ws/2005/02/trust/spnego" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">YHoGBisGAQUFAqBwMG6gMDAuBgorBgEEAYI3AgIKBgkqhkiC9xIBAgIGCSqGSIb3EgECAgYKKwYBBAGCNwICHqI6BDhOVExNU1NQAAEAAAC3shjiCQAJAC8AAAAHAAcAKAAAAAYBsR0AAAAPQUEzNzMwOUNJTkNPTVNZUw==</t:BinaryExchange></t:RequestSecurityToken></s:Body></s:Envelope> 

Je veux tester un service Web sécurisé avec SAML, nous avons en Java à partir d'un client .net. J'ai obtenu le client de service généré à partir de WSDL dans Visual Studio 2015, puis j'ai obtenu l'assertion SAML générée à partir des classes et j'essayais maintenant de transmettre ce jeton avec la demande de savon au service Java. Est-ce que certains peuvent partager ce qui me manque ou mal, je suis nouveau dans le monde de .net/WCF/WIF

grâce

Répondre

0

Après avoir fait quelques recherches, a découvert que l'infrastructure WCF en ayant « CustomBinding » à côté client WCF génère un RST (RequestSecurityToken) demande d'abord en arrière-plan premier et n'a pas trouvé encore si nous pouvons changer ce comportement. Donc, à la place, utilisez 'basicHTTPBinding' avec l'option de signature (avec protectlevel sur l'interface client définie pour signer) qui est en train de signer le corps de savon et de mettre timestamnp.
Maintenant, pour l'insertion de jeton SAML2 utilisé intercepteur et ajouté après l'avoir générée à partir de classes WIF et envoyer la demande de savon final qui a signé l'assertion SAML, horodatage et savon corps signé. La demande a été traitée au niveau Spring WS avec les actions de sécurité et la logique métier a été appelée. Ceci est juste pour le développement et les tests. Je suppose que pour la production, nous avons encore besoin d'un STS.