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