Apache는 사용자 정의 http 헤더를 REMOTE_USER 변수에 다시 작성합니다.

Apache는 사용자 정의 http 헤더를 REMOTE_USER 변수에 다시 작성합니다.

저는 모든 웹 서버에 대한 WAM 역할을 하는 IBM WebSEAL이라는 애플리케이션을 가지고 있습니다. Active Directory에서 인증하고 WebSEAL 사용 가능 자원에 액세스하면 WebSEAL은 kerberos 티켓에서 내 사용자 ID를 가져와 iv-userhttp 요청 헤더에 내 Windows NT ID를 설정합니다. 이제 내 애플리케이션과 해당 애플리케이션의 REMOTE_USERApache 변수 읽기에 대해 SSO를 구성하고 싶습니다. 내 질문은. 어떻게 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지시문을 사용할 수도 있습니다.

관련 정보