Apache - LDAP 基本認証はチェックされていますが必須ではありません

Apache - LDAP 基本認証はチェックされていますが必須ではありません

プロキシ パスとして構成された Apache が、LDAP サーバーに対してヘッダーをチェックしAuthorization: Basic ...、資格情報が存在して正しい場合はカスタム ヘッダーを設定し、認証が欠落しているか間違っている場合でも、ダウンストリーム サーバーに要求を渡す必要があります。

次の構成を試しました:

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

しかし、この方法では、Apache が最適化してチェックをまったく実行しないため、資格情報が有効であってもX-Authenticated-User常に有効になります。(null)

(null)パスワードが一致しないか、まったく存在しない場合でも、対処できます。

私の要求は、リクエストがいつもダウンストリーム サーバーに送信され、X-Authenticated-Userパスワードが一致する場合にのみ指定されたユーザー名に設定されます。

設定を編集しました。Require env noauth行をコメントアウトすると、基本認証が正しく機能します。

関連情報