Archiv der Kategorie: Arbeiten mit Open Source

Dokuwiki lernt oauth2

Auch Open Source Software hat jede Menge Unzulänglichkeiten. Enthusiasten entgegnen darauf gerne, dass man die Software ja selber anpassen kann. Aber oft ist das nicht wirtschaftlich. An drei Beispielen will ich beschreiben, wie ich mir dieses Jahr solche Unzulänglichkeiten aus dem Weg geräumt habe. Ich fange mal an mit:

Dokuwiki und Ruby on Rails verbinden

Teilnehmer und Trainer von Linuxhotel Schulungen können ihren Account für unsere Schulungsumgebung auch für die CommitterConf Webseite nutzen. Beides haben wir mit Ruby on Rails entwickelt, und wir benutzen auf beiden Seiten Doorkeeper um die Authentifizierung der beiden Webanwendungen zu verbinden.

In vielen Schulungen benutzen wir ein Wiki auf Basis von Dokuwiki um damit Beispiele und kleine Projekte zu dokumentieren. Das habe ich vor Jahren mit Hilfe von openLDAP an die Schulungsumgebung angebunden. Trainer und Teilnehmer müssen sich also fürs Linuxhotel nur ein Passwort merken. Die Lösung hat aber zwei Haken:

openLDAP kommunizierte hier über das SQL-Backend mit der Postgres-Datenbank der Schulungsumgebung. Der Hinweis

Note: This backend is experimental.

ist durchaus ernst zu nehmen: die Einrichtung ist kompliziert, es gab Bugs und die Performance war dürftig. Zusätzlich musste man sich – wenn auch mit dem selben Passwort – immer zwei Mal anmelden: an der Schulungsumgebung, und am Wiki. Trotzdem ist die Lösung lange so gelaufen.

Single Sign On mit oauth für Dokuwiki

Jetzt wollte ich das endlich mal verbessern: Doorkeeper ist eine Implementierung des oauth2-Protokolls. Sollte es auch möglich sein, Dokuwiki daran anzubinden? Es gab zwar jede Menge Plugins für Dokuwiki, aber ein oauth2-Plugin war nicht dabei. Aber ich hatte eine Idee, wer das ändern kann, denn 2013 haben sich die Dokuwiki-Entwickler bei uns zu einem Hackfest getroffen. Also habe ich dem Dokuwiki Entwickler Andreas Gohr eine Anfrage geschickt, ob er das bauen kann. Wir wurden uns schnell handelseinig: er hat uns 3 Tage Entwicklungsarbeit in Rechnung gestellt. Und hier ist das Plugin: oauth 😉 .

Eine kleine Änderung habe ich noch gemacht und das in Produktion übernommen. Das erste Feedback von unseren Nutzern war positiv.

Das auch dieses von uns bezahlte Plugin Open Source ist, hat sich jetzt schon für uns bezahlt gemacht:

  • ich konnte meine kleine Änderung selbst einbauen, obwohl ich kein PHP-Profi bin. (Vielleicht sollte ich mal an einer PHP-Schulung teilnehmen?)
  • weitere Nutzer haben schon bevor ich damit produktiv ging mit dem Code gearbeitet, und damit geholfen die Qualität zu sichern.

Und von den Features, die andere in der Zukunft einbauen, werden auch wir profitieren.