我有一个应用程序 IBM WebSEAL,它充当我们所有 Web 服务器的 WAM。当我在 Active Directory 中进行身份验证并访问 WebSEAL 启用资源时,WebSEAL 会从 kerberos 票证中获取我的用户 ID,并在iv-user
http 请求的标头中设置我的 Windows NT ID。我现在想为我的应用程序配置 SSO 及其读取REMOTE_USER
Apache 变量。我的问题是。我怎样才能把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
您还可以使用指令。