O mod_setenvif do Apache irá funcionar para você. Eu tentaria algo como:
SetEnvIf iv-user "(.*)$" REMOTE_USER=$1
Se isso não funcionar, há também a diretiva SetEnvIfExpr
com a qual você pode brincar.
Eu tenho um aplicativo IBM WebSEAL que atua como um WAM para todos os nossos servidores da web. Quando sou autenticado no Active Directory e acesso a um recurso de ativação do WebSEAL, o WebSEAL obtém meu ID de usuário do ticket do kerberos e define meu ID do Windows NT em um cabeçalho iv-user
na solicitação http. Gostaria de configurar agora o SSO para meu aplicativo e ler a variável REMOTE_USER
do Apache. Minha pergunta é. Como eu poderia pegar iv-user
e reescrevê-lo em REMOTE_USER
? Quaisquer sugestões são muito apreciadas!
PS. Posso confirmar que o Apache pode ver a variável iv-user
.
EDITAR:
Configuração do host virtual:
[root@otrs conf]# httpd -t -D DUMP_VHOSTS
VirtualHost configuration:
*:443 otrs-1-lab.local.dom. com (/etc/httpd/conf.d/ssl.conf:56)
[root@otrs conf]# less /etc/httpd/conf.d/zzz_otrs.conf
<IfModule mod_perl.c>
# Setup environment and preload modules
Perlrequire /opt/otrs/scripts/apache2-perl-startup.pl
# Reload Perl modules when changed on disk
PerlModule Apache2::Reload
PerlInitHandler Apache2::Reload
# general mod_perl2 options
<Location /otrs>
# ErrorDocument 403 /otrs/customer.pl
ErrorDocument 403 /otrs/index.pl
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
Options +ExecCGI
PerlOptions +ParseHeaders
PerlOptions +SetupEnv
<IfModule mod_version.c>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
</IfModule>
<IfModule !mod_version.c>
Order allow,deny
Allow from all
</IfModule>
</Location>
# mod_perl2 options for GenericInterface
<Location /otrs/nph-genericinterface.pl>
PerlOptions -ParseHeaders
</Location>
</IfModule>
<Directory "/opt/otrs/bin/cgi-bin/">
AllowOverride None
Options +ExecCGI -Includes
<IfModule mod_version.c>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
</IfModule>
<IfModule !mod_version.c>
O mod_setenvif do Apache irá funcionar para você. Eu tentaria algo como:
SetEnvIf iv-user "(.*)$" REMOTE_USER=$1
Se isso não funcionar, há também a diretiva SetEnvIfExpr
com a qual você pode brincar.
Tags apache-httpd