Назад | Перейти на главную страницу

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

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

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

      <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 line базовая аутентификация работает правильно.