为什么我的 LDAP authentication/url 不工作?

Why is my LDAP authentication/url not working?

我正在将 Apache2 配置为需要特定资源的有效 LDAP 凭据。例如,我有以下 AuthnProviderAlias

<AuthnProviderAlias ldap users>
AuthLDAPURL "ldap://ldap.devops.ok/dc=devops,dc=ok?uid?sub?(&(objectClass=organizationalPerson)(isMemberOf=cn=users,dc=groups,dc=devops,dc=ok))"
AuthLDAPBindDN "cn=admin"
AuthLDAPBindPassword ****
</AuthnProviderAlias>

已配置基本身份验证,提示输入凭据但用户无法进入。Apache 报告内部服务器 500 响应代码。

当我添加 LogLevel debug 日志时显示用户无效

[Thu Sep 01 08:57:37.878815 2016] [authz_core:debug] [pid 3501] mod_authz_core.c(809): [client 10.0.2.2:34163] AH01626: authorization result of Require valid-user : denied (no authenticated user yet)
[Thu Sep 01 08:57:37.878887 2016] [authz_core:debug] [pid 3501] mod_authz_core.c(809): [client 10.0.2.2:34163] AH01626: authorization result of <RequireAny>: denied (no authenticated user yet)

我怀疑 AuthLDAPURL 不正确。

如何检查 URL 是否正确? URL 现在很简单,但会更复杂。除了反复试验、重新加载 Apache 服务之外,是否有更好的方法来获得有效的 URL?我可以使用哪些工具?

我猜 cn=admin 是问题所在。 那是管理员用户的完全可分辨名称吗?

"no authenticated user yet" 表示 LDAP 服务器实现不接受绑定请求。

尝试使用 KNOW good LDAP 浏览器进行连接。 (我们喜欢APache Studio

我建议使用 ldapsearch 实用程序进行检查以确保您可以使用过滤器成功绑定搜索。

ldapsearch -x -H ldap://ldap.devops.ok -b dc=devops,dc=ok -D "cn=Admin" -w yourpassword "(&(objectClass=organizationalPerson)(isMemberOf=cn=users,dc=groups,dc=devops,dc=ok))" uid

也像 jwilleke 建议仔细检查您的 BindDN 以确保它是正确的。

使用您的 "cn=Admin" 或 "cn=Directory Manager"(您的目录服务器的管理员帐户)绑定到目录服务器不是好的安全做法。创建一个非特权服务帐户来执行这些任务。