Apache-Httpd

mod_authnz_ldap 綁定為身份驗證使用者而不是匿名

  • March 13, 2018

我正在嘗試盡可能接近單一憑證。我們有一個 Web 應用程序,它有一組相當有限的可用身份驗證機制,但(幸運的是)允許管理員告訴它信任REMOTE_USERhttpd.

有沒有辦法配置 mod_authnz_ldap 以使用請求使用者的憑據進行身份驗證,而不僅僅是在匿名綁定或共享憑據之間進行選擇?

這是我目前擁有的:

   <Location />

      AuthzLDAPLogLevel debug
      AuthType Basic
      AuthBasicProvider ldap
      AuthName "Active Directory"
      AuthzLDAPAuthoritative off
      AuthLDAPBindDN CN=jad,DC=xxx,DC=com
      AuthLDAPBindPassword xxx
      AuthLDAPURL ldap://xxx.xxx.64.71/DC=xxx,DC=com?samaccountname?sub
      require valid-user

   </Location>

xxx的標記修訂。基本上,上面的方法可以對使用者進行身份驗證,但它使用我的帳戶綁定到 AD。如果我嘗試註釋掉它AuthLDAPBindDNAuthLDAPBindPassword它似乎試圖執行匿名綁定,AD 管理員已將其配置為被拒絕。

我的問題是 apache 是否可以配置為使用身份驗證使用者的憑據,而不是讓我在匿名綁定或使用共享帳戶之間進行選擇(考慮到 AD 人員設置的策略,這也是不可能的)。對於他們被終止或離開的情況,使用一個人的帳戶顯然也不理想。

也許AuthLDAPInitialBindAsUser (Apache 2.3.6) 可以提供幫助:

確定伺服器是否使用 basic 進行初始 DN 查找
驗證使用者自己的使用者名,而不是匿名或使用
伺服器的硬編碼憑據

結合AuthLDAPInitialBindPattern,這樣的事情可能會成功(未經測試):

AuthType 基本
AuthBasicProvider ldap
AuthName“活動目錄”
AuthzLDAPAuthoritative 關閉
AuthLDAPInitialBindAsUser 開啟
AuthLDAPInitialBindPattern (.+) cn=$1,dc=com
AuthLDAPURL ldap://xxx.xxx.64.71/DC=xxx,DC=com?samaccountname?sub
需要有效使用者

引用自:https://unix.stackexchange.com/questions/120854