Назад | Перейти на главную страницу

Требуется ли для базовой аутентификации пользователя двухфазная связь?

Мое приложение подключается к Интернету к службам HTTP с помощью boost :: asio. Недавно мы добавили поддержку HTTP Proxys и Basic User Authentication. Мы реализовали базовую аутентификацию пользователя, просто отправляя параметры аутентификации с каждым HTTP-вызовом, если пользователь настроил прокси в нашей программе. Параметры отправляются, как описано Вот:

Authorization: Basic <base64 Encoded username:password>

Это работает как минимум для одного пользователя и его прокси-сервера. Другие пользователи сообщают, что их прокси-сервер отвечает

407 Требуется проверка подлинности прокси

Я предполагаю, что некоторые прокси-серверы принимают однофазную аутентификацию, а другие нет. Я не нашел никакой информации о том, что запрашивается двухфазная связь, когда доступ всегда запрещен для первого вызова путем возврата 407, и что принимается только второй вызов.

Наша программа пока не повторяет вызов, если было возвращено 407. Мы должны это добавить?

Я задал этот вопрос раньше в stackoverflow но не получил достаточного ответа.

Как ясно сказано в RFC 2617 (который вы уже должны были прочитать) для аутентификации через прокси требуется, чтобы вы отправили Proxy-Authorization заголовок, а не Authorization заголовок, который используется для аутентификации на исходных серверах. Похоже, что один «рабочий» прокси-сервер, который вы нашли, на самом деле «глючил».