08. [BONUS - 10p] Configurare suport de LDAP în MediaWiki

MediaWiki este una dintre cele mai cunoscute și folosite soluții de wiki. Spre deosebire de DokuWiki folosește o bază de date. Pentru aceasta am instalat pe stația client un server MySQL.

Similar cu DokuWiki vom instala MediaWiki în directorul public_html/mediawiki/ din directorul home al utilizatorului student. Pentru instalare vom folosi fișierul arhivă mediawiki-1.22.2.tar.gz din directorul home al utilizatorului student. Vom urma indicațiile de instalare din pagina de instalare a MediaWiki.

Configurare bază de date

În primă fază vom configura baza de date. Pentru început ne vom conecta cu utilizatorul privilegiat al MySQL (parola este student):

student@ldap-client:~$ mysql -u root -pstudent
[...]
mysql> 

Astfel conectați vom crea baza de date pentru MediaWiki (denumită wikidb):

mysql> create database wikidb;
Query OK, 1 row affected (0.08 sec)

și apoi creăm utilizatorul care să fie folosit de MediaWiki pentru accesarea bazei de date (denumit wikiuser, folosibil de pe localhost):

mysql> grant index, create, select, insert, update, delete, alter, lock tables on wikidb.* to 'wikiuser'@'localhost' identified by 'student';
Query OK, 0 rows affected (0.00 sec)

Am configurat baza de date MySQL și acum putem ieși din modul de configurare:

mysql> exit
Bye
student@ldap-client:~$ 

Instalare MediaWiki

După cum am spus vom instala MediaWiki în directorul public_html/mediaiki/ din directorul home al utilizatorului student. Pentru început vom dezarhiva, în acel director, arhiva ~student/public_html/mediawiki-1.22.2.tar.gz, ca utilizatorul student. Vom rula comenzile de mai jos:

student@ldap-client:~$ ls
admin-public.git  mediawiki-1.22.2.tar.gz  public_html
student@ldap-client:~$ cd public_html/
student@ldap-client:~/public_html$ ls
dokuwiki
student@ldap-client:~/public_html$ tar xzf ../mediawiki-1.22.2.tar.gz 
student@ldap-client:~/public_html$ ls
dokuwiki  mediawiki-1.22.2
student@ldap-client:~/public_html$ mv mediawiki-1.22.2/ mediawiki
student@ldap-client:~/public_html$ ls
dokuwiki  mediawiki

Mai sus am redenumit directorul obținut după dezarhivare din mediawiki-1.22.2/ în mediawiki/.

În continuare vom rula scriptul de instalare al MediaWiki. Accesăm URL-ul aferent MediaWiki: http://192.168.0.3/~student/mediawiki/. De la acesta vom continua către pagina de configurare: http://192.168.0.3/~student/mediawiki/mw-config/index.php. În acea pagină realizăm configurarea dorită, adică pașii:

  • Limba dorită: vom opta pentru valoarea implicită (engleză).
  • Verificările de mediu vor fi trecute: vom apăsa butonul “Continue”.
  • La configurările de bază de date, vom folosi pentru diversele câmpuri următoarele valori:
    • Database host: localhost
    • Database name: wikidb (configurat anterior)
    • Database table prefix: nu completăm nimic (nu dorim să avem un prefix în numele tabelelor din baza de date)
    • Database username: wikiuser (configurat anterior)
    • Database password: student (configurat anterior)
  • În opțiunile de bază de date alegem InnoDB ca engine de stocare și UTF-8 ca set de caractere.
  • În fereastra denumită “Name” completați ce opțiuni doriți.
  • În celelalte ferestre alegeți, în continuare, ceea ce vi se pare potrivit.
  • După realizarea configurărilor de mai sus, se va rula scriptul intern de configurare.
  • Apoi se descarcă scriptul de configurare a wiki-ului. Acesta trebuie copiat în directorul de instalare al MediaWiki. Pentru aceasta, mergem în directorul unde a fost descărcat pe sistemul fizic și îl copiem în directorul de instalare folosind comanda scp:
    student@mjolnir:~/Downloads$ scp LocalSettings.php student@192.168.0.3:public_html/mediawiki/
    student@192.168.0.3's password: 
    LocalSettings.php                             100% 4296     4.2KB/s   00:00
  • Acum putem accesa wiki-ul folosind URL-ul http://192.168.0.3/~student/mediawiki/index.php/Main_Page.

Configuare autentificare prin LDAP

Pentru început trebuie să adăugăm extensia de LDAP aferentă MediaWiki. Este deja descărcată în fișierul wikimedia-mediawiki… din directorul home al utilizatorului student de pe stația client. O vom dezarhiva în subdirectorul extensions/ din directorul de instalare al MediaWiki (în cazul nostru ~student/public_html/mediawiki/):

student@ldap-client:~$ cd public_html/mediawiki/extensions/
 
student@ldap-client:~/public_html/mediawiki/extensions$ tar xzf ~/wikimedia-mediawiki-extensions-LdapAuthentication-2.0c-31-g300d43f.tar.gz
 
student@ldap-client:~/public_html/mediawiki/extensions$ ls
Cite                Poem
ConfirmEdit         README
Gadgets             Renameuser
ImageMap            SimpleAntiSpam
InputBox            SpamBlacklist
Interwiki           SyntaxHighlight_GeSHi
LocalisationUpdate  TitleBlacklist
Nuke                WikiEditor
ParserFunctions     wikimedia-mediawiki-extensions-LdapAuthentication-300d43f
PdfHandler
 
student@ldap-client:~/public_html/mediawiki/extensions$ mv wikimedia-mediawiki-extensions-LdapAuthentication-300d43f/ LdapAuthentication
 
student@ldap-client:~/public_html/mediawiki/extensions$ ls
Cite         Interwiki           PdfHandler      SpamBlacklist
ConfirmEdit  LdapAuthentication  Poem            SyntaxHighlight_GeSHi
Gadgets      LocalisationUpdate  README          TitleBlacklist
ImageMap     Nuke                Renameuser      WikiEditor
InputBox     ParserFunctions     SimpleAntiSpam

Am redenumit mai sus directorul aferent extensiei de LDAP pentru MediaWiki în LdapAuthentication/.

Pentru configurarea autentificării prin LDAP pentru MediaWiki urmărim pagina aferentă pentru configurare. Configurările vor fi realizate din directorul de instalare al MediaWiki (adică ~student/public_html/mediawiki/).

Adăugăm suport pentru autentificarea pe bază de LDAP în fișierul LocalSettings.php, folosind un editor. Le adăugăm la sfârșitul fișierului ca să avem rezultatul de mai jos:

student@ldap-client:~/public_html/mediawiki$ tail -5 LocalSettings.php
 
# End of automatically generated settings.
# Add more configuration options below.
require_once( "$IP/extensions/LdapAuthentication/LdapAuthentication.php" );
require_once( "$IP/includes/AuthPlugin.php" );
$wgAuth = new LdapAuthenticationPlugin();

Adăugăm apoi, în continuare în același fișier (LocalSettings.php) directivele de configurare specifice pentru serverul de LDAP:

$wgLDAPDomainNames = array(
  'my-ldap-server',
);
$wgLDAPServerNames = array(
  'my-ldap-server' => 'ldap-server.local',
);
$wgLDAPUseLocal = false;
$wgLDAPEncryptionType = array(
  'my-ldap-server' => 'ssl',
);
$wgLDAPPort = array(
  'my-ldap-server' => 636,
);
$wgLDAPSearchAttributes = array(
  'my-ldap-server' => 'uid'
);
$wgLDAPBaseDNs = array(
  'my-ldap-server' => 'dc=labs,dc=cs,dc=pub,dc=ro',
);
# To pull e-mail address from LDAP
$wgLDAPPreferences = array(
  'my-ldap-server' => array( 'email' => 'mail')
);
// May use debug level 3 for extensive debugging.
// $wgLDAPDebug = 1;
// $wgDebugLogGroups['ldap'] = '/tmp/debug.log';

Am marcat opțiunea de debug comentată. La nevoie poate fi decomentată și valoarea sa crescută până la 3 pentru mesaje detaliate.

O dată realizată configurația LDAP în fișierul de configurare (LocalSettings.php), va trebui să creăm tabelele aferente în baza de date. Pentru aceasta rulăm scriptul de actualizare:

student@ldap-client:~/public_html/mediawiki$ php maintenance/update.php
[...]
Creating ldap_domains table ...done.
...site_stats is populated...done.
...rev_len column of revision table already populated.
...Update 'populate rev_sha1' already logged as completed.
...img_sha1 column of image table already populated.
...protocol-relative URLs in externallinks table already fixed.
...fa_sha1 column of filearchive table already populated.
Purging caches...done.
 
Done.

După aceasta se accesează instanța de MediaWiki (http://192.168.0.3/~student/mediawiki/index.php/Main_Page) și apoi se poate folosi link-ul “Log in” pentru autentificarea folosind LDAP. La opțiunea “Your domain:” se păstrează valoarea my-ldap-server.

saisp/labs/01/contents/08.txt · Last modified: 2014/02/22 19:51 by alexandru.carp
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0