我们使用 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