Lorsque LL::NG est utilisé en mode reverse-proxy, la variable d'environnement REMOTE_USER
n'est pas renseignée. Toutefois, cette variable est renseignée par l'agent dans le serveur physique l'hébergeant mais pas dans les autres serveurs sans agents.
Apache SetEnvIf module will let you transform the Auth-User HTTP header in REMOTE_USER
environment variable:
SetEnvIfNoCase Auth-User "(.*)" REMOTE_USER=$1
Ceci permet de protéger des applications nécessitant la variable d'environnement REMOTE_USER
en mode reverse-proxy. Dans ce cas 2 fichiers de configuration Apache doivent être renseignés :
<VirtualHost *:80> ServerName application.example.com PerlHeaderParserHandler Lemonldap::NG::Handler ProxyPreserveHost on ProxyPass / http://APPLICATION_IP/ ProxyPassReverse / http://APPLICATION_IP/ </VirtualHost>
<VirtualHost *:80> ServerName application.example.com SetEnvIfNoCase Auth-User "(.*)" REMOTE_USER=$1 DocumentRoot /var/www/application </VirtualHost>
SetEnvIfNoCase Auth-User "(.*)" PHP_AUTH_USER=$1 SetEnvIfNoCase Auth-Password "(.*)" PHP_AUTH_PW=$1
Of course, you need to store password in session to fill PHP_AUTH_PW.