Как перенаправить службу WCF на конечную точку HTTPS с учетными данными Windows

Вот ситуация, с которой я пытаюсь справиться:

У нас есть клиент WCF, который работает с конечной точкой http и конечной точкой https, но не при перенаправлении (302)с http на https. У нас есть балансировщик нагрузки F5, который выполняет функции перенаправления и SSL, но, насколько я могу судить, он не делает ничего неожиданного для запросов. Перенаправление кажется виновником того, что WCF не хочет предоставлять информацию для проверки подлинности Windows Kerberos после выполнения перенаправления.

Последовательность успешного вызова (, т.е. http без перенаправления)выглядит следующим образом:

  • Клиент -Отправляет POST-запрос для службы с http-схемой
  • Сервер -Отвечает 401 неавторизованным
  • Клиент -Отправляет согласование POST с авторизацией
  • Сервер -Отвечает 100 Продолжить
  • Клиент -Отправляет данные мыла и завершается успешно

Когда вызов перенаправляется и терпит неудачу, он работает следующим образом:

  • Клиент -Отправляет запрос POST для службы с http схема
  • Сервер -Возвращает 302 с перенаправлением на схему https для того же адреса
  • Клиент -Отправляет GET для адреса https (Я не могу понять, почему это GET а не POST)
  • Сервер -Отвечает 401 неавторизованным
  • Клиент -выдает исключение «Запрос HTTP неавторизован со схемой проверки подлинности клиента« Согласование ». Заголовок проверки подлинности, полученный от сервера, был « Согласование, NTLM '.

Это похоже на эту проблему , но не совсем то же самое (, и на самом деле там нет ответа, хотя в нем есть ссылка на «нарушение протокола WCF», документацию по которому я могу найти).Если мы отключим правило перенаправления F5, трафик HTTP и https будет работать нормально. Действительно ли WCF не справляется с этим простым перенаправлением? Есть ли обходной путь или какая-либо документация по этому недостатку?

Конфигурация клиента (обратите внимание, что при тестировании с https я меняю TransportCredentialOnly на Transport):


        



    
        
            
        
    

Конфигурация сервера выглядит так:


    
    
        
            
            
        
    
    
        
            
                
                    
                
            
        
    
    
        
            
                
                
                
                    
                        
                        
                    
                
            
        
    

6
задан Community 13 April 2017 в 12:13
поделиться