Ldap

HTTPD LDAP 身份驗證不起作用

  • July 13, 2021

第一次嘗試這樣做,我完全迷失了。

我有一個 Oracle Linux 7.9 伺服器,它有一個需要通過 HTTP 共享給使用者的目錄,以便他們可以下載文件以發送給第三方。

我很容易讓它對所有人可見和開放,但到目前為止我還無法讓 LDAP 工作——它甚至不會提示我輸入憑據。

我已經為:httpd、openldap、openldap-clients、nss_ldap 和 mod_ldap 進行了 yum 安裝(根據網路上各種文章中的說明)。

我已經編輯了 /etc/httpd/conf/httpd.conf 並添加了

LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so

(httpd 日誌顯示這些已經載入並且它無論如何都會跳過它)。

在 /etc/httpd/conf.d/interfaces.conf 我有以下(為了安全而編輯):

<VirtualHost *:80>

ServerAdmin user@mycompany.com
 ServerName mywebserer
 ServerAlias x.x.x.x
 DocumentRoot /

 LogLevel warn
 ErrorLog "logs/interfaces_prd_webdav_error_log"
 CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/webdav_access_log.%Y-%m-%d-%H_%M_%S 5M" "%t %h  \"%r\" %>s %b"

 LimitXMLRequestBody 131072
 DavLockDB /var/lib/dav/lockdb

# ************************************************************

 <Directory "/directory/to/export">
   AuthType Basic
   AuthName "Use Your App Login"
   AuthBasicProvider ldap
   AuthLDAPURL "ldap://mydomain.local:389/ou=OU1,ou=MyBusiness,dc=mycompany,dc=local?sAMAccountName?sub?(objectClass=*)"
   AuthLDAPGroupAttributeIsDN on
   AuthLDAPBindDN "ldapsearchuser"
   AuthLDAPBindPassword "secret_password"
#    Require group cn=group,ou=Groups,dc=mycompany,dc=local
   Require valid-user
 </Directory>

 Alias /files /directory/to/export

 <Location /files>
   Dav on
   Order allow,deny
   Allow from all
   Require all granted
   Options +Indexes
 </Location>

</VirtualHost>

“要求組”被註釋掉了,因為在這個階段我只是試圖獲得初始憑證挑戰並得到驗證。

如果重要的話,我連接的伺服器是 Linux OpenLDAP 伺服器,而不是 Microsoft AD。

當我轉到http://xxxx/files - 它只是給了我目錄的內容,對憑據沒有挑戰。

我在最近一次訪問後(刪除現有日誌後)檢查了 /var/log/httpd 文件夾,並且沒有將任何內容添加到任何日誌文件中。

重新啟動 httpd 時,error_log 顯示:

[Tue Jul 13 17:07:00.277230 2021] [mpm_prefork:notice] [pid 11681] AH00170: caught SIGWINCH, shutting down gracefully
[Tue Jul 13 17:07:01.345552 2021] [suexec:notice] [pid 15751] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Tue Jul 13 17:07:01.357475 2021] [so:warn] [pid 15751] AH01574: module ldap_module is already loaded, skipping
[Tue Jul 13 17:07:01.357497 2021] [so:warn] [pid 15751] AH01574: module authnz_ldap_module is already loaded, skipping
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::221:f6ff:fe6e:9c69. Set the 'ServerName' directive globally to suppress this message
[Tue Jul 13 17:07:01.383713 2021] [lbmethod_heartbeat:notice] [pid 15751] AH02282: No slotmem from mod_heartmonitor
[Tue Jul 13 17:07:01.387200 2021] [mpm_prefork:notice] [pid 15751] AH00163: Apache/2.4.6 () configured -- resuming normal operations
[Tue Jul 13 17:07:01.387228 2021] [core:notice] [pid 15751] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'

嘗試通過瀏覽器訪問目錄時,我得到:

在 interfaces_prd_webdav_error_log 中(我不認為過分擔心這個 atm):

[Tue Jul 13 17:07:20.015412 2021] [authz_core:error] [pid 15754] [client 10.1.7.44:55820] AH01630: client denied by server configuration: /favicon.ico, referer: http://172.17.9.21/files/

在 webdav_access_log 中:

[13/Jul/2021:17:07:19 -0400] 10.1.7.44  "GET /files/ HTTP/1.1" 200 1303
[13/Jul/2021:17:07:20 -0400] 10.1.7.44  "GET /favicon.ico HTTP/1.1" 403 213

任何人都可以提供任何建議嗎?

提前致謝。

好的,已經解決了。

我將位置部分更改為

 <Location /files>
   Dav on
   Options +Indexes
 </Location>

現在它正在工作。似乎那裡的其他部分覆蓋了 AD 配置。

不過,感謝您的評論,杰拉德。

引用自:https://serverfault.com/questions/1069506