Apache mod_authnz_ldap:是否可以通过 Unix 域套接字文件进行连接?

Apache mod_authnz_ldap:是否可以通过 Unix 域套接字文件进行连接?

在我的 Debian 服务器上,我已将 LDAP 服务器配置slapd为仅通过 Unix 域套接字文件接受连接。以下是相关部分/etc/defaults/slapd

SLAPD_SERVICES="ldapi:///"

我一直很满意这种配置,各种 PHP 应用程序都可以很好地使用它。现在,我正尝试配置 Apache 以通过 LDAP 进行身份验证。我通过核心模块执行此操作mod_authnz_ldap。单纯使用ldapiURL 方案不起作用:

AuthLDAPUrl ldapi:///ou=users,dc=example,dc=com?uid?sub?(objectClass=*)

我在 Apache 错误中看到的只是对localhost:389和 的TCP 连接尝试127.0.0.1:389,当然,这些尝试都被拒绝了,因为没有人在这个端口上监听。我还尝试了另外两个 URL,结果都一样:

# Same as the 1st attempt, but with ldap:// instead of ldapi://
AuthLDAPUrl ldap:///ou=users,dc=example,dc=com?uid?sub?(objectClass=*)

# Getting desperate: Specify the file path of the Unix domain socket file
AuthLDAPUrl ldap:///var/run/slapd/ldapi/ou=users,dc=herzbube,dc=ch?uid?sub?(objectClass=*)

Apache 2.4 文档例如AuthLDAPUrl

指定要使用的 LDAP 搜索参数的 RFC 2255 URL。

RFC 2255确实没有提到ldapiURL 方案,也没有提到如何指定 Unix 域套接字文件路径。

我是不是忽略了什么?有人知道我如何mod_authnz_ldap使用 Unix 域套接字文件进行连接吗?或者,正如我担心的那样,确实不可能做到这一点mod_authnz_ldap

我的设置:

  • Debian 杰西
  • Apache 2.4.10
  • OpenLDAP 2.4.40
  • Unix 域套接字文件/var/run/slapd/ldapi可供 Web 服务器用户读取www-data

答案1

恐怕它不受AuthLDAPURL模块指令的支持mod_authnz_ldap

至少在我写下这些话的时候是这样的。

错误跟踪报告已发布,并准确描述了您所遇到的行为:

https://bz.apache.org/bugzilla/show_bug.cgi?id=44302

如果你输入 ldapi:///,它将被(默默地)视为 ldap://localhost:389,也就是说,连接仍然通过 TCP 连接到本地主机

相关内容