Проблемы IBM DataPower 3.7.1.x с клиентами WCF - PullRequest
4 голосов
/ 31 марта 2011

Я пытаюсь использовать веб-службу IBM DataPower 3.7.1.x в WCF, получая следующее сообщение об ошибке:

Не удается найти аутентификатор токена для System.IdentityModel.Tokens.X509SecurityToken 'тип токена.Токены этого типа не могут быть приняты в соответствии с текущими настройками безопасности.

Ответ HTTP возвращается как 200, и я вижу правильный ответ SOAP при отладке его в Fiddler.

Однако клиенты WCF, похоже, не знают, какобработать элемент BinarySecurityToken в ответе SOAP.

Вот моя конфигурация WCF:

  <bindings>
    <basicHttpBinding>
      <binding name="TestBinding">
        <security mode="TransportWithMessageCredential">
          <message clientCredentialType="Certificate" />
        </security>
      </binding>
    </basicHttpBinding>
  </bindings>

  <behaviors>
    <endpointBehaviors>
      <behavior name="TestBehavior">
        <callbackDebug includeExceptionDetailInFaults="true" />
        <clientCredentials>
          <clientCertificate storeLocation="LocalMachine" 
                             storeName="My" 
                             x509FindType="FindBySubjectName" 
                             findValue="test-cert"  />
          <serviceCertificate>
            <authentication certificateValidationMode ="PeerOrChainTrust" />
          </serviceCertificate>
        </clientCredentials>
      </behavior>
    </endpointBehaviors>
  </behaviors>

  <client>
     <endpoint  address="https://serviceURL"
                binding="basicHttpBinding"
                bindingConfiguration="TestBinding"
                behaviorConfiguration="TestBehavior"
                contract="ContraceGoesHere"
                name="ContraceNameGoesHere" />
  </client>

Я видел других людей, сообщавших о похожих проблемах как в Microsoft, так и в IBM, и есть некоторые вопросы StackOverflowно я не нашел ни одного работающего решения.

Буду признателен за любую помощь.

Ответы [ 2 ]

3 голосов
/ 31 марта 2011

пожалуйста, опубликуйте мыло, которое вы отправляете, которое возвращается и ваш конфиг.

также попробуйте добавить этот атрибут:

<security allowSerializedSigningTokenOnReply="true" />

(как описано здесь )

2 голосов
/ 08 мая 2012

Как конфертировать из Binding в Custom Binding:

http://webservices20.cloudapp.net/default.aspx

...