2016-04-20 2 views
2

Используя .Net 4.5 и сгенерировал токен SAML2 с использованием классов идентификации WIF и попытался добавить его в запрос тела мыла, но его игнорирование и генерируемый запрос мыла на самом деле имеют «requestecuritytoken», мыльный запрос, который идет на сервер. У меня нет STS.WCF-канал от CreateChannelWithIssuedToken по-прежнему отправляет запрос «requestecuritytoken»

Код ссылки здесь 'Need signature after SAML token in client request' кажется работающий.

Мой custombinding в app.config является

 <customBinding> 
      <binding name="AccountDetailsServiceSoap11" > 
      <textMessageEncoding messageVersion="Soap11WSAddressing10"/> 
      <security includeTimestamp="true"> 
      </security> 
      <httpTransport></httpTransport> 
      </binding> 
    </customBinding> 

И генерироваться мыло конверт

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:a="http://www.w3.org/2005/08/addressing"> 
<s:Header> 
<a:Action s:mustUnderstand="1">http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue</a:Action><a:MessageID>urn:uuid:b7ff68ac-df62-4051-a68a-7382b0ec4995</a:MessageID><a:ReplyTo><a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address></a:ReplyTo><a:To s:mustUnderstand="1">http://localhost:8888/spring-webservices-sample/endpoints</a:To></s:Header><s:Body><t:RequestSecurityToken Context="uuid-f4007218-af5c-4f84-b800-0e47f102d3b5-1" xmlns:t="http://schemas.xmlsoap.org/ws/2005/02/trust"><t:TokenType>http://schemas.xmlsoap.org/ws/2005/02/sc/sct</t:TokenType><t:RequestType>http://schemas.xmlsoap.org/ws/2005/02/trust/Issue</t:RequestType><t:KeySize>256</t:KeySize><t:BinaryExchange ValueType="http://schemas.xmlsoap.org/ws/2005/02/trust/spnego" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">YHoGBisGAQUFAqBwMG6gMDAuBgorBgEEAYI3AgIKBgkqhkiC9xIBAgIGCSqGSIb3EgECAgYKKwYBBAGCNwICHqI6BDhOVExNU1NQAAEAAAC3shjiCQAJAC8AAAAHAAcAKAAAAAYBsR0AAAAPQUEzNzMwOUNJTkNPTVNZUw==</t:BinaryExchange></t:RequestSecurityToken></s:Body></s:Envelope> 

Я хочу проверить обеспеченный веб-службы с SAML мы имеем в Java от клиента .net. Я получил сервис-клиент, созданный из WSDL в visual studio 2015, а затем получил утверждение SAML, сгенерированное из классов, и теперь пытается передать этот токен с запросом мыла на java-службу.

Может кто-нибудь поделится тем, что мне не хватает или что-то не так, я новичок в мире .net/WCF/WIF?

благодаря

ответ

0

После этого некоторые дополнительные исследования, выяснили, что WCF инфраструктуры при наличии «custombinding» на стороне клиента WCF генерирует (RequestSecurityToken) запрос RST первый в фоновом режиме первый и пока не найти, если мы можем измените это поведение. Поэтому вместо этого используется «basicHTTPBinding» с параметром подписи (с защищенным уровнем на клиентском интерфейсе, установленным для подписания), который теперь подписывает тело мыла и помещает timestamnp.
Теперь для вставки маркера SAML2 использовался перехватчик и добавил его после сгенерирования из классов WIF и отправил окончательный запрос на мыло, подписанное утверждение SAML, отметка времени и тело мыла. Запрос обрабатывался на стороне Spring WS с помощью действий безопасности и вызывается бизнес-логика. Это просто для разработки и тестирования. Думаю, для Production нам еще нужно иметь STS.