Apache 将自定义 http 标头重写为 REMOTE_USER 变量

Apache 将自定义 http 标头重写为 REMOTE_USER 变量

我有一个应用程序 IBM WebSEAL,它充当我们所有 Web 服务器的 WAM。当我在 Active Directory 中进行身份验证并访问 WebSEAL 启用资源时,WebSEAL 会从 kerberos 票证中获取我的用户 ID,并在iv-userhttp 请求的标头中设置我的 Windows NT ID。我现在想为我的应用程序配置 SSO 及其读取REMOTE_USERApache 变量。我的问题是。我怎样才能把iv-user它重新写入REMOTE_USER?任何提示都将受到高度赞赏!附言。我可以确认 Apache 可以看到该iv-user变量。

编辑:

虚拟主机配置:

[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>

答案1

阿帕奇mod_setenvif一定会为你做事。我会尝试这样的事情:

SetEnvIf iv-user "(.*)$" REMOTE_USER=$1

如果这不起作用,SetEnvIfExpr您还可以使用指令。

相关内容