харошь логи вставлять, я ничего не понимаю в твоих логах, лучше слловами, а логи если понадобятся
я пока не понял что ты ответил, но
насчет:
Ну не смог юзер себя назвать (вообще имени/пароля не дал) - значит и аутентифицировать его нечем, значит идем дальше(?), а он сразу 407 отлуп...
матчасть говорит так:
1. Клиент отправляет запрос без всякой аутентификационной информации:
так будет происходить для ВСЕХ новых соединений, в отличие от Basic схемы, которая при успешной аутентификации будет вставлять аутентификационную информацию для всех последующих соединений.
2. Прокси сервер возвращает код состояния 407:
Код: Выделить всё
HTTP/1.1 407 proxy authentication required
Proxy-Authenticate: NTLM
Connection: close
Заметьте, если бы клиент подключался не к прокси серверу, то ответом был бы код состояния 401 и заголовок WWW-Authenticate: NTLM.
После этого шага Squid разрывает соединение, заставляя клиента инициировать новое соединение независимо от любых keep-alive директив от клиента.
3. Клиент посылает новый GET запрос:
Код: Выделить всё
GET /index.html HTTP/1.1
Proxy-Authorization: NTLM some_more_stuff
где some_more_stuff закодированный в base64 NEGOTIATE_MESSAGE.
4. Сервер опять отвечает с кодом состояния 407:
Код: Выделить всё
HTTP/1.1 407 proxy authentication required
Proxy-Authenticate: NTLM still_some_more_stuff
где still_some_more_stuff закодированный в base64 CHALLENGE_MESSAGE.
На этом этапе очень важно, чтобы соединение TCP не разрывалось, так как все последующие проверки подлинности информации связанны с установившимся TCP соединением. Если же разорвется, то процедура должна будет повториться с первого шага.
5. Клиент отправляет GET запрос:
Код: Выделить всё
GET /index.html HTTP/1.1
Proxy-Authorization: NTLM cmon_we_are_almost_done
где cmon_we_are_almost_done закодированный в base64 AUTHENTICATE_MESSAGE.
Сообщение содержит информацию об имени пользователя и домене, а также доказательство того, что клиент знает настоящий пароль пользователя (вычисленная функция, более подробно см. NTLM).
6. Если аутентификация принимается, то сервер отвечает клиенту:
и все последующие сообщения не будут нуждаться в аутентификации до тех пор, пока установившееся TCP соединение не разорвется.
Если аутентификация проваливается или TCP соединение разорвалось, то сервер отправляет код состояния 407 и все начинается с первого шага.