Isso é possível com mod_headers, mod_rewrite e mod_proxy.
No proxy, presumo que você tenha sua autenticação funcionando e definindo REMOTE_USER adequadamente. Em caso afirmativo, coloque o valor de REMOTE_USER em um cabeçalho de usuário proxy para o back-end da seguinte forma:
RewriteRule .* - [E=PROXY_USER:%{LA-U:REMOTE_USER}] # note mod_rewrite's lookahead option
RequestHeader set Proxy-User %{PROXY_USER}e
Veja o que acontece:
- O RewriteRule é acionado para cada solicitação e define a variável de ambiente PROXY_USER igual ao valor de REMOTE_USER, que já deveria ter sido definido por um módulo de autenticação.
- O RequestHeader define um cabeçalho de solicitação chamado Usuário-proxy com o valor de PROXY_USER
Agora, no backend, você pode extrair esse valor de cabeçalho e definir REMOTE_USER assim:
RewriteCond %{HTTP:Proxy-user} ^(.*)$
RewriteRule .* - [E=REMOTE_USER:%1]
Veja o que acontece:
- O RewriteCondition verifica o valor do cabeçalho Proxy-User para ver se ele corresponde ao padrão ^. * $ (o que será). Os parênteses dizem ao mod_rewrite para armazenar esse valor em% 1.
- O RewriteRule, em seguida, define a variável de ambiente REMOTE_USER com o valor em% 1.