Apache 和 LDAP 身份验证

Apache 和 LDAP 身份验证

我们使用 Apache mod_authnz_ldap 通过 LDAP Active Directory 向 Nagios 验证用户身份。目前,它正在使用 SamAccountName。但是,Nagios 使用 SamAccountName 作为登录用户的名称。这给作者评论等带来了一些小问题(我们没有记住用户 ID)。

有没有办法让 mod_authnz_ldap 使用 SamAccountName 进行身份验证,但返回 DisplayName 或 Name?这样作者评论将显示用户的真实姓名。

这是我的 httpd 的 nagios.conf:

<Directory "/usr/lib64/nagios/cgi-bin/">
#  SSLRequireSSL
   Options ExecCGI
   Options FollowSymLinks
   AllowOverride None
   AuthBasicProvider ldap
   AuthType Basic
   AuthzLDAPAuthoritative off
   AuthName "Active Directory Login"
   AuthLDAPURL "ldap://my.ldap.server:389/dc=my_dc,dc=my_dc,dc=net?sAMAccountName?sub" NONE
   Require valid-user
</Directory>

Alias /nagios "/usr/share/nagios/html"

<Directory "/usr/share/nagios/html">
#  SSLRequireSSL
   Options ExecCGI
   Options FollowSymLinks
   AllowOverride None
   AuthBasicProvider ldap
   AuthType Basic
   AuthzLDAPAuthoritative off
   AuthName "Active Directory Login"
   AuthLDAPURL "ldap://my.ldap.server:389/dc=my_dc,dc=my_dc,dc=net?sAMAccountName?sub" NONE
   Require valid-user
</Directory>

答案1

搞清楚了。我必须将“cn”添加到 AuthLDAPURL 中,并添加一个AuthLDAPRemoteUserAttribute

现在 Nagios(以及 Apache)将把 REMOTE_USER 环境变量视为 cn

AuthLDAPURL "ldap://my.ldap.server:389/dc=my_dc,dc=my_dc,dc=net?sAMAccountName,cn?sub" NONE
AuthLDAPRemoteUserAttribute cn

相关内容