Клиент может аутентифицироваться на прямом прокси Apache с одной учётной записью, а Apache аутентифицируется на родительском прокси с другой:

client ── client account ── Apache ── parent account ── parent proxy

Для фиксированной учётной записи родительского прокси в httpd 2.4.59 или новее ProxyRemote принимает третий аргумент:

ProxyRemote "*" "http://parent.example:3128" "parent-user:replace_with_private_password"

Это дополняет существующую конфигурацию прямого прокси с контролем доступа, например частный слушатель, который требует и IP-адрес клиента, и вход на прокси. Учётная запись принадлежит выбранному родительскому прокси. Защитите конфигурацию, содержащую её, и выберите область совпадения, требуемую развёртыванием.

Apache отправляет эти Basic-учётные данные заранее, не дожидаясь сначала запроса. Поэтому транспорт и политика учётных записей соединения с родительским прокси важны; последующая HTTPS-сессия сайта сама по себе не защищает переход по HTTP открытым текстом к родительскому прокси.

Когда ту же входящую учётную запись следует продолжать

Обычно Apache расходует аутентификацию прокси, адресованную ему самому. Настройка окружения proxy-chain-auth вместо этого позволяет передавать прокси-учётные данные клиента следующему прокси:

SetEnv proxy-chain-auth On

Это подходит только для намеренно общей цепочки аутентификации. Она передаёт дальше материал входящей учётной записи; она не придумывает другие имя пользователя и пароль родительского прокси.

С явным аргументом учётных данных ProxyRemote настройка proxy-chain-auth не действует. Выбирайте источник учётных данных осознанно, а не наслаивайте обе настройки в надежде, что будет выбран работающий пароль.

Эти механизмы аутентифицируют переходы прокси. Заголовок Authorization целевого сайта остаётся отдельным обменом.

Похожие статьи