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>

但這樣一來,即使具有有效的憑證,也X-Authenticated-User始終是均勻的(null),可能是因為 Apache 進行了最佳化並且完全不執行檢查。

(null)如果密碼不匹配或根本不存在,我可以設法得到。

我的要求是請求是總是傳送到下游伺服器,X-Authenticated-User僅當密碼匹配時才設定為給定的使用者名稱。

我編輯了配置:如果我註釋該Require env noauth行,則基本身份驗證可以正常工作。

相關內容