HTTPD LDAP 身份验证不起作用

HTTPD LDAP 身份验证不起作用

第一次尝试这样做,我完全迷失了。

我有一台 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 [email protected]
  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/文件- 它只给我目录的内容,不要求凭证。

我最近一次访问后(删除现有日志后)检查了 /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中(我认为目前并不太担心这个):

[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

有人能提供建议吗?

提前致谢。

答案1

好的,已经解决了。

我将位置部分更改为

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

现在它开始工作了。看来是那里的其他部分覆盖了 AD 配置。

不过,谢谢你的评论,杰拉尔德。

相关内容