首页 > 解决方案 > Apache2 LDAPS 配置无法绑定/接受凭据

问题描述

如果我做错了事,这是我第一次提前发帖很抱歉。我将替换 ip 和用户名。

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

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=example,dc=com?uid
#AuthLDAPURL ldaps://<myLDAPIP>:636/cn=Users,dc=my,dc=example,dc=com
AuthLDAPBindDN <myUser>
#AuthLDAPBindDN cn=<myUser>,dc=my,dc=example,dc=com
AuthLDAPBindPassword <myPassword>
Require valid-user
#require ldap-group cn=Users,dc=my,dc=example,dc=com
#require ldap-group cn=Users
LogLevel debug
</Directory>

我到处搜索并尝试了许多配置,但我不明白为什么它不适用于这个配置。我至少有三个其他程序在此 Active Directory 服务器上使用 LDAPS。不同之处在于它们都内置了对它的支持,而我不必对 apache 做任何事情。

任何帮助,将不胜感激!提前致谢

标签: ldapapache2.4

解决方案


实际上,我继续尝试多种配置,最终找到了一种有效的配置。以下是功能代码:

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

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


推荐阅读