Я хотел бы передать переменную среды REMOTE_USER, установленную apache, когда базовая аутентификация HTTP верна для бэкэнда. Это также обеспечит аутентификацию для внутреннего сервера.
Вот мой файл конфигурации apache2:
<Directory />
AuthType basic
AuthUserFile $my_file
require valid-user
RewriteEngine on
RewriteCond %{REMOTE_USER} (.+)
RequestHeader set X-Forwarded-User %{REMOTE_USER}e
</Directory>
Аутентификация с помощью apache2 проходит хорошо, поскольку я правильно перенаправлен на внутренний сервер, но затем внутренний сервер не получает REMOTE_USER, поскольку переменная X-Forwarded-User не отображается в трассировке tcpdump.
Что я мог забыть / неправильно сконфигурировать, что не позволяет этой переменной REMOTE_USER перенаправляться в бэкэнд как X-Forwarded-User?
REMOTE_USER на самом деле не является переменной среды внутри Apache, но вместо этого устанавливается Apache при запуске таких вещей, как обработчики CGI или PHP.
Фактическое значение встроено в структуру Apache. Видеть Документация Apache по переменным среды
Возможно, вам нужно быть ENV: в качестве префикса.
<Directory />
AuthType basic
AuthUserFile $my_file
require valid-user
RewriteEngine on
RewriteCond %{ENV:REMOTE_USER} (.+)
RequestHeader set X-Forwarded-User %{ENV:REMOTE_USER}e
</Directory>