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

apache пересылает REMOTE_USER пользователю X-Forwarded-User

Я хотел бы передать переменную среды 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>