прежде всего, позвольте мне «предупредить» вас, что я не разработчик PHP и довольно не разбираюсь в PHP. Я являюсь разработчиком службы WCF, о которой идет речь, и пытаюсь поддержать разработчика PHP в штате, который пытается использовать эту услугу.Потребление службы WCF от PHP
Он не имеет логин StackOverflow и занят неоспоримым разозлился на WCF, чтобы что-нибудь типа без профанации ;-)
Во всяком случае, служба использует следующую конфигурацию безопасности:
<security mode="Message">
<message clientCredentialType="UserName" negotiateServiceCredential="true" algorithmSuite="Default" />
</security>
Это означает, что сообщение зашифровано по строке, я считаю, что для этого требуется сертификат, который был установлен на веб-сервере, и когда использование службы .NET работает без каких-либо проблем.
Мы рассмотрели связь с fiddler и предположим, что RequestSecurityTokenResponse будет импортироваться. Я подозреваю рукопожатие, когда клиент запрашивает запрос безопасности, он генерируется с помощью GUID в качестве ссылки, значение используется для шифрования запроса, а идентификатор GUID отправляется в качестве ссылки.
Это все предположения, хотя до сих пор мы не смогли получить запросы даже отдаленно выглядеть одинаково.
Любые указатели в правильном направлении были бы очень признательны.
До сих пор мы пытаемся использовать WSE-PHP, который можно найти через google.
EDIT:
Мы смогли подтвердить наши мысли с Скрипач и работающими клиентами, кажется, делает рукопожатие, есть три запроса (и ответы) в общей сложности, которые кажутся для обмена только сведений о безопасности , они называют следующие действия:
http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue
http://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/Issue
http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT
После этого последнего вызова запрос сделан с действием, которое, кажется, указывает на вызов фактического метода WebService:
http://XXXXXXXXXXXXXX/WCF/ICompany/TestConnection
Это, похоже, связано с SAML (я люблю тебя, Google), поэтому я добавил это как тег.
Да, это мыло, проблема в том, что по какой-то причине PHP не поддерживает стандарты WS-Security из коробки. Поэтому вам необходимо расширить PHP самостоятельно или использовать библиотеку (обе из которых мы пока не смогли сделать). –
Можете ли вы просто разместить на basicHttp? –
Да, я могу ... но это на самом деле не решение, это ускользает от всей проблемы, делая что-то другое ...: P –