Все клиентские браузеры постоянно запрашивают проверку подлинности NTLM при работе через локальный прокси-сервер.
При указании браузеров через локальный прокси-сервер в Интернет некоторым, но не всем клиентам, постоянно предлагается пройти аутентификацию на прокси-сервере. Я проверил заголовки с помощью живых заголовков firefox, а также скрипта, и во всех случаях запросы аутентификации появляются при запросе ресурсов SSL.
пример этого будет следующим:
GET http://gmail.google.com/mail/ HTTP/1.1
Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-
flash, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-
xpsdocument, application/xaml+xml, */*
Accept-Language: en-gb
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR
1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Accept-Encoding: gzip, deflate
Proxy-Connection: Keep-Alive
Host: gmail.google.com
GET http://gmail.google.com/mail/ HTTP/1.1
Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-
flash, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-
xpsdocument, application/xaml+xml, */*
Accept-Language: en-gb
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR
1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Accept-Encoding: gzip, deflate
Proxy-Connection: Keep-Alive
Host: gmail.google.com
Proxy-Authorization: NTLM
TlRMTVNTUAABAAAAB7IIogkACQAvAAAABwAHACgAAAAFASgKAAAAD1dJTlhQMUdGTEFHU0hJUDc=
GET http://gmail.google.com/mail/ HTTP/1.1
Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-
flash, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-
xpsdocument, application/xaml+xml, */*
Accept-Language: en-gb
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR
1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Accept-Encoding: gzip, deflate
Proxy-Connection: Keep-Alive
Proxy-Authorization: NTLM
TlRMTVNTUAADA (more stuff goes here I cut it short)
Host: gmail.google.com
На этом этапе в браузере появилось приглашение имени пользователя и пароля, неважно, что введено в это поле, правильные учетные данные, случайная ерунда, браузер ничего не принимает в этом поле, он будет продолжать всплывать. Если я нажимаю «Отмена», я иногда получаю сообщение об ошибке http 407, но в других случаях я нажимаю «Отменить», и веб-сайт загружается и отображается в обычном режиме.
Это повторяется с некоторыми клиентами, работающими через мой прокси-сервер, но в других случаях этого не происходит вообще.
В тех случаях, когда клиентский компьютер работает нормально, единственное различие, которое я вижу, состоит в том, что третий запрос ресурса SSL возвращается с ответом 200, см. Ниже:
CONNECT gmail.google.com:443 HTTP/1.0
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; MALC)
Proxy-Connection: Keep-Alive
Content-Length: 0
Host: gmail.google.com
Pragma: no-cache
Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAIAAAA
A SSLv3-compatible ClientHello handshake was found.
Я пробовал сбросить учетные записи пользователей, а также учетные записи компьютеров в Active Directory. Учетные записи пользователей и пароли, которые используются, верны, и пароли были сброшены, поэтому они не рассинхронизируются. Я удалил клиентов и даже прокси-сервер из домена и снова присоединился к ним. Я установил полный отдельный прокси-сервер и получаю точно такую же проблему, когда указываю клиентам на другой прокси-сервер с другим IP-адресом.
ntlm требует tcp-сеансов с включенным keep alive, поскольку он привязан к tcp-соединению, обычно он отключен через прокси или с короткими тайм-аутами, и многие прокси также используют http 1.0 = один запрос на соединение. ... что по сути дает ту же проблему. изменить авторизацию на kerberos, digest или plain auth. ни то, ни другое не должно быть проблемой, если сайт находится в ssl, если вы работаете в ускоренном режиме.
Лучше всего, если вы можете изменить программное обеспечение прокси, поищите соединения keep-alive и http 1.1. у меня нет опыта работы с прокси-сервером microsoft Я из другого лагеря, но я почти уверен, что то, что вы испытываете, - это то, что я описываю.
С уважением,
Питер