Apache 代理和基本身份验证

Apache 代理和基本身份验证

我正在尝试设置一个也可以执行 LDAP 基本身份验证的 Apache 代理:

<IfModule mod_ssl.c>
    <VirtualHost _default_:443>
            ServerAdmin webmaster@localhost

            DocumentRoot /var/www/html

            ProxyPass               /        http://localhost:8080/ nocanon
            ProxyPassReverse        /        http://localhost:8080/
            ProxyPreserveHost       On

            ProxyRequests           Off
            AllowEncodedSlashes     NoDecode
            RequestHeader set X-Forwarded-Proto "https"
            RequestHeader set X-Forwarded-Port "443"

            <Location />
                    AuthType Basic
                    AuthName "LDAP Login for access"
                    AuthBasicProvider ldap
                    AuthLDAPBindDN USER@DOMAIN
                    AuthLDAPBindPassword PASSWORD
                    AuthLDAPURL ldaps://FQDN:636/CN=..,OU=..?uid?sub
                    Require valid-user
            </Location>

ProxyPass 在没有 AuthType Basic 部分的情况下也可以工作,但是,如果结合使用,BasicAuth 会要求输入凭证,然后服务器会抛出 500 错误,而不会在其 error.log 中记录任何内容

我遗漏了什么吗?

答案1

这个配置对我有用:

    <Location />
            AuthType Basic
            AuthName "LDAP Login"
            AuthBasicProvider ldap
            AuthLDAPBindDN USER@DOMAIN
            AuthLDAPBindPassword PASSWORD
            AuthLDAPURL ldap://IP:PORT/OU=...,DC=...,DC=...,DC=intern?uid?sub
            Require ldap-group CN=...,OU=...,OU=...,OU=...,DC=...,DC=...,DC=intern
            Require valid-user
    </Location>

    ProxyPass               /        http://localhost:8080/ nocanon
    ProxyPassReverse        /        http://localhost:8080/
    ProxyPreserveHost       On

    ProxyRequests           Off
    AllowEncodedSlashes     NoDecode
    RequestHeader set X-Forwarded-Proto "https"
    RequestHeader set X-Forwarded-Port "443"

看起来命令的顺序是相关的。

相关内容