Авторизация на прокси
Кто нибудь сталкивался с такой поблемой?
Посылается HTTP запрос веб серверу через прокси. При этом между браузером и прокси сервером происходит диалог на тему авторизации. В итоге они сходятся во мнениях и прокси пропускает запрос.
Подскажите, плз, по какому алгоритму они разговаривают.
Самое интересное вот в чем. На первый запрос браузера прокси отвечает: 407 Proxy Autorization Required. Но если я посылаю абсолютно такой же запрос по телнету, мне прокси говорит: 403 Forbidden. :(
GET http://www.aaa.ru/aaa.htm HTTP/1.1
Host: aaa.ru
Proxy-Authorization: Basic D345JHFJDKH84JD
D345JHFJDKH84JD - это base64("логин:пароль")
вот и все :)
Proxy-Authenticate: NTLM
Proxy-Authenticate: Kerberos
Proxy-Authenticate: Negotiate
Причем авторизация происходит в несколько этапов:
- сначала браузер просто посылает запрос
- на что прокси ему напоминает про авторизацию
- браузер посылает строку аутентификации
- прокси ему что-то возвращает
- и только теперь браузер посылает еще одну строку аутентификации и запрос проходит
Также я заметил, что на простой запрос URL эта операция может повториться раза три (наверное разные ресурсы подкачиваются)
P.S. Я понял, почему мне прокси говорил 403 Forbidden, просто я пытался коннектиться в инет нарпямую, а надо непосредственно на прокси.
Первые два пункта можно опустить, если сразу отправить строку аутентификации. Читай документацию по этим типам авторизации, там может быть что угодно.
Спасибо! У меня все получилось :D
Цитата:
Originally posted by view
Спасибо! У меня все получилось :D
Спасибо! У меня все получилось :D
Ну и поделился бы...?
а то я мучаюсь над тем же, схему аутентификации
NTLM надыбал, а как в последнем сообщении кодируются LanManager-response и NT-response что-то не пойму :-(
есть пример кода, но не ясно откуда взяты некот. функции и откуда берется пассворд для кодирования
может кто чего подскажет полезного?
кстати, кому интересно, схему NTLM-аутентификации
Цитата:
Originally posted by mike
Первые два пункта можно опустить, если сразу отправить строку аутентификации. Читай документацию по этим типам авторизации, там может быть что угодно.
Первые два пункта можно опустить, если сразу отправить строку аутентификации. Читай документацию по этим типам авторизации, там может быть что угодно.
первые два пункта можно опустить, только если знаешь какой тип аутентификации поддерживает прокси
http://www.geocities.com/rozmanov/ntlm/
Правда глючит немного. Из под винды я его работу так и не увидел, а под Линуксом работает, но есть проблема с соединением. Смысл в том, что пока одна страничка качается, вместе со всеми баннерами и картинками, невозможно получить другое соединение.
Я практически реализовал это дело на php, осталось только разобраться с функцией получения хэшей пароля, имени пользователя и домена. Там реализован алгоритм DES, но стандартными средстванми мне не удалось его заменить. Придется самому писать по аналогии.