Аутентификация LDAP в Limesurvey

Может ли кто-нибудь указать мне какие-либо полезные инструкции по настройке аутентификации администратора через LDAP в лаймсурви?

На вики-сайте Limesurvey с 2011 года не изменилась страница о настройке «дешевой и грязной» аутентификации LDAP, но я подозреваю, что это все равно больше не применяется с версии 2.00.

Есть ответ на отчет об ошибке, в котором говорится, что бета-версия 2.05 имеет механизм подключаемых модулей, включая аутентификацию LDAP, но я не смог найти никакой информации об этом — даже ничего о том, как загрузить и установить 2.05. в первую очередь.

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

Я надеюсь, что кто-то здесь может иметь более полезную информацию.


person Colin Fine    schedule 17.09.2013    source источник
comment
Заслуженный +1 за ваш поиск, Колин. Я ничего не знаю о Limesurvey, но я знаю твою боль.   -  person ixe013    schedule 17.09.2013
comment
На какой сервер ldap вы ориентируетесь? Я предлагаю вам добавить тег ldap к вашему вопросу вместе с конкретным сервером ldap, на который вы ссылаетесь, в any.   -  person ixe013    schedule 17.09.2013


Ответы (2)


2.05 имеет весь механизм в плагине. После установки перейдите в настройки плагина и активируйте LDAP.

person Denis Chenu    schedule 01.03.2014

Это легко, но я боюсь, что это не то, что вы хотите. В application/config/config.php вы меняете это:

$config['enableLdap'] = true;

Затем настройте каталог LDAP в application/config/ldap.php. Большинство описаны здесь. Вам придется изменить пути и запросы LDAP, особенно если вы используете ActiveDirectory. Почему я упоминаю об этом, станет ясно позже.

Аутентификация LDAP может быть выполнена, но нет ничего готового. IIRCC (если я правильно прочитал код). Процедура входа заканчивается вызовом UserIdentity::authenticate. Следуя (в строке 70 в версии ad10c28354431e09c3e82800721427bee31c6598), я придумал это

В config.php измените это

$config['auth_webserver'] = true;

Что делегирует аутентификацию веб-серверу. Используйте все, что установит переменную REMOTE_USER. Это расплывчато, я знаю. Но Limesurvey дает вам только два варианта: внутренняя база данных или внешняя. Мы должны выбрать внешний, где мы настроим аутентификацию LDAP и HTML-формы, которые несколько соответствуют Limesurvey.

Положительным моментом является то, что вы можете использовать IIS для установки REMOTE_USER, достигая однократной регистрации, если вы устанавливаете это во внутренней сети на базе Microsoft.

После этого вам придется написать код, реализующий hook_get_auth_webserver_profile. Это означало бы найти пользователя в LDAP, возможно, используя параметры, найденные в ldap.conf.

Это большая работа, но вы можете легко сделать доказательство концепции. Измените конфигурацию, как указано, жестко закодируйте hook_get_auth_webserver_profile для данного пользователя и войдите в Limesurvey, подделав http-заголовок REMOTE_USER по вашему выбору.

person ixe013    schedule 17.09.2013