Интеграция аутентификации 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).

https://www.mediawiki.org/wiki/Special:ExtensionDistributor/LdapAuthentication

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

tar -xzf LdapAuthentication-REL1_30-907953e.tar.gz -C /var/www/mediawiki/extensions

 

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

$wgGroupPermissions['*']['autocreateaccount'] = true;
$wgGroupPermissions['*']['createaccount'] = false;
if ( !isset( $_SERVER['REMOTE_ADDR'] ) OR $_SERVER['REMOTE_ADDR'] == '192.168.7.30') {
 $wgGroupPermissions['*']['read'] = true;
 $wgGroupPermissions['*']['edit'] = true;
}

 

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

# LDAP ---------------------------------------------------------------------------------------
require_once('extensions/LdapAuthentication/LdapAuthentication.php');
require_once ('includes/AuthPlugin.php');
$wgAuth = new LdapAuthenticationPlugin();

$wgLDAPDomainNames = array('JAKONDA.LOCAL');
$wgLDAPServerNames = array('JAKONDA.LOCAL' => 'dc1.jakonda.local');
$wgLDAPPort = array('JAKONDA.LOCAL' => 389);
$wgLDAPEncryptionType = array('JAKONDA.LOCAL' => 'false');

$wgLDAPUseLocal = true;

$wgLDAPSearchStrings = array('JAKONDA.LOCAL' => 'USER-NAME@JAKONDA.LOCAL',);
$wgLDAPProxyAgent = array('JAKONDA.LOCAL' => 'admin.mediawiki');
$wgLDAPProxyAgentPassword = array('JAKONDA.LOCAL' => 'Aa1234567');
$wgLDAPSearchAttributes = array('JAKONDA.LOCAL' => 'sAMAccountName');
$wgLDAPBaseDNs = array('JAKONDA.LOCAL' => 'dc=jakonda,dc=local');
$wgLDAPGroupBaseDNs = array('JAKONDA.LOCAL' => 'dc=jakonda,dc=local');
$wgLDAPUserBaseDNs = array('JAKONDA.LOCAL' => 'dc=jakonda,dc=local');

$wgLDAPRetrievePrefs = array('JAKONDA.LOCAL' => 'true');
$wgLDAPPreferences = array('JAKONDA.LOCAL' => array('email' => 'mail','realname' => 'displayname'));

$wgLDAPDisableAutoCreate = array('JAKONDA.LOCAL' => true);

$wgLDAPGroupUseFullDN = array('JAKONDA.LOCAL' => true);
$wgLDAPLowerCaseUsername = array('JAKONDA.LOCAL' => true);
$wgLDAPGroupObjectclass = array('JAKONDA.LOCAL' => 'group');
$wgLDAPGroupAttribute = array('JAKONDA.LOCAL' => 'member');
$wgLDAPGroupNameAttribute = array('JAKONDA.LOCAL' => 'cn');
$wgLDAPGroupsUseMemberOf = array('JAKONDA.LOCAL' => true);

# Можно задать члены групп AD, каким разрешать доступ к MediaWiki 
$wgLDAPRequiredGroups = array('JAKONDA.LOCAL' => array('cn=evilgroup,ou=groups,dc=AD,dc=example,dc=com'));

# Можно задать члены групп AD, каким запрещать доступ к MediaWiki 
#$wgLDAPExcludedGroups = array('JAKONDA.LOCAL' => array('cn=evilgroup,ou=groups,dc=AD,dc=example,dc=com'));
$wgLDAPGroupSearchNestedGroups = array('JAKONDA.LOCAL' => true);
$wgLDAPActiveDirectory = array('JAKONDA.LOCAL' => true);

$wgLDAPDebug = 99;
$wgDebugLogGroups["ldap"] = "/tmp/ldap.log";
#-----------------------------------------------------------------------------------------------------
Соответственно не забываем изменить название домена, служебного пользователя под себя. Так же более подробно по LDAP авторизации можно почитать на оф. сайте

 

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

php /var/www/mediawiki/maintenance/update.php
service apache2 restart

 

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

 

 

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

 

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

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

  1. developman27 /

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

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

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

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

шестнадцать + 19 =