Mediawiki

Installation mit LDAP-Authentifizierung

OS: debian jessie 64 bit

apt-get install mediawiki-extensions-ldapauth apache2 imagemagick inkscape mysql-server git-mediawiki php5-intl libapache2-mod-php5 php5-mysql php5-xcache

neueste Mediawikiversion downloaden (https://www.mediawiki.org/wiki/Download), nach /var/www/mediawiki/it kopieren
und die Rechte für www-data anpassen.
neueste LDAP-Extension downloaden (https://www.mediawiki.org/wiki/Extension:LDAP_Authentication), nach /var/www/mediawiki/it/extensions/ kopieren
und die Rechte für www-data anpassen.
Apache2-Datei /etc/apache2/conf-available/mediawiki.conf :

Alias /mediawiki/it "/var/www/mediawiki/it"
<Directory "/var/www/mediawiki/it">
  Allow from All
</Directory>

dann:

a2enconf mediawiki

http://mySrv/mediawiki erstmal standard durchinstallieren.Mediawiki legt Datenbank selber an; dann erst
LocalSettings.php mit eigenen Werten editieren, ins Verzeichnis kopieren und die Rechte für www-data anpassen.

cp LocalSettings.php /var/www/mediawiki/it/
service apache2 restart

für LDAP müssen die zur Version passenden Extensions ins extensions-Verzeichnis kopiert werden.

LocalSettings.php Ausschnitt mit LDAP
...
wfLoadExtension( 'PluggableAuth' );
wfLoadExtension( 'LDAPProvider' );
wfLoadExtension( 'LDAPAuthorization' );
#wfLoadExtension( 'LDAPGroups' );
#wfLoadExtension( 'LDAPUserInfo' );
wfLoadExtension( 'LDAPAuthentication2' );
$LDAPAuthentication2AllowLocalLogin = true;
$wgPluggableAuth_EnableLocalLogin = true;
$wgGroupPermissions['*']['autocreateaccount'] = true;
 
# End of automatically generated settings.
# Add more configuration options below.
###################################
$LDAPProviderDomainConfigProvider = function() {
        $config = [
                'mydom.ain' => [
                        'connection' => [
                                "server" => "mydc1 mydc2",
                                "user" => "CN=ldapuser,OU=Administration,DC=my,DC=domain",
                                "pass" => 'password',
                                "options" => [
                                        "LDAP_OPT_DEREF" => 1
                                ],
                                "basedn" => "DC=my,DC=domain",
                                "enctype" => "TLS",
                                "port" => "389",
                                "groupbasedn" => "DC=my,DC=domain",
                                "userbasedn" => "DC=my,DC=domain",
                                "searchattribute" => "samaccountname",
                                "searchstring" => "USER-NAME@my.domain",
                                "usernameattribute" => "samaccountname",
                                "realnameattribute" => "cn",
                                "emailattribute" => "mail"
 
                        ],
                        'authorization' => [
                                'rules' => [
                                        'groups' => [
                                                'required' => [ ]
                                        ]
                                ]
                        ]
 
                ]
        ];
 
        return new \MediaWiki\Extension\LDAPProvider\DomainConfigProvider\InlinePHPArray( $config );
};
###################################
#     'required' => [ "CN=MYGROUP,OU=Groups,DC=my,DC=domain" ]

Tipps

Adminpasswort ändern:

php wikverzeichnis/maintenance/changePassword.php --user=myadmin --password=mypassword --user_id=1

LDAP-Benutzerinfos auslesen:

 php extensions/LDAPProvider/maintenance/ShowUserInfo.php --conf LocalSettings.php -d mydom.ain -u myuser

LDAP-Gruppen eines Benutzer auslesen:

 php7.4 extensions/LDAPProvider/maintenance/ShowUserGroups.php -d mydom.ain -u myuser

alte, unbenutzte Konten entfernen:

php maintenance/removeUnusedAccounts.php

alte Revisionen entfernen:

php maintenance/deleteOldRevisions.php
php maintenance/deleteOldRevisions.php --delete

Passwort am LDAP testen:

php extensions/LDAPProvider/maintenance/CheckLogin.php -d mydom.ain -u myuser

Benutzer in psql anzeigen lassen:

 select * from mediawiki.actor WHERE actor_name like '%ch%';
 select * from mediawiki.mwuser WHERE user_name like '%ch%';

Fehler:Benutzer können sich nach Mediawikimigration von lokalen auf LDAP-Benutzern nicht mehr anmelden.
alte Benutzer in Tabelle Actor und mwuser umbenennen z.B. Walter nach Walter.local .
das Löschen der Benutzer löscht anscheinend auch alle Einträge der Benutzer und beschädigt Mediawiki irreparabel.
deshalb immer vorher Backup!

pg_dump mywikidb -U mywikiuser -W > /root/mywikidb.dmp