Apache - базовая аутентификация LDAP проверена, но не требуется

Apache - базовая аутентификация LDAP проверена, но не требуется

Мне нужен Apache, настроенный как Proxy Pass, для проверки Authorization: Basic ...заголовка на сервере LDAP, установки настраиваемого заголовка, если учетные данные существуют и верны, но передачи запроса на нижестоящий сервер, даже если аутентификация отсутствует или просто неверна.

Я попробовал следующую конфигурацию:

      <Location ~ /my/path/(.*)/my/resource(/.+)?>
        AuthType Basic
        AuthName "Login with user id"
        AuthBasicProvider ldap
        AuthUserFile /dev/null
        AuthLDAPURL "my LDAP url"
        AuthLDAPBindDN "my bind variables"
        AuthLDAPBindPassword ******
        RequestHeader set X-Authenticated-User %{AUTHENTICATE_uid}e
        SetEnv 1 noauth
        <RequireAny>
           Require valid-user
           Require env noauth
        </RequireAny>
        ProxyPreserveHost On
        ProxyPass        http://downstream.server/my/other/path/$1/$2
        ProxyPassReverse http://downstream.server/my/other/path/$1/$2
     </Location>

Но в этом случае проверка X-Authenticated-Userвсегда выполняется (null)даже при наличии действительных учетных данных, вероятно, потому, что Apache оптимизирует ее и вообще не выполняет проверку.

Я мог бы это сделать, (null)если пароль не совпадает или отсутствует вообще.

Мое требование заключается в том, чтобы запрос былвсегдаотправляется на нижестоящий сервер с X-Authenticated-Userустановкой указанного имени пользователя только в случае совпадения пароля.

Я отредактировал конфигурацию: если я закомментирую Require env noauthстроку, базовая аутентификация работает правильно.

Связанный контент