apache 将 REMOTE_USER 转发到 X-Forwarded-User

apache 将 REMOTE_USER 转发到 X-Forwarded-User

当 HTTP 基本身份验证正确时,我想将 apache 设置的环境变量 REMOTE_USER 传递给后端。这也会为后端服务器提供身份验证。

这是我的 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 转发到后端?

答案1

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>

相关内容