得到authentication的用户在Apache下

使用mod_auth_sspi和mod_headers在Windows上使用Apache 2.2。 我正尝试将当前已通过身份validation的用户传递给X-Remote-User头中的代理目标。

我期望这很简单,但是我现在一直在和Apache闹了一个小时,在文档或者谷歌上找不到秘密的东西。

我的configuration如下。 它使用Active Directory正确地对用户进行身份validation,然后通过坐在后面的服务器代理请求。 但是,X远程用户标题不会被添加。 看起来REMOTE_USER环境variables不存在。 AUTH_USER也不是。

我知道authentication的用户名是可用的,但我怎么得到它?

ProxyRequests off ProxyPass /clsoap/ http://127.0.0.1:12001/clsoap/ <Location /clsoap/> ProxyPassReverse /clsoap/ AuthName "ADTest" AuthType SSPI SSPIAuth On SSPIAuthoritative On SSPIDomain primary.example.com SSPIUsernameCase lower SSPIOfferBasic Off Require valid-user RequestHeader set X-Remote-User "%{REMOTE_USER}e" env=REMOTE_USER RequestHeader set X-Auth-User "%{AUTH_USER}e" env=AUTH_USER </Location> 

好极了。 另一个谷歌会议后尝试不同的随机关键字,我发现这一点:

http://www.ruby-forum.com/topic/83067

http://old.nabble.com/Forcing-a-proxied-host-to-generate-REMOTE_USER-to2911573.html#a2914465

这现在工作:

 ProxyRequests off ProxyPass /clsoap/ http://127.0.0.1:12001/clsoap/ <Location /clsoap/> ProxyPassReverse /clsoap/ AuthName "ADTest" AuthType SSPI SSPIAuth On SSPIAuthoritative On SSPIDomain primary.example.com SSPIUsernameCase lower SSPIOfferBasic Off Require valid-user RewriteEngine On RewriteCond %{LA-U:REMOTE_USER} (.+) RewriteRule . - [E=RU:%1] RequestHeader set X-Remote-User "%{RU}e" env=RU </Location> 

我知道这是一个古老的post,但由于用户仍然打这个我想我会补充说,在SSL环境“%{VAR} s”vs非SSL环境%{VAR} Ë

我发现pubcookie只将远程用户设置为一个安全的环境variables,我可以通过以下方式转发:

  RequestHeader set X-REMOTE-USER %{REMOTE_USER}s 

注:结束于s不在e!

现在,这可能是一个潜在的安全漏洞,如果您将请求转发给其他服务器或使用http,将用户名信息泄露给黑客。 我只转发给本地主机,所以这对我来说不是问题。