使用 mod_authnz_ldap 与 Active Directory 进行身份验证失败

使用 mod_authnz_ldap 与 Active Directory 进行身份验证失败

我在 CentOS 上设置了 Nagios Core 服务器,希望人们能够使用他们的 AD 凭据登录 Web 界面。目前,httpd 配置如下:

    AuthBasicProvider ldap
    AuthType Basic
    AuthName "Active Directory Login"
    AuthLDAPURL "ldap://[servername].[domainname].inc:3268/dc=[domainname],dc=inc?sAMAccountName?sub" NONE
    AuthLDAPBindDN "[Username]@[domainname].inc"
    AuthLDAPBindPassword "[Password]"
    Require valid-user

但是,尝试登录时会出现以下消息:

[Thu Oct 24 15:18:13.029425 2019] [auth_basic:error] [pid 311] [client 10.121.XX.XX:52740] AH01617: user [username]: authentication failure for "/nagios/": Password Mismatch

我想我做错了什么AuthLDAPURLAuthLDAPBindPassword因为我承认我在理解这些文档时遇到了一些麻烦。

非常感谢。

答案1

再会 !

请检查 cgi.cfg 配置并验证其是否正确。

use_authentication 设置为 1

答案2

我找到了!问题出在AuthLDAPBindDN。我看到[username]@[domain].[TLD]几个地方建议使用这种格式,但据我所知,它不起作用。也许它适用于较旧版本的 Apache。相反,用户名应采用以下格式:

CN=[username],OU=[AD folder containing username],[more entries as needed],DC=[domain],DC=[TLD]

本质上,逗号分隔列表是从您使用的用户对象到顶级域的路径。因此,如果您的目录结构如下所示...

company.com
  location1
  location2
    users
      alice
      bob
      charlie
    computers
  location3

...并且您想使用 Alice 的用户帐户绑定到域,则的值AuthLDAPBindDN应为:

AuthLDAPBindDN "CN=alice,OU=users,OU=location2,dc=company,dc=com"

希望这能帮助那些像我一样困惑的人。

相关内容