
プロキシ パスとして構成された 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
行をコメントアウトすると、基本認証が正しく機能します。