Pull to refresh

Comments 14

С «кавычками» вокруг «имён собственных», пожалуй, перебор.
А теперь сюда ещё нужно прикрутить плагин CRM для полного счастья, ибо это тоже магия.
Redmine из коробки мало для чего подходит, по моему мнению. Но у него большой плюс в наличие большого количества плагинов и в хорошей расширяемости. Мы достаточно удачно используем его в корпоративных целях, как единую информационную среду.
Мы тоже его используем, но с совместимостью версий, плагинами и обновлениями бывает не просто.
Почти все плагины пишем самостоятельно. Тяжелые переезды были когда Redmine c Rails 2 на Rails 3 переехал. Тогда пришлось много кода перенести с Prototype на Jquery. Дальше переезды были менее трудо-затратными.
раньше я тоже использовал пассенжер. тк было удобно, потому что всего одна команда и почти любое ror приложение работало сразу.

а потом когда я научился использовать rvm и узнал о unicorn (или puma), то сразу понял, что оно лучше:
быстрее загрузка, гибче настройка и уверенность в том, что ror приложение работает именно от того пользователя, под которым запущен unicorn.

а апач (хотя в моем случае nginx), используется исключительно как прокси.

при такой схеме удобно и быстро можно держать несколько версий редмайна (а иногда и такое бывает)
или любые другие веб приложения.
Сейчас на работе занимаюсь тем, что настраиваю прозрачную аутентификацию на Redmine. Но никак не получается настроить ntlm.

Я пока создал просто маленькую тестовую страничку на PHP, где дампится $_SERVER. При заходе на эту страницу появляется окно авторизации. Ввожу логин/пароль, оно появляется снова, ввожу еще раз — снова появляется. Пробовал логин вводить в разных форматах: domain\login, login, domain\\login, ничего не работает. Все данные (хост, домен) должны быть верные, так как во встроенном LDAP Redmine все работает. Вот логи апача:

[info] [client 192.168.9.75] 3064054256 23800 / — NTLMXX-Creating new ntlm_connection: 1
[debug] mod_ntlm.c(78): [client 192.168.9.75] 3064054256 23800 / — got auth_line «ЗДЕСЬ ДЛИННАЯ СТРОКА»
[debug] mod_ntlm.c(78): [client 192.168.9.75] 3064054256 23800 / — got header with host "", domain "", unicode flag 7
[info] [client 192.168.9.75] 3064054256 23800 / — received msg1 keep-alive: 0, keepalives: 0
[info] [client 192.168.9.75] 3064054256 23800 / — send WWW-Authenticate «ЗДЕСЬ ДЛИННАЯ СТРОКА»
[debug] mod_deflate.c(615): [client 192.168.9.75] Zlib: Compressed 475 to 320: URL /
[debug] mod_ntlm.c(78): [client 192.168.9.75] 3064054256 23800 / — got auth_line «ЗДЕСЬ ДЛИННАЯ СТРОКА»
[Thu Dec 26 12:56:53 2013] [debug] mod_ntlm.c(78): [client 192.168.9.75] 3064054256 23800 / — got header with host «HW008», domain «НАЗВАНИЕ НАШЕГО ДОМЕНА», unicode flag 7
[Thu Dec 26 12:56:53 2013] [info] [client 192.168.9.75] 3064054256 23800 / — received msg3
[Thu Dec 26 12:56:53 2013] [info] [client 192.168.9.75] 3064054256 23800 / — authenticating user against DC
[Thu Dec 26 12:56:53 2013] [error] [client 192.168.9.75] 3064054256 23800 / — NTLM/SMB user "(null)": authentication failure for "/"
[Thu Dec 26 12:56:53 2013] [debug] mod_deflate.c(615): [client 192.168.9.75] Zlib: Compressed 475 to 320: URL /

Вот конфиг апача:

<VirtualHost *:80>
	ServerAdmin webmaster@localhost

	DocumentRoot /var/www/ntlm
	ServerName ntlm.dev

	<Location />
		AuthName NTAuth
		AuthType NTLM
		NTLMAuth on
		NTLMAuthoritative on
		NTLMDomain SUB.DOMAIN.COM
		NTLMServer dc2.sub.domain.com
		NTLMBackup dc2.sub.domain.com
		NTLMLockfile /tmp/_my.lck
		require valid-user
	</Location>
</VirtualHost>


Наш домен Active Directory выглядит как домен второго уровня, поэтому SUB.DOMAIN.COM.

Что может работать неправильно?
В самом Redmine во встроенном LDAP я ввожу такие параметры и все работает:

Name = ActiveDirectory
Host = dc2.sub.domain.com
Port = 389
LDAPS = no
Account = Domain\Login
Password = password
Base DN = DC=sub,DC=domain,DC=com

On-the-fly user creation = no
Attributes
Login = sAMAccountName

Я правильно понимаю, что LDAP Redmine и NTLM должны пытаться подключиться к одному и тому же серверу? Если да, то почему в LDAP Redmine мы указываем еще логин/пароль пользователя с правами на чтение в домене, а в NTLM нет?
Что может работать неправильно?


В браузере еще бывает нужно настройки вносить, чтоб он отдавал данные для аутентификации. Во всех браузерах это по разному настраивается. В интернете статьи есть.

Вот например для Firefox sivel.net/2007/05/firefox-ntlm-sso/

Если окно аутентификации вылетает, значит это уже не сквозная аутентификация. Скорее всего браузер не настроен, вообще.

Я правильно понимаю, что LDAP Redmine и NTLM должны пытаться подключиться к одному и тому же серверу? Если да, то почему в LDAP Redmine мы указываем еще логин/пароль пользователя с правами на чтение в домене, а в NTLM нет?


Думаю, потому что данные отправляет сам браузер. Он знает на какой домен слать эти данные. Компьютер же в домене. Шлет скорее всего хеш пароля.
Спасибо, разобрался. Дело в том, что на новых осях уже используется NTLMv2. Данный модуль mod_ntlm писался во времена Win XP, когда был еще NTLM версии 1. Чтобы переключиться на NTLM первой версии надо:
1) Панель управления -> Администрирование -> Локальная политика безопасности
2) Далее выбираем папку Локальные политики -> параметры безопасности
3) Находим в списке «Сетевая безопасность: уровень проверки подлинности LAN-Manager», кликаем на него и в списке выбираем «Отправлять LM- и NTLM- ответы»

Но это я считаю, какой-то грязный хак. Прозрачная аутентификация заработала в ИЕ, у меня 9. В Хром все так же выскакивает окошко ввода пароля, но после ввода пускает. Firefox по-прежнему никак не заводится.
1) Для Firefox сработало добавление хоста сервера в опцию network.automatic-ntlm-auth.trusted-uris на странице about:config
2) Для ИЕ кроме того нужно сделать следующее:
Настройки ИЕ -> Свойства обозревателя -> Безопасность -> Местная интрасеть, щелкаем «Узлы», потом «Дополнительно» и добавляем хост сервера. После этого заработал и хром.
Доменное имя «redmine.local» должно быть определено (разрешаться) в той сети, где вы будете использовать «Redmine».

Где и как можно определить?
Я ставил по этой ссылке help.ubuntu.ru/wiki/redmine и в той статье написано
не забудьте настроить псевдоним redmine.domen в DNS

А как это сделать — не могу разобраться.
Если локально настраиваете, то в файлике hosts компьютера с которого заходите на redmine. Он есть как в linux, так и в windows.

Если для всей сети подымаете, то тогда на DNS-сервере сети.
Спасибо.
Делаю для всей сети.

Дописал в конец файла /etc/bind/db.domain.ru

redmine IN     A     192.168.1.13


Вышло следующее:
;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     domain.ru. root.domain.ru. (
                              6         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
        IN      A       192.168.1.13
;
@       IN      NS      ns.domain.ru.
@       IN      A       192.168.1.13
@       IN      AAAA    ::1
ns      IN      A       192.168.1.13
redmine IN      A       192.168.1.13

Вот только ничего не понятно — для чего ns.domain.ru.? Но все работает теперь.
Only those users with full accounts are able to leave comments. Log in, please.