Apache - autenticação básica LDAP verificada, mas não obrigatória

Apache - autenticação básica LDAP verificada, mas não obrigatória

Eu preciso do Apache, configurado como passagem de proxy, para verificar o Authorization: Basic ...cabeçalho em um servidor LDAP, definindo um cabeçalho personalizado se as credenciais existirem e estiverem corretas, mas passando a solicitação para o servidor downstream, mesmo se a autenticação estiver ausente ou totalmente errada.

Tentei a seguinte configuração:

      <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>

Mas desta forma X-Authenticated-Userestá sempre (null)mesmo com credenciais válidas, provavelmente porque o Apache otimiza e não realiza a verificação.

Eu poderia conseguir isso (null)se a senha fosse incompatível ou não estivesse presente.

Minha exigência é que a solicitação sejasempreenviado para o servidor downstream, com o X-Authenticated-Usernome de usuário fornecido somente se a senha corresponder.

Editei a configuração: se eu comentar a Require env noauthlinha a autenticação básica funciona corretamente.

informação relacionada