Какой самый простой способ создать прокси-сервер HTTP, который добавляет базовую аутентификацию к запросам?
Я пытаюсь использовать службу, предоставляемую сервером, которая требует базовой HTTP-аутентификации, однако приложение, которое я использую, не поддерживает аутентификацию. Я хотел бы создать прокси-сервер, который позволит моему приложению без авторизации подключаться через прокси-сервер (который добавит информацию об аутентификации) к серверу, требующему аутентификации. Я уверен, что это можно сделать, однако я поражен количеством прокси-серверов и не смог найти ответ, как это сделать.
По сути, мне кажется, что все, что я хочу сделать - это прокси-сервер обслуживать этот URL:
http://username:password@remoteserver/path
как этот URL:
http://proxyserver/path
Я могу запустить его на Linux, но плюс, если я могу запустить его и на Windows. Открытый исходный код или, по крайней мере, бесплатный является обязательным. Большой плюс, если это довольно просто настроить.
3 ответа
Basic Authentication normally is a Base64 Encoded String of "username:password" and a HTTP-Header "Authorization".
By adding the following to a Apache2 vHost you should be fine:
<Location /path>
RequestHeader set Authorization "Basic <base64string>"
</Location>
ProxyPass /path http://backend/path
ProxyPassReverse /path http://backend/path
Вы можете base64 кодировать часть "имя пользователя: пароль" по адресу http://www.motobit.com/util/base64-decoder-encoder.asp (например). В приведенном выше примере требуются mod_headers и mod_proxy (должны быть доступны как для Linux, так и для Windows с Apache2.
Вы также можете изменять запросы (добавлять / изменять заголовки) в некоторых других пакетах, таких как WinGate в Windows.
Если вы видите всплывающее диалоговое окно браузера, это обычно означает, что вы получаете ответ 407 от прокси-сервера или 401 от конечного сервера, это не обязательно указывает на использование HTTP Basic auth.
Вы можете войти в поле проверки подлинности или просто использовать wireshark, чтобы увидеть, что происходит.
Вы можете попробовать BusyBox httpd: вы можете проксировать запросы и добавлять базовую аутентификацию к прокси-пути.