Проблемы IBM DataPower 3.7.1.x с клиентами WCF

Я пытаюсь использовать веб-службу 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, однако я не нашел ни одного работающего решения.

Любая помощь будет оценена по достоинству.


person YONDERBOI    schedule 31.03.2011    source источник
comment
После долгих разговоров с Яроном Навехом я наконец заставил это работать. Если у кого-то возникла такая же проблема - свяжитесь со мной или Яроном, и мы поможем вам найти решение.   -  person YONDERBOI    schedule 01.04.2011


Ответы (2)


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

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

<security allowSerializedSigningTokenOnReply="true" />

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

person Yaron Naveh    schedule 31.03.2011
comment
Спасибо за быстрый ответ. Ты жжешь! Я отправил вам свои файлы конфигурации и фрагменты запроса / ответа SOAP по электронной почте. Попытка выяснить, как преобразовать basicHttpBinding в customBinding, чтобы установить allowSerializedSigningTokenOnReply на основе вашего сообщения в блоге. - person YONDERBOI; 31.03.2011

Как преобразовать привязку к настраиваемой привязке:

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

person Gonzalo Gallotti    schedule 08.05.2012