Estoy tratando de conectarme a un servicio web, escrito en Java, pero hay algo que no puedo entender.WCF: Agregar Nonce a UsernameToken
Usando WCF y un CustomBinding, casi todo parece estar bien, excepto una parte del mensaje SOAP, ya que le faltan los nodos Nonce y Created. Obviamente me falta algo, así que si pudieras dirigirme en la dirección correcta, sería muy apreciado.
Aquí es la unión de encargo:
<binding name="CustomHTTPBinding">
<security includeTimestamp="false" authenticationMode="UserNameOverTransport" defaultAlgorithmSuite="Basic256" requireDerivedKeys="True"
messageSecurityVersion="WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10">
</security>
<textMessageEncoding maxReadPoolSize="211" maxWritePoolSize="2132" messageVersion="Soap11"
writeEncoding="utf-8"/>
<httpsTransport />
</binding>
y aquí está la parte pertinente del mensaje:
<o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<o:UsernameToken u:Id="uuid-c306efd1-e84c-410e-a2ad-1046b368582e-1">
<o:Username>
<!-- Removed-->
</o:Username>
<o:Password>
<!-- Removed-->
</o:Password>
</o:UsernameToken>
</o:Security>
Y esto es como debe mirar:
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1">
<wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="UsernameToken-25763165">
<wsse:Username>..</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">..</wsse:Password>
<wsse:Nonce>6ApOnLn5Aq9KSH46pzzcZA==</wsse:Nonce>
<wsu:Created>2009-05-13T18:59:23.309Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
Así que la pregunta es : ¿Cómo podría introducir los elementos Nonce y Created dentro de la parte de seguridad?
¿Has encontrado una solución para esto? Me interesaría saber – Jon
Al final usamos WSE 2 para solucionar los problemas que estábamos teniendo, en lugar de WCF. Allí agregamos una política personalizada para aplicar el UsernameToken a la solicitud de servicio y eso fue lo que creo. –