Monatliches Archiv: Dezember 2014

OwnCloud 8 mit Custom User Backend

Die Einsatzgebiete von OwnCloud sind vielfältig. Man kann seine Kalender synchronisieren, Dateien austauschen oder aber die Arbeit in kleinen Gruppen organisieren. In solchen Fällen hat man häufig schon eine andere Software im Einsatz, sei es ein Wiki, einen Bugtracker oder eine andere Homepage, bei der man sich anmelden muss.

Wünschenswert wäre in diesem Fall, dass man nur einen Benutzernamen und ein Passwort hat, das für alle Dienste gilt. Praktischerweise bietet OwnCloud hier mit Hausmitteln schon eine Lösung, wenn man ein paar Fallstricke beachtet.

Dieses Beispiel geht davon aus, dass bereits eine OwnCloud 7 Installation vorhanden ist und dass als Backend MySQL verwendet wird.

Schritt 1: Vorbereiten der Datenbank

Leider werden bei der Installation von OwnCloud 7 nicht alle Tabellen automatisch angelegt, die für ein Custom User Backend notwendig sind. Daher muss man die Tabelle oc_users_external anlegen:

CREATE TABLE IF NOT EXISTS `oc_users_external` (
    `backend` varchar(128) NOT NULL,
    `uid` varchar(64) NOT NULL,
    `displayname` varchar(64) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Schritt 2: Erstellen eines eigenen Backends

Im Verzeichnis apps/user_external/lib/ finden sich einige Beispiele (z.B. imap.php), die man für seine eigenen Zwecke umschreiben kann. Ein Minimalbeispiel sieht so aus (Man ersetze MYSITE durch einen eigenen Identifier)

<?php 
class OC_User_MYSITE extends \OCA\user_external\Base{
    private $host;
    public function __construct($host, $secure=false) {
        $this->host=$host;
        parent::__construct('mysite://' .