Apache2 LDAPS配置无法绑定/接受凭证

问题描述

这是我第一次发布,因此如果我做错了事,请提前抱歉。我将用ip和用户名代替。

我有一个Windows Active Directory设置程序,我正在尝试使用它对我在单独的Ubuntu 18.04服务器上拥有的网页进行身份验证。我试图使用apache2(2.4.18)进行设置。在线文档似乎相当简单,但是我没有成功。首先,我不能使用标记,因为它似乎根本不起作用。我必须使用标记

AD服务器使用自签名证书,我很难通过LDAPTrustedGlobalCert使其信任它。我得到了[Can't contact LDAP server],但是LDAPVerifyServerCert Off似乎让我暂时克服了这个障碍。

我最大的问题是绑定不起作用。刚加载网页时,我会在错误日志中看到它:

[authz_core:debug] [pid 2397] mod_authz_core.c(809): [client <myclientIP>:56969] AH01626: authorization result of Require valid-user : denied (no authenticated user yet)
[authz_core:debug] [pid 2397] mod_authz_core.c(809): [client <myclientIP>:56969] AH01626: authorization result of <RequireAny>: denied (no authenticated user yet)

从那里我输入凭据以尝试进行身份验证,然后得到:

[Thu Aug 27 08:36:22.831527 2020] [authnz_ldap:debug] [pid 2396] mod_authnz_ldap.c(520): [client <myClientIP>:56887] AH01691: auth_ldap authenticate: using URL ldaps://<myLDAPIP>/dc=my,dc=example,dc=com?uid
[Thu Aug 27 08:36:22.888784 2020] [authnz_ldap:info] [pid 2396] [client <myClientIP>:56887] AH01695: auth_ldap authenticate: user <myUser> authentication Failed; URI /auth/ [LDAP: ldap_simple_bind() Failed][Invalid credentials]
[Thu Aug 27 08:36:22.888825 2020] [auth_basic:error] [pid 2396] [client <myClientIP>:56887] AH01617: user <myUser>: authentication failure for "/auth/": Password Mismatch

这是我对apache的配置。我在其中添加了注释行,以便您可以看到我尝试过的许多变体中的几个:

LDAPVerifyServerCert Off

<Directory "/var/www/html/auth">
AuthType Basic
AuthName "Authentication required"
AuthBasicProvider ldap
AuthLDAPURL ldaps://<myLDAPIP>/dc=my,dc=com?uid
#AuthLDAPURL ldaps://<myLDAPIP>:636/cn=Users,dc=my,dc=com
AuthLDAPBindDN <myUser>
#AuthLDAPBindDN cn=<myUser>,dc=com
AuthLDAPBindPassword <myPassword>
Require valid-user
#require ldap-group cn=Users,dc=com
#require ldap-group cn=Users
LogLevel debug
</Directory>

我到处搜索并尝试了许多配置,但是我不明白为什么它不适用于此配置。我至少还有其他三个与此Active Directory服务器一起使用LDAPS的程序。区别在于,他们全都对此提供了支持,而我无需对Apache做任何事情。

任何帮助将不胜感激! 预先感谢

解决方法

我实际上继续尝试多种配置,最后发现一种可行的方法。下面是起作用的代码:

<Directory "/var/www/html/auth">
 AuthType Basic
 AuthName "Authentication required"
 AuthBasicProvider ldap
 AuthLDAPURL "ldaps://<myLDAPIP>/dc=my,dc=example,dc=com?sAMAccountName"
 AuthLDAPBindDN "[email protected]"
 AuthLDAPBindPassword "<Password>"
 Require valid-user
LogLevel debug
</Directory>

*如果您的证书不受信任,则可以添加LDAPVerifyServerCert Off,该证书应位于virtualhost块之外