Con più domande
WSDL PolicyReference - C# .NET SOAP client with WS-Security - JAVA Backend with CXF

Domanda
-
Buongiorno,
devo implementare un client in C# per consumare un web service SOAP realizzato con tecnologie JAVA e che utilizza la WS-SECURITY per l'autenticazione.
Il gestore ha fornito i file WSDL/XSD che ho provveduto ad importare (add service reference) in .NET visual studio 2012 framework 4.5 per generare le classi da utilizzare per il client.
Dopo vari tentativi senza successo e diverse richieste di aiuto in vari forum (https://social.msdn.microsoft.com/Forums/it-IT/9c305faf-8e45-4540-8f1d-a2b0d4902701/invoking-java-webservice-from-cnet-using-tls-12-wssecuritysamlclient-x509-certificate?forum=wcfwfit) mi sta venendo qualche dubbio che in visual studio vengano ignorate le "PolicyReference" contenute in un file esterno "policy-X509v3.xml" referenziato nel file WSDL di cui riporto un frammento:
<wsdl:binding name="xxxxBinding0001" type="tns:xxxxPortType0001"> <wsdlsoap:binding transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="rispondiAllaRichiesta"> <wsdlsoap:operation soapAction="" /> <wsdl:input> <wsp:PolicyReference xmlns:wsp="http://www.w3.org/ns/ws-policy" URI="policy-X509v3.xml" /> <wsdlsoap:body use="literal" /> </wsdl:input> <wsdl:output> <wsdlsoap:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding>
Come posso essere sicuro che le classi client generate dal client rispettino le "PolicyReference" contenute nel file esterno "policy-X509v3.xml" ? C'è qualche altro modo di procedere/importare WSDL di questo tipo?
Grazie
martedì 2 gennaio 2018 11:32
Tutte le risposte
-
A supporto del dubbio che ho espresso sopra, riporto l'avviso che compare in .NET quando provo ad aggiungere/aggiornare il riferimento al servizio WSDL:
Avviso dello strumento personalizzato:
Un riferimento criteri è stato ignorato perché i criteri con ID 'policy-X509v3.xml' non sono stati trovati. XPath://wsdl:definitions[@targetNamespace='http://...0001XService']/wsdl:binding[@name='xxxxxBinding0001']/wsdl:operation[@name='rispondiAllaRichiesta']/wsdl:input
Premetto che il file "policy-X509v3.xml" si trova nella stessa cartella del WSDL.
Quindi, dovrebbe essere corretto referenziarlo con percorso relativo:
URI="policy-X509v3.xml"
Comunque, ho fatto diverse prove mettendo nell'URI il percorso assoluto ed anche quello su IIS in localhost. Il risultato è sempre lo stesso. Non è che bisogna metterlo in qualche altra cartella di .NET ? Oppure c'è qualche opzione di configurazione da impostare?
venerdì 5 gennaio 2018 11:16 -
Qualcuno può aiutarmi a configurare il binding da codice ? Questo è il file "policy-X509v3.xml":
<wsp:Policy wsu:Id="AsymmBinding" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702"> <sp:AsymmetricBinding> <wsp:Policy> <sp:InitiatorSignatureToken> <wsp:Policy> <sp:X509Token sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient"> <wsp:Policy> <!-- <sp:RequireThumbprintReference /> --> <sp:RequireEmbeddedTokenReference /> <sp:WssX509V3Token10 /> </wsp:Policy> </sp:X509Token> </wsp:Policy> </sp:InitiatorSignatureToken> <sp:RecipientSignatureToken> <wsp:Policy> <sp:X509Token sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToInitiator"> <wsp:Policy> <!-- <sp:RequireThumbprintReference /> --> <sp:RequireEmbeddedTokenReference /> <sp:WssX509V3Token10 /> </wsp:Policy> </sp:X509Token> </wsp:Policy> </sp:RecipientSignatureToken> <sp:IncludeTimestamp /> <sp:AlgorithmSuite> <wsp:Policy> <sp:Basic128Rsa15 /> </wsp:Policy> </sp:AlgorithmSuite> <sp:Layout> <wsp:Policy> <sp:Strict /> </wsp:Policy> </sp:Layout> </wsp:Policy> </sp:AsymmetricBinding> <sp:SignedSupportingTokens> <wsp:Policy> <sp:SignedParts> <sp:Body /> <sp:Header Name="Timestamp" Namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" /> </sp:SignedParts> </wsp:Policy> </sp:SignedSupportingTokens> <sp:Wss10> <wsp:Policy> <sp:MustSupportRefKeyIdentifier /> <sp:MustSupportRefIssuerSerial /> <sp:MustSupportRefThumbprint /> <sp:MustSupportRefEncryptedKey /> <sp:RequireSignatureConfirmation /> </wsp:Policy> </sp:Wss10> </wsp:Policy>
lunedì 8 gennaio 2018 09:19