我在 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 domain
为no
,但这没有任何区别。
看来问题出在协商身份验证选项上。删除协商的 3 行使所有用户都能够登录,并且网络服务器日志显示裸用户名。
我不知道为什么有些计算机选择 NTLM 而有些则没有。但只需 NTLM 身份验证,一切都会顺利进行。