Apache2 LDAPS 配置无法 bind/accept 凭据
Apache2 LDAPS configuration fails to bind/accept credentials
第一次发帖,如有不妥之处敬请见谅。我将替换 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=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>
我到处搜索并尝试了很多配置,但我不明白为什么它不适用于这个配置。我至少有三个其他程序将 LDAPS 与此 Active Directory 服务器一起使用。不同之处在于它们都内置了对它的支持,而我不必对 apache 做任何事情。
如有任何帮助,我们将不胜感激!
提前致谢
我实际上继续尝试了多种配置,并最终找到了一种有效的配置。下面是功能代码:
<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,它应该在虚拟主机块之外
第一次发帖,如有不妥之处敬请见谅。我将替换 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=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>
我到处搜索并尝试了很多配置,但我不明白为什么它不适用于这个配置。我至少有三个其他程序将 LDAPS 与此 Active Directory 服务器一起使用。不同之处在于它们都内置了对它的支持,而我不必对 apache 做任何事情。
如有任何帮助,我们将不胜感激! 提前致谢
我实际上继续尝试了多种配置,并最终找到了一种有效的配置。下面是功能代码:
<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,它应该在虚拟主机块之外