Интеграция аутентификации MediaWiki 1.30.0 с Active Directory

Разберем как интегрировать MediaWiki с Active Directory.

 

Исходные данные:

  • Развернутая система MediaWiki 1.30.0 (по этой статье) (mediawiki) на Debian 8 Jessie
  • Домен контроллер Windows Server 2012 R2 (JAKONDA.LOCAL)

 

Для интеграции MediaWiki с Active Directory, необходимо создать пользователя с помощью которого будет осуществляться чтение LDAP, для авторизации всех остальных пользователей системы MediaWiki.

 

Создание пользователя в Active Directory

Создаем служебного пользователя (прим. admin.mediawiki), снимаем галочку «Требовать смены пароля при следующем входе в систему», выставляем галочки «Запретить смену пароля пользователем», «Срок действия пароля не ограничен».

 

Интеграция MediaWiki с Active Directory

LdapAuthentication. Переходим по ссылке, выбираем версию MediaWiki, для которой нам необходимо расширение (1.30.0).

Распаковываем скачанный архив в папку расположения MediaWiki (прим. /var/www/mediawiki/extensions):

 

Вносим исправления в параметры доступа в файле конфигурации (/var/www/mediawiki//LocalSettings.php):

 

Дописываем в конец файла конфигурации (/var/www/mediawiki//LocalSettings.php):

Соответственно не забываем изменить название домена, служебного пользователя под себя. Так же более подробно по LDAP авторизации можно почитать на оф. сайте

 

Запускаем скрипт обновления данных в MediaWiki (после подключения любых расширений в MediaWiki, необходимо выполнять данное действие, иначе подключенные расширения в LocalSettings.php будут проигнорированы). Так же перезапускаем службу apache:

 

Теперь на форме авторизации MediaWiki, будет возможность авторизации как в Active Directory, так и с помощью локальной базы пользователей MediaWiki

 

 

Понравилась или оказалась полезной статья, поблагодари автора

 

БесполезноСлабоватоПриемлемоОтличноПревосходно (Еще нет оценок)
Загрузка...

Всего комментариев: 25 Комментировать

  1. developman27 /

    Здравствуйте! Подскажите, пожалуйста, сделал как у Вас в статье, а при вводе логина/пароля пишет что не верный логин или пароль. А при входе под учетной записью такой же как и локальная пускает

    1. Жаконда / Автор записи

      Добрый ! Только что проверил, указанный в статье конфиги верные, у меня все по ним работает. Даже не знаю что и сказать почему не работает, смотрите логи

  2. Павел /

    Чувак, спасибо, первый нормальный скрипт, всё понятно, что и зачем, всё работает…

    Почему-то все остальные не содержат, например, строки
    require_once (‘includes/AuthPlugin.php’);
    А она, похоже, важная, т.к. без неё нихера не работает.

    Держи на пиво, или на что ты там собираешь )))

    P.S. Ещё вот эти wgLDAPRequiredGroups и wgLDAPExcludedGroups подкорректируй, они вообще не от этого скрипта щас, домен другой.

    1. Жаконда / Автор записи

      Спасибо ! Рад что статья смогла вам помочь !

      Поправил в скрипте 🙂

  3. Александр /

    php-ldap установлен?

    1. Жаконда / Автор записи

      да

  4. Сергей /

    Долго не мог понять почему в логах не выполняется поиск по ldap пользователей и почему ничего не работает. Открыл PowerShell написал пару запросов (вывел группы, вывел пользователей), посмотрел структуры групп через ldap в моей организации и внес необходимые правки. Вроде все, но ничего не работало. В логах вываливалась ошибка, что само расширение ldap wiki отваливается и чисто случайно наткнулся на американском форуме на крошечную фразу ‘ldap не работает самостоятельно с php никаким образом, нужно включить библиотеку’, я зацепился за эту фразу и просто написал php ldap и о чудо я даже имея опыт в php — реально не знал. что для обработки запросов ему нужно обязательно подрубить php_ldap.dll со стороны самого php. Век живи, век учись, 8 часов интима не прошли даром)))).

    1. Жаконда / Автор записи

      Все как всегда, проблема на видном месте и какой то мелочи ! Рад что все у вас таки получилось )

  5. Диман /

    Привет! Хорошая статья, спасибо! Есть пара вопросов
    1 .$wgLDAPServerNames = array(‘JAKONDA.LOCAL’ => ‘dc1.jakonda.local’);
    2. $wgLDAPPort = array(‘JAKONDA.LOCAL’ => 389);
    3. Firewall-cmd
    4. С включенным SELinux проверяли работу, много нужно дописывать?

    1. Могу дописать второй сервер АД через запятую и если да, то пользователи балансятся между серваками или стучатся в первый по списку?
    2. для 636 порта, нужно ещё где-то дописывать, что шифрование.
    3. надо же писать правила для файрволла, чтобы работать с ldap?
    sudo firewall-cmd —zone=public —add-port=389/tcp —permanent
    sudo firewall-cmd —reload

  6. Александр /

    Здравствуйте. Подскажите пожалуйста. Сделал вроде всё по аналогии, но не получается. В логах появляется такое
    2019-02-06 13:55:36 wiki mediawiki: 2.1.0 Allowing the local domain, adding it to the list.
    2019-02-06 13:55:36 wiki mediawiki: 2.1.0 Entering strict.
    2019-02-06 13:55:36 wiki mediawiki: 2.1.0 Returning false in strict().
    а на странице входа:
    Предоставленные учётные данные не могут быть проверены на подлинность.

    1. ksaok /

      Попробуй отключить selinux. В моём случае это решило проблему.

    2. Валерий /

      Аналогичная проблема
      selinux отключен

  7. Greg /

    Добрый день!
    Пробовал установить по аналогии на версию 1.33 не сработало.
    Подскажите, актуальна ли информация под версию 1.33 ?

    1. Жаконда / Автор записи

      Добрый!

      Без понятия, не тестировал на других версиях.

  8. Дмитрий /

    Ребята, впервые поднял mediawiki 1.31 на ОС TurnKey/Debian и теперь задача стоит привязать к AD. Попалась ваша статья. Ожидал легкой настройки, но уже бьюсь несколько недель. Результат один и тот же: Введены неверные имя участника или пароль. Попробуйте ещё раз.
    Предварительно установлен пакет php-ldap и включен модуль apache2. Информация в phpinfo.php говорит о активном модуле. Так же установил утилиту ldapsearch для тестирования доступности сервера ldap. Ответы от сервера ldap по пользователям прилетают в консоле linux.
    Wiki же ни в какую не хочет логиниться. Толковых выводов информации в лог найти не смог. не очень информативный вид.
    Даже эта настройка не очень:
    error_reporting( -1 );
    ini_set( ‘display_errors’, 1 );
    #$wgShowSQLErrors = true;
    #$wgDebugDumpSql = true;
    $wgShowDBErrorBacktrace = true;
    $wgShowExceptionDetails = true;
    $wgDebugLogFile = «/var/log/mediawiki/debug.log»;

    Проясните одно. Я как новый пользователь в Wiki должен предварительно создать учетку? или из AD подтянется при проверке и автоматически создает?

  9. Михаил /

    Всем привет. Следую по мануалу , делал на убунте, все работает.
    Для тех кто делает на версии выше, нужно делать совершенно по другому. Дело в том что расширение LdapAuthentication было обновленно, и стало LdapAuthentication, тем самым изменив настройку интеграции AD с MediaWiki.
    Учтите что LdapAuthentication, работал до версии 1.27. Смотрите оригинальный сайт MediaWiki , смотрите различные расширения которые есть для интеграции с AD. Сам еще не сделал но думаю что близок, если сделаю, выложу сюда.

    1. Жаконда / Автор записи

      Выкладывайте, разместим, наверняка ваша наработка пригодится другим!

    2. Игорь /

      Здравствуйте. Получилось ли у Вас разобраться с проблемой авторизацией? Я Использую Mediawiki 1.34 на Дебиан 10.
      Плагин скачал для версии 1.34. Настроил по мануалу. Но при попытке авторизации каждый раз пишет, что пароль не верный.
      И лог не пишет, что странно, ни в tmp ни в /var/lib/mediawiki

      (Да путь к папке у меня такой /var/lib/mediawiki).

      Вроде никаких брнадмауэров нету….

  10. Михаил /

    Всем привет, у меня получилось настроить на версии 1.34.1. Все работает.
    Потратил достаточно много времени , что бы немного начать понимать как и что работает. Опыт который имел на момент приступания к установки, настройки и интеграции с Active Directory, средний опыт администрирования Windows серверов. Совершил очень глупую ошибку с тем , что указал IP совершенно другого DC в CentOS, на которой и стоит MediaWiki.

    Сам процес интеграции очень легкий если понять для чего что используется.
    Вот статья , по которой я все настраивал: https://www.mediawiki.org/wiki/Manual:Active_Directory_Integration

    Все расширения (extension) следует ставить версии 1.31 так как они советуют. Так же обратие внимание на то что нужно савить в правильной очередности.
    Сначала ставим:
    LDAPProvider (после него нужно сделать php /var/www/html/mediawiki/maintenance/update.php)
    LDAPAuthentication2
    PluggableAuth
    LDAPAuthorization

    Есть расширения которые устанавливать но нужно прописовать в ldap.json или localsettings.php.
    Extension:LDAPUserInfo
    Extension:LDAPGroups

    Прочитайте про каждый из них что и для чего.

    Не забываем о dnf install php-ldap.

    Если кому то понадобится, я могу выложить свои localsetting.php и ldap.json и обьяснить как нужно настраивать.Так же прошу заметить что я на всякий случай выключал firewall на linux и на windows , на всякий случай.

    Следуйте статье выше , все получится.
    Важное замечание, для того что бы Localsettings.php использовал ldap.json в котором прописан конфиг подключения к DC нужно указать в Localsetting.php одну строчку :
    $LDAPProviderDomainConfigs = «/путь/к файлу/ldap.json»;

    Так же будет полезным указать еще одну строчку. Она показывает более обширные данные об ошибке:
    $wgShowExceptionDetails = true;

    Если возникнут какие то вопросы , пишите. Постараюсь помочь чем смогу

    1. Жаконда / Автор записи

      Михаил спасибо!

    2. Дмитрий /

      Михаил добрый день. Можете пожалуйста выложить свои файлы localsetting.php и ldap.json.
      Или укажите свою почту для связи.

      1. Жаконда / Автор записи

        Добрый, некоторое время назад отказались от данной платформы, поэтому выкладывать для вас нечего..

        1. Nik /

          а какую платформу стали использовать?

          1. Жаконда / Автор записи

            docuwiki

      2. Михаил /

        Дмитрий, к сожалению виртуалка на которой стояла MediaWiki крашнулась и все файлы были потеряны. К сожалению никак не могу помочь.

Оставить ответ

1 × четыре =

© IT-блог Жаконды All Rights Reserved.
Яндекс.Метрика