Настройка аутентификации в Trac

Я работаю над настройкой Trac-сервера для своей (небольшой) компании и нуждаюсь в небольшой помощи/руководстве по механизму аутентификации.

В течение некоторого времени мы разработали собственное веб-приложение, к которому наши пользователи обращаются в своей повседневной работе. Он построен на php5.3 и включает базу данных пользователей, хранящуюся в базе данных mysql. Меня попросили изучить возможности Trac для использования нашей существующей базы данных пользователей, чтобы свести обслуживание пользователей к минимуму. Есть ли у вас какие-либо предложения или советы для этого?

Вот что я придумал до сих пор:

  1. Установите Trac на наш сервер (в настоящее время это делается с помощью mysql/apache2/mod_python), но не предоставляйте доступ никому в сети.
  2. Write a php wrapper script that
    1. Handles the authentication mechanism.
    2. Передает запрос в Trac с включенным именем пользователя.
  3. Trac обрабатывает запрос как указанный пользователь

Проблема в; Я не знаю, как сделать шаг 2.

Любые комментарии?

С уважением Йорн


person Jørn Christensen    schedule 17.02.2010    source источник


Ответы (3)


То, что вы ищете, называется Single Sign On.

Вы используете Trac на Apache? В этом случае представляется возможным использовать интерфейсы аутентификации пользователей (LDAP...), с которыми может взаимодействовать Apache. Просмотрите эту беседу.

На Trac Hacks доступны некоторые подключаемые модули SSO, в том числе LDAP один.

person Pekka    schedule 17.02.2010
comment
Я раньше не заглядывал в LDAP и немного не хочу этого делать, потому что это (AFAICS) потребовало бы перемещения нашей пользовательской базы данных и перезаписи нашей текущей схемы разрешений. Но мы говорили о том, что в текущей схеме не хватает функций, поэтому, возможно, стоит присмотреться к LDAP. Но для начала мы были бы признательны, если бы мы могли просто включить Trac в наши текущие методы аутентификации. - person Jørn Christensen; 17.02.2010
comment
@ Йорн, понятно. mod_authn_dbd, который упоминает @djc, не будет SSO, но, вероятно, это самый простой способ. On TrackHacks — это подключаемый модуль, который подключается к другому решению SSO с открытым исходным кодом, CoSign: trac-hacks.org/wiki. /TracCoSignPlugin Я не слышал об этом, и он выглядит довольно большим, но, похоже, он был создан для обеспечения единого входа внутри интрасетей. Посмотрите, может быть, это что-то. - person Pekka; 17.02.2010
comment
TracCoSign выглядит многообещающе, хотя я только что просмотрел страницу... Я иду домой. Но спасибо за вклад - я обязательно посмотрю на это позже на этой неделе :-) - person Jørn Christensen; 17.02.2010
comment
К вашему сведению, ссылка на разговор больше не работает! - person ingh.am; 07.11.2011

Во-первых, не используйте mod_python, используйте mod_wsgi.

Во-вторых, у вас есть несколько вариантов аутентификации. Одним из вариантов может быть просто использование mod_authn_dbd с серверной частью MySQL, сохраняя вашу авторизацию в конфигурации apache2.

В-третьих, загляните в AccountManager Trac. Это один из самых полезных плагинов Trac (мы используем его на работе), и он поможет вам сделать это правильно. http://trac-hacks.org/wiki/AccountManagerPlugin

person djc    schedule 17.02.2010
comment
не могли бы вы указать на преимущества использования mod_wsgi по сравнению с mod_pyhton? - person Rufinus; 17.02.2010
comment
Во-первых, он на самом деле поддерживается (mod_python не выпускал новую версию годами). Во-вторых, производительность (code.google.com/p/modwsgi/wiki/PerformanceEstimates). - person djc; 17.02.2010
comment
Я выбрал mod_python, потому что у меня сложилось впечатление, что он более стабилен, чем wsgi. Из trac.edgewall.org/wiki/TracInstall: Если вы не боитесь запускать новые code, вы также можете попробовать запустить Trac на mod_wsgi. Это должно обеспечить даже лучшую производительность, чем mod_python, но модуль не так тщательно тестируется, как mod_python. - person Jørn Christensen; 17.02.2010
comment
Модуль mod_authn_dbd может работать (и я мог бы выбрать этот вариант), но это не SSO, о котором Пекка так мило сообщил мне, это то, что мне нужно :-) AccountManager Trac выглядит красиво, но я не совсем понимаю, как это может использоваться без переноса пользовательской базы данных в какой-либо другой формат. - person Jørn Christensen; 17.02.2010

Просто быстрое продолжение: в итоге я использовал Carsten Fuchs ScriptAuthPlugin (изменив его на md5-hash пароль). Как и в случае с TracCoSign, все, что вам нужно указать, — это адрес, по которому ScriptAuthPlugin может проверять учетные данные пользователя. Красиво работает :-)

http://trac-hacks.org/wiki/ScriptAuthPlugin

~Jørn

person Jørn Christensen    schedule 23.02.2010