O Apache reescreve o cabeçalho http personalizado para a variável REMOTE_USER

0

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>
    
por blablatrace 14.09.2018 / 16:00

1 resposta

1

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.

    
por 14.09.2018 / 17:00