Как реализовать WS-Security на сервисе WCF - PullRequest
0 голосов
/ 22 января 2019

В основном мне нужно преобразовать службы asmx в WCF, потому что мне нужно реализовать ws-security. У нас есть несколько служб asmx на .net 4. Но я собираюсь обновить некоторые из них до WCF. У меня есть пример заголовка запроса, который служба должна получать от клиентов.

Образец:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" soap:mustUnderstand="1"> <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="SIG-BEFF7CB55C69AB1BB5147624829678710"> <ds:SignedInfo> <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> <ec:InclusiveNamespaces xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="soap"/> </ds:CanonicalizationMethod> <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gost34310-gost34311"/> <ds:Reference URI="#id-BEFF7CB55C69AB1BB514762482966309"> <ds:Transforms> <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> <ec:InclusiveNamespaces xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList=""/> </ds:Transform> </ds:Transforms> <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gost34311"/> <ds:DigestValue>d57ciD7pb509fbkviNryRDasdWJedT9NLo9DHfDTFIPKUE=</ds:DigestValue> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue> mGJuAVI6uZoqxhITYLgM6lidMasdW368R+ksSsfRO9+tPEgy/f0j0M1TkH/bA7DVTqstH30q25qdH7fCDNsrmzfpA== </ds:SignatureValue> <ds:KeyInfo Id="KI-BEFF7CB55C69AB1BB514762482966307"> <wsse:SecurityTokenReference wsu:Id="STR-BEFF7CB55C69AB1BB514762482966308"> <wsse:KeyIdentifier EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"> MIIGzzCCBnigAwIBAgIasdgd85y+4K6Cxug5+mBUOLVm9VA== </wsse:KeyIdentifier> </wsse:SecurityTokenReference> </ds:KeyInfo> </ds:Signature> </wsse:Security> </SOAP-ENV:Header> <soap:Body xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="id-BEFF7CB55C69AB1BB514762482966309"> ... some data ... </soap:Body> </soap:Envelope>

Какие программные проверки и привязки конфигурации мне нужно реализовать, учитывая приведенный выше пример? WS-Security - это новое для меня. Любой ответ или пример, который дает правильное направление, будет полезен.

...