Apache 根据 AD 进行身份验证 - 有些使用 DOMAIN\\username,其他使用 username

Apache 根据 AD 进行身份验证 - 有些使用 DOMAIN\\username,其他使用 username

我有请求追踪在 Ubuntu 12.04 服务器上设置。它配置为通过 winbind 对活动目录进行身份验证。

以下是 apache2 配置的相关部分:

    AuthType NTLM
    AuthType Negotiate
    AuthName "Request Tracker"
    NTLMAuth on
    NTLMAuthHelper "/usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp"
    NegotiateAuth on
    NegotiateAuthHelper "/usr/bin/ntlm_auth --helper-protocol=gss-spnego"

请求跟踪器将 apache 验证的用户名与其自己的用户进行匹配,并自动登录。该站点位于 Internet Explorer 的 Intranet 区域,因此它会自动登录用户。它对大多数人来说都很有效。在 apache 访问日志中,它显示了每个请求的登录用户的用户名。

但在我们的两台电脑上,Request Tracker 无法将用户名与账户匹配。查看 Apache 日志,原因显而易见 - 当尝试从该电脑登录时,Apache 记录的用户名是DOMAIN\\username,而不仅仅是username

Apache 成功地对他们进行了身份验证 - 但用户名的格式却是出乎意料的。

无论谁从这些计算机登录,登录都会被记录为DOMAIN\\username

据我所知,有问题的计算机并没有什么独特之处。它们是从同一映像部署的,具有相同的组策略、相同的 Windows 更新、相同的 IE 版本 (9) 以及正常工作的版本。

什么原因可能导致用户名格式的差异?

编辑:因为它可能与 samba 相关,所以这里是 smb.conf 的相关部分:

[global]
security = ads
realm = STLEONARDS.LOCAL
password server = *
workgroup = STLEONARDS
winbind enum users = yes
winbind enum groups = yes
winbind nested groups = yes
winbind refresh tickets = yes
template homedir = /home/%D/%U
template shell = /bin/bash
client use spnego = yes
client ntlmv2 auth = yes
encrypt passwords = true
winbind use default domain = yes
restrict anonymous = 2
valid users = @"Domain Users"
idmap uid = 70000-100000
idmap gid = 70000-100000

我尝试改为winbind use default domainno但并没有什么区别。

答案1

问题似乎出在协商身份验证选项上。删除协商的 3 行后,所有用户都可以登录,并且 Web 服务器日志只显示用户名。

我不知道为什么有些电脑选择 NTLM,而有些电脑不选择。但只要使用 NTLM 身份验证,一切都会顺利进行。

相关内容