Межсерверная аутентификация NTLM не удалась

Я думаю, что эта проблема связана не столько с разработкой программного обеспечения, сколько с общей конфигурацией сети, поэтому я сначала публикую этот вопрос здесь.

У меня есть приложение MVC4, размещенное в IIS 7.5 на сервере Windows 2008 R2 (давайте назовем его WS1). Он использует службу WCF на втором идентичном сервере (WS2). Также на WS2 является установкой SharePoint 2007 Служба WCF взаимодействует с SharePoint, и поэтому должна работать как пользователь, имеющий доступ к моему сайту SharePoint. По этой причине служба WCF настроена на использование проверки подлинности Windows с NTLM в качестве единственного поставщика проверки подлинности Windows (требуется SharePoint). Приложение MVC4 на WS1 также настроен для проверки подлинности Windows, NTLM в качестве единственного поставщика и имеет соответствующие параметры безопасности конечной точки WCF:

<binding name="SpBasicHttp" ... >
  <security mode="TransportCredentialOnly">
    <transport clientCredentialType="Ntlm" />
  </security>
</binding>

WS1 а также WS1 обе виртуальные машины, и хотя они не обязательно живут на одном хосте, они находятся в одном домене.

Теперь, когда я пытаюсь вызвать метод веб-службы из WS1 в WS2Я получаю следующую ошибку:

Веб-сервисы Sharepoint - HTTP-запрос не авторизован с помощью схемы аутентификации клиента 'Ntlm'. Заголовок аутентификации, полученный от сервера, был "NTLM"

Тьфу. Итак, я включил аудит NTLM на WS2 и я обнаружил, что во время вызова веб-службы запрос на проверку подлинности NTLM не поступает на этот сервер.

Теперь, если я разверну приложение MVC4 в WS2 и ничего не меняйте, кроме URL конечной точки службы WCF, все работает отлично. Аутентификация Windows через NTLM работает безупречно, и есть запись аудита аутентификации NTLM, ясно видимая в средстве просмотра событий. Это выглядит как:

Audit NTLM authentication in this domain
User: billybob
Domain: xyz
Workstation: MY-COMPUTER-NAME
PID: 4
Process: 
Logon type: 3
InProc: true
Mechanism: (NULL)

На компьютере нет параметров групповой политики, предотвращающих исходящие или входящие запросы NTLM. Сеть, в которой я работаю, не настроена для Kerberos, так что, к сожалению, это не вариант. У меня также нет доступа к Active Directory.

Итак, с точки зрения администрирования сервера, что могло бы остановить запрос проверки подлинности NTLM на его пути между двумя серверами, где он просто отлично работает, ограниченный одним сервером?

Подобные вопросы:

0 ответов

Другие вопросы по тегам