Я использую squid 2.6.22 (Centos 5 Default) в качестве прокси. Похоже, что Squid нарушает процесс аутентификации для веб-страниц, когда им требуется NTLM или Kerberos Auth. Я тестировал sharepoint 2007 и пробовал все 3 метода аутентификации (NTLM, Kerberos, Basic). Доступ к сайту без squid работает во всех случаях. Когда я открываю ту же страницу с помощью squid, то работает только basic-auth. Использование IE или Firefox не имеет никакого значения. Сам Squid может использовать кто угодно (auth_param не настроен). Немного сложно найти решения в Интернете, поскольку большинство тем крутятся вокруг auth_param для аутентификации пользователей в squid, а не для аутентификации пользователей на веб-странице за squid. Может ли кто-нибудь помочь?
Редактировать:
Извините, но мой первый тест был полностью провален. Я тестировал неправильные веб-серверы (напоминание себе: всегда проверяйте предположения перед тестированием). Теперь я понял, что сценарий проблемы совсем другой.
Между прочим: функция, которая обеспечивает сквозную передачу NTLM в squid, называется «закрепление соединения», а HTTP-заголовок «Поддержка прокси: аутентификация на основе сеанса» »
В Firefox есть ошибка, из-за которой NTLM не работает в определенных условиях. Использование Squid в качестве прокси почти всегда соответствует этим условиям. Видеть https://bugzilla.mozilla.org/show_bug.cgi?id=602814
Я думаю, что то, что вы спрашиваете, очень относится Как настроить apache для базовой аутентификации или разрешить использование ntlm при проксировании?. В частности, если вы хотите пройти аутентификацию как на прокси, так и на удаленном сайте, это невозможно (если клиент не использует CONNECT
).
Если ваша ситуация такова, что вы не хотите аутентифицироваться в Squid, а только на удаленном сайте, тогда я думаю, что Squid каким-то образом поступает правильно: как только ресурс, который вы получили путем аутентификации, находится в кеше, он теперь также доступен для неаутентифицированных запросов для других клиентов. Точнее, посмотрите на этот поток:
/index.html
на некоторых that.server.com
и предоставил информацию для аутентификации./index.html
.Возможные сценарии:
/index.html
пользователю B из кеша. Это неправильно, так как только сервер знает, какие пользователи имеют доступ к каким ресурсам./index.html
. Для базовой аутентификации Squid может захватывать имя пользователя. Другие механизмы (NTLM / Kerberos) отправляют только хэши по HTTP, поэтому нет возможности узнать имя пользователя./index.html
.