Я использую прокси-сервер Squid (последняя версия, 3.1.4) в Linux CentOS 5.4 с Samba 3.5.4, чтобы разрешить аутентифицированный веб-доступ для пользователей домена; все работает нормально, и даже клиенты Windows 7 полностью поддерживаются. Аутентификация прозрачна для пользователей домена, в то время как она явно запрашивается для пользователей, не являющихся доменами, и работает, если пользователь может предоставить действительные учетные данные домена. Все хорошо и хорошо.
Затем запускается Outlook Anywhere, и за этим следуют боль и страдания.
Когда Outlook (будь то 2007 или 2010, это не имеет значения) работает на клиентах Windows XP, он изящно подключается через прокси-сервер Squid к своему удаленному серверу Exchange.
Когда он работает в Windows 7, этого не происходит.
Если требование аутентификации снимается с прокси, все работает и в Windows 7, поэтому проблема, очевидно, связана с аутентификацией NTLM с помощью Squid.
Копнув глубже (WireShark), я обнаружил, что Outlook Anywhere использует HTTP 1.1, когда он работает в Windows 7, и HTTP 1.0, когда он работает в Windows XP. И похоже, что у Squid, даже в его последней версии, все еще есть серьезные проблемы с правильной обработкой HTTP 1.1, особенно когда используются SSL и прокси-аутентификация.
Ожидая, пока Squid полностью и официально поддержит HTTP 1.1 (и похоже, что это может занять вполне давно) ищу одно из следующих решений:
Загрузка rpcping.exe
в Dependency Walker, ясно, что он использует WinHttp.dll
вместо того WinInet.dll
. Итак, копируя WinHttp.dll
из Windows XP SP3 в C:\Program Files\Microsoft Office\Office11
где Outlook.exe
находится заставляет Outlook отправлять HTTP/1.0
запросы с User-Agent
и все остальные поля заголовка, как на моем старом компьютере.
Существующая версия в Windows 7 SP1: 6.1.7601.17514
Скопированная версия из Windows XP SP3: 5.1.2600.6175
Это не самое чистое решение, но на данный момент оно должно сойтись. Если у кого-то есть идея получше, я все уши ...
Windows 7, Server 2008 и я считаю, что даже Vista не поддерживает NTLMv1 по умолчанию. Если он работает на XP, но не на Windows 7, я бы начал с включения NTLMv1 и посмотрел, решит ли он вашу проблему. Вот сообщение, которое помогло мне, когда у меня была аналогичная проблема. Windows7 - «Указан неверный сетевой пароль». когда пароль действительно правильный
3.1.4 не является последней версией Squid - текущий апстрим-выпуск в ветке 3.1 - 3.1.16, и в журнале изменений есть много изменений, связанных с совместимостью с HTTP 1.1. Возможно, вам потребуется попробовать более новую версию.
Это сообщение от пользователей squid сообщает, что, по крайней мере, в январе даже использования последней версии 3.1.x было недостаточно, а необходимые исправления поддержки HTTP 1.1 были только в бета-версиях 3.2.