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