Назад | Перейти на главную страницу

Аутентификация Apache в AD - некоторые используют DOMAIN \\ имя пользователя, другие имя пользователя

у меня есть Запросить трекер установка на сервере 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, поэтому он автоматически выполняет вход в систему. Он отлично работает для большинства людей. В журналах доступа apache отображается имя пользователя, выполнившего вход для каждого запроса.

Но на двух наших компьютерах Request Tracker не может сопоставить имя пользователя с учетной записью. И, глядя на журналы Apache, становится очевидным, почему - при попытке входа с этого компьютера имя пользователя, записанное Apache, DOMAIN\\username, не просто username.

Apache аутентифицировал их очень хорошо, но с неожиданно отформатированным именем пользователя.

Неважно, кто входит в систему с этих компьютеров, логин записывается как DOMAIN\\username.

Насколько я могу судить, в проблемных компьютерах нет ничего уникального. Они были развернуты из одного образа, имеют те же групповые политики, те же обновления Windows, ту же версию IE (9), что и рабочие.

Что могло вызвать разницу в форматировании имени пользователя?

Изменить: поскольку это может быть связано с самбой, вот соответствующая часть 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, но это не имело никакого значения.

Похоже, проблема связана с опцией аутентификации Negotiate. Удаление трех строк для согласования позволило всем пользователям войти в систему, а в журналах веб-сервера было показано пустое имя пользователя.

Я не знаю, почему некоторые компьютеры выбрали NTLM, а некоторые нет. Но с аутентификацией NTLM все работает без сбоев.