ldap - 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 做任何事情。
任何帮助,将不胜感激!提前致谢
解决方案
实际上,我继续尝试多种配置,最终找到了一种有效的配置。以下是功能代码:
<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 块之外
推荐阅读
- sql - sql脚本使用datepart每小时分组并用0填充空
- javascript - 在自动完成建议选择上触发加载
- spring-boot - 覆盖自定义 spring-boot-starter 中定义的属性不起作用
- security - 在前端通道中进行授权代码 URI 重定向是一个坏主意吗?
- ruby-on-rails - Ruby Rails 在控制器中模拟 Devise authed 用户
- r - RiskPortfolio 包 最佳投资组合结果
- entity-framework - Last 和 LastOrDefault 的 EF 行为
- css - 在哪里更改 css 代码以适应 buildfire 应用程序中的字体大小和按钮大小以根据需要自定义样式?
- ajax - 使用标头和发送 POST 字段时出现 React.js CORS 问题
- asp.net - ASP.NET Core 3.1 非托管内存