Mediawiki 1.31 LTS Active Directory integráció Debian-MySQL környezetben
Összefoglalás
A Mediawiki 1.31 verziónál változott az LDAP kezelés, jeleneleg az LDAP hubmódszer használatos. A leírás ennek használatával mutatja be a Mediawiki és egy Windows Active Directory integrációját.
A pédák Debian 9.11 operációs rendszeren Mediawiki 1.33.0 telepített verziójával készültek. Az Apache http szerver és a Php futtatókörnyezet az operációs rendszer tárolójából telepítettük. A Domain Controller egy Windows 2019 szerver.
A Mediawiki a /var/www/mediawiki-1.33.0/ könyvtárba van telepítve.
A példák a szöveges fájlok szerkesztéséhez mcedit szövegszerkesztőt feltéteznek (Telepítés: apt -y install mc)
A parancsok root jogot feltételeznek. (állandó root jog: sudo bash)
Előfeltételek
Php LDAP modul
Telepítés:
apt -y install php-ldap
Active Directory felhasználó
Kell egy létező Active Directory felhasználó, amivel felépítjük a kapcsolatot. A felhasználó distinguished neve kell. Ezt a következő képpen ellenőrizhetjük a domain controlleren powershellben:
Get-ADUser username | select DistinguishedName
DistinguishedName
-----------------
CN=username,CN=Users,DC=domain,DC=com
Ezután ellenőrizzük az LDAP kapcsolatot linuxon. Ha kell telepítsük az ldap-utils csomagot.
apt -y install ldap-utils
ldapsearch -x -LLL -h dc.domain.com -D "CN=username,CN=Users,dc=domain,dc=com" -w password -b "dc=domain,dc=com"
- -h : Az Active Directory szerver IP címe vagy domain neve
- -D : A felhasználó distinguished neve.
- -w : A felhasználó jelszava
- -b : Alap distinguished név a kereséshez.
A kommunikáció a 389 TCP porton történik, ezt kell biztosítani a Mediawiki és az Active Directory között.
Ha minden rendben van kezthetjük a Mediawiki konfigurálását.
Mediawiki modulok telepítése
A mediawiki 1.31 - 1.34 verzióig telepíthetőek a következő modulok:
wget -qO- https://extdist.wmflabs.org/dist/extensions/PluggableAuth-REL1_33-a69f626.tar.gz | tar -xzf - -C /var/www/mediawiki-1.33.0/extensions/
wget -qO- https://extdist.wmflabs.org/dist/extensions/LDAPProvider-REL1_31-7f81741.tar.gz | tar -xzf - -C /var/www/mediawiki-1.33.0/extensions/
wget -qO- https://extdist.wmflabs.org/dist/extensions/LDAPAuthorization-REL1_31-53e1ada.tar.gz | tar -xzf - -C /var/www/mediawiki-1.33.0/extensions/
wget -qO- https://extdist.wmflabs.org/dist/extensions/LDAPAuthentication2-REL1_31-8bd6bc8.tar.gz | tar -xzf - -C /var/www/mediawiki-1.33.0/extensions/
wget -qO- https://extdist.wmflabs.org/dist/extensions/LDAPGroups-REL1_31-5a27bd8.tar.gz | tar -xzf - -C /var/www/mediawiki-1.33.0/extensions/
wget -qO- https://extdist.wmflabs.org/dist/extensions/LDAPUserInfo-REL1_31-da95a07.tar.gz | tar -xzf - -C /var/www/mediawiki-1.33.0/extensions/
MySQL adatbázis mósosítása:
cat /var/www/mediawiki-1.33.0/extensions/LDAPProvider/schema/ldap-mysql.sql | mysql -uwikiuser -ppassword my_wiki
- -u<wikiuser> : adatbázis felhasználó
- -p<password> : adatbázis jelszó
- my_wiki : adatbázis név
Mediawiki konfigurálása
Az LDAP hub-nak létre kell hozni egy json konfigurációs fájlt. Ebben lehet az Active Directoryval kapcsolatos adatokat megadni. Ezután a Mediaeiki LocalSettings.php konfigurációs fáljban kell az LADP hub-al kapcsolatos paramétereket megadni a megszokott módon.
LDAP beállítások létrehozása:
mcedit /var/www/mediawiki-1.33.0/ldap.json
{
"domain.com": {
"connection": {
"server": "dc.domain.com",
"port": "389",
"user": "CN=Wiki user,CN=Users,DC=domain,DC=com",
"pass": "password",
"enctype": "clear",
"options": {
"LDAP_OPT_DEREF": 1
},
"basedn": "dc=domain,dc=com",
"userbasedn": "dc=domain,dc=com",
"groupbasedn": "dc=domain,dc=com",
"searchattribute": "samaccountname",
"usernameattribute": "samaccountname",
"realnameattribute": "cn",
"emailattribute": "mail",
"grouprequest": "MediaWiki\\Extension\\LDAPProvider\\UserGroupsRequest\\UserMemberOf::factory",
"presearchusernamemodifiers": [ "spacestounderscores", "lowercase" ]
},
"userinfo": [],
"authorization": [],
"groupsync": {
"mapping": {
"engineering": "CN=Mediawiki Admins,OU=Users,DC=domain,DC=com",
"bureaucrat": "CN=Mediawiki Admins,OU=Users,DC=domain,DC=com",
"interface-admin": "CN=Mediawiki Admins,OU=Users,DC=domain,DC=com",
"sysop": "CN=Mediawiki Admins,OU=Users,DC=domain,DC=com"
}
}
}
}
LocalSettings.php szerkeztése:
mcedit /var/www/mediawiki-1.33.0/LocalSettings.php
Tartalom hozzáadása a konfigurációs fájlhoz:
$wgEmailConfirmToEdit = false;
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['read'] = false;
$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['sysop']['createaccount'] = false;
$wgGroupPermissions['*']['autocreateaccount'] = true;
$wgBlockDisablesLogin = true;
$ldapJsonFile = "$IP/ldap.json";
$ldapConfig = false;
if (is_file($ldapJsonFile) && is_dir("$IP/extensions/LDAPProvider")) {
$testJson = @json_decode(file_get_contents($ldapJsonFile),true);
if (is_array($testJson)) {
$ldapConfig = true;
} else {
error_log("Found invalid JSON in file: $IP/ldap.json");
}
}
if ( $ldapConfig ) {
wfLoadExtension( 'PluggableAuth' );
wfLoadExtension( 'LDAPProvider' );
wfLoadExtension( 'LDAPAuthentication2' );
wfLoadExtension( 'LDAPAuthorization' );
wfLoadExtension( 'LDAPUserInfo' );
wfLoadExtension( 'LDAPGroups' );
$LDAPProviderDomainConfigs = $ldapJsonFile;
$wgPluggableAuth_ButtonLabel = "Log In";
$LDAPAuthentication2AllowLocalLogin = true;
}