2016-06-25 13 views
0

WCFを初めて使用しているため、WCF Webサービスと証明書を交換するための.netクライアントアプリケーションを入手できますが、Soap UI 5.0などのNON WCFアプリケーションを使用することはできません。テスト用に自己署名証明書を使用していますが、次のエラーが発生します。 WCF 4.5とx509証明書を使用したSoap UI

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing"> 
    <s:Header> 
     <a:Action s:mustUnderstand="1">http://www.w3.org/2005/08/addressing/soap/fault</a:Action> 
    </s:Header> 
    <s:Body> 
     <s:Fault> 
     <s:Code> 
      <s:Value>s:Sender</s:Value> 
      <s:Subcode> 
       <s:Value xmlns:a="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">a:InvalidSecurity</s:Value> 
      </s:Subcode> 
     </s:Code> 
     <s:Reason> 
      <s:Text xml:lang="en-US">An error occurred when verifying security for the message.</s:Text> 
    </s:Reason> 
    </s:Fault> 
が、私はこの記事 https://community.smartbear.com/t5/SoapUI-Open-Source/Help-with-Certificate/td-p/41385

に基づいて、セットアップのSOAP UIを持っているこれはあなたのweb.configファイルに基づいて自分のWeb設定

<system.serviceModel> 
    <diagnostics> 
     <messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" maxMessagesToLog="3000" maxSizeOfMessageToLog="2000" /> 
</diagnostics> 
<bindings> 
    <wsHttpBinding> 
    <binding name="wsHttpEndpointBinding"> 
     <security mode="TransportWithMessageCredential"> 
     <message clientCredentialType="Certificate" negotiateServiceCredential="false" 
      algorithmSuite="Default" establishSecurityContext="false" /> 
     </security> 
    </binding> 
    <binding name="wsHttpEndpointBinding_https" messageEncoding="Text"> 
     <security mode="Transport"> 
     <transport clientCredentialType="None" proxyCredentialType="None" /> 
     <message clientCredentialType="None" negotiateServiceCredential="false" 
      algorithmSuite="Default" establishSecurityContext="false" /> 
     </security> 
    </binding> 
    </wsHttpBinding> 
</bindings> 
<services> 
    <service behaviorConfiguration="ServiceBehaviors" name="OneService4.OneServiceWCF"> 
    <endpoint address="" binding="wsHttpBinding" bindingConfiguration="wsHttpEndpointBinding" name="OneService" contract="OneService4.IOneServiceWCF" /> 
    <endpoint address="m" binding="wsHttpBinding" bindingConfiguration="wsHttpEndpointBinding_https" name="OneServiceHttps" contract="OneService4.IOneServiceWCF" /> 
    <!--<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
    <endpoint address="mex2" binding="mexHttpsBinding" contract="IMetadataExchange" />--> 
    </service> 
</services> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name="ServiceBehaviors" > 
     <serviceSecurityAudit auditLogLocation="Application" serviceAuthorizationAuditLevel="Failure" messageAuthenticationAuditLevel="Failure" suppressAuditFailure="true" /> 
     <!-- To avoid disclosing metadata information, set the values below to false before deployment --> 
     <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" /> 
     <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information --> 
     <serviceDebug includeExceptionDetailInFaults="true" /> 
     <useRequestHeadersForMetadataAddress> 
     <defaultPorts> 
      <add scheme="https" port="443" /> 
      <add scheme="http" port="80" /> 
     </defaultPorts> 
     </useRequestHeadersForMetadataAddress> 
     <serviceCredentials> 
      <serviceCertificate findValue="WCFCert" x509FindType="FindBySubjectName" storeLocation="CurrentUser" storeName="TrustedPeople" /> 
     <clientCertificate> 
      <authentication certificateValidationMode="None" revocationMode="NoCheck" /> 
     </clientCertificate> 
     </serviceCredentials> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" /> 

答えて

0

あり、サービスセキュリティ監査はすでに有効になっています。 EventLogsで詳細を知ることができます。 (イベントビューアを開き、セキュリティエラーが発生した理由について、対応するアプリケーションフォルダを開きます)。実際にセキュリティエラーが発生する問題をトラブルシューティングできます。

セキュリティバインディングとSOAPUIハッシュアルゴリズムの不一致が原因である可能性があります。

関連する問題