如何使用ProxyPassReverse将remote_user变量从Apache传递到另一个Apache服务器。

4
我有一个通过IBM IHS访问的Web应用程序,该应用程序是Tivoli ldap验证的。从这个应用程序中,我必须点击链接,该链接应由另一个Apache服务器提供服务,但我必须通过请求传递用户名,因此其他应用程序服务器将基于从IBM IHS服务器传递的用户名填充数据。我能够通过httpd.conf内的proxypassreverse规则打开其他链接,但我无法传递remote_user头变量。
已添加到httpd.conf的规则。
ProxyPass /ebill_testselfcare http://10.243.97.24/ebill_testselfcare
ProxyPassReverse /ebill_testselfcare http://10.243.97.24/ebill_testselfcare
RewriteEngine on
RewriteCond %{IS_SUBREQ} ^false$
RewriteCond %{LA-U:REMOTE_USER} (.+)
RewriteRule .* - [E=PROXY_USER:%{LA-U:REMOTE_USER}]
RequestHeader set REMOTE_USER %{PROXY_USER}e
1个回答

4

请勿使用以下代码,因为如果REMOTE_USER被设置为类似于mod_authn_ntlm(本地计算机的ntlm)的模块,您将在执行阶段遇到麻烦。有关详细信息,请参见https://support.microsoft.com/en-us/kb/896861

RewriteCond %{LA-U:REMOTE_USER} (.+)
RewriteRule . - [E=RU:%1]
RequestHeader set X-Remote-User %{RU}e

请使用以下方法代替:

RequestHeader set X-Remote-User expr=%{REMOTE_USER}

还有一种使用mod_ssl的解决方案

RequestHeader set X-Remote-User %{REMOTE_USER}s

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接