Integration von Joomla, openLDAP und MediaWiki

veröffentlicht in Consulting am 28. Apr. 2011

Es gehört schon ein bisschen Wagemut dazu mit dem Ziel in wenigen Stunden eine voll integrierte Kollaborationsumgebung auf Basis von Joomla, openLDAP und MediaWiki zu installieren, aber nach einigen Jahren Erfahrung im Open Source Software Umfeld, weiß man auch: “Geht nicht, gibts nicht”.

Man könnte aber auf die Idee kommen, das Ganze einfach “standalone” zu installieren. Leicht zu warten und anzuwenden wäre dies jedoch nicht. Jeder Nutzer müsste sich zum Beispiel zwei Passwörter merken, oder der Admin müsste mit aufwendigen Skripten sicherstellen, dass die Passwörter synchron gehalten werden. Kommen neue Anwendungssysteme hinzu, wird es erneut komplexer. Das ist entweder für die Nutzer ungeschickt oder aber  für den Admin  reine Arbeitsbeschaffungsmaßnahme. Beides sollte / will man der Effizienz halber vermeinden.

Nach der Grundinstallation des Servers auf Basis von Ubuntu 10.04 LTS in einer virtuellen VMware Umgebung und Einrichtung des Symantec NetBackup (beides proprietäre Lösungen), war das aktuelle Joomla Content Management System (CMS) in der Version 1.6.3 mit wenigen Handgriffen installiert. Das Anpassen eines Templates auf das von der Gesellschaft für Informatik geprägte Coporate Identity ist erfahrungsgemäß deutlich aufwendiger, als das Installieren von Joomla selbst.

Nach Joomla wurde OpenLDAP mit folgendem HowTo installiert. Nach einem Test und mehrfachem Droppen und Wiederaufsetzen der Ldap Datenbank, konnte es losgehen. Zunächst das folgende Basisschema mit

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f backend.ldif

# Load dynamic backend modules
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulepath: /usr/lib/ldap
olcModuleload: back_hdb

# Database settings
dn: olcDatabase=hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcSuffix: dc=gi,dc=local
olcDbDirectory: /var/lib/ldap
olcRootDN: cn=admin,dc=gi,dc=local
olcRootPW: password
olcDbConfig: set_cachesize 0 2097152 0
olcDbConfig: set_lk_max_objects 1500
olcDbConfig: set_lk_max_locks 1500
olcDbConfig: set_lk_max_lockers 1500
olcDbIndex: objectClass eq
olcLastMod: TRUE
olcDbCheckpoint: 512 30
olcAccess: to attrs=userPassword by dn=”cn=admin,dc=gi,dc=local” write by anonymous auth by self write by * none
olcAccess: to attrs=shadowLastChange by self write by * read
olcAccess: to dn.base=”” by * read
olcAccess: to * by dn=”cn=admin,dc=gi,dc=local” write by * read

eingelesen und einen Testnutzer mit folgendem ldif-file gefolgt von

sudo ldapadd -x -D cn=admin,dc=gi,dc=local -W -f user.ldif

angelegt.
dn: uid=ttester,ou=people,dc=gi,dc=local
objectClass: inetOrgPerson
objectClass: shadowAccount
uid: ttester
sn: Tester
cn: Test Tester
mail: test.tester@test.com
userPassword: testerchenTest

Danach die LdapAuthentication als Mediawikierweiterung für das MediaWiki installieren und anhand des folgenden HowTow’s konfigurieren. Im Joomla verfügt die Komponente Authentication – LDAP bereits über die notwendige Schnittstelle zum Ldap. Für unsere zwecke genügt die Prüfüng der Rechtmässigkeit der Anmeldung und Konfiguration laut dem folgenden HowTo. Es lassen sich jedoch danach auch eigene Joomla Schemata im LDAP realisieren, wovon wir jedoch abgesehen haben. Nach der Erstanmeldung durch den Anwender kann der Joomla SuperAdmin entsprechend granuliertere Berechtigungen vergeben. Zum Zwecke der Passwortänderung durch den Nutzer haben wir noch das allerdings nicht mehr gepflegte phpLdapPasswd installiert und konfiguriert.

Danach noch mit einen bisschen Javacode aus einer CSV-Tabelle das o.g. user.ldif generiert und damit die LDAP Datenbank gefüttert. Im Ergebnis steht nach circa 10 Stunden Arbeit

  • Vollvirtualisierter Server
  • Installiertes Betriebssystem
  • Eingerichtetes Backup
  • Eingerichteter und konfigurierter Webserver (LAMP)
  • Mediawiki und Joomla (inkl. Templating)
  • Authentifikationsintegration mittel LDAP

Fazit: Das wäre in ähnlicher Zeit und zudem lizenzkostenfrei mit proprietärer Software alleine nicht möglich gewesen.

Über Frederik Kramer

Technischer Geschäftführer der initOS GmbH & Co. KG und Doktorand am Magdeburg Research and Competence Cluster (MRCC) der Otto-von-Guericke-Universität Magdeburg ist Ihr Experte im Bereich der Strategischer Nutzung von Open Source Software im Unternehmen.