Anbindung von ownCloud an privacyIDEA

Eigene Daten, eigene Cloud, eigene Identität

| Autor / Redakteur: Cornelius Kölbel / Peter Schmitz

Durch die Kombination von ownCloud mit privacyIDEA entsteht die Möglichkeit, Daten unter eigener Kontrolle zu behalten.
Durch die Kombination von ownCloud mit privacyIDEA entsteht die Möglichkeit, Daten unter eigener Kontrolle zu behalten. (Bild: Pixabay / CC0)

Heutzutage erwarten Anwender zurecht, dass ihre Informationen und Daten überall verfügbar sind. Es gibt zahllose Anbieter, die mit proprietären Lösungen zur Synchronisation von Daten in der Cloud den Anwendern ein einfaches Leben versprechen. Doch ist dieses Leben auch sicher? Der Anwender kann seine Daten überall nutzen, doch hat er auch die Kontrolle über diese Daten? Kann er zuverlässig definieren, wer seine Urlaubsfotos sehen kann? Kann er sicher sein, dass keine unberechtigten Personen Zugriff auf Firmengeheimnisse wie die neusten Konstruktionsdaten erhalten? Nein, denn auch der Anbieter eines Cloud-Dienstes kann diese Daten, ohne dass der Anwender es bemerkt, beliebig kopieren.

Diese Lücke füllen verschiedene Lösungen, die es ermöglichen die eigenen Daten auf einen Maschinen unter der eigenen Kontrolle von überall verfügbar zu halten. ownCloud ist seit mehreren Jahren das wohl bekannteste Projekt in diesem Bereich. Mitte letzten Jahres ist außerdem durch den Fork mit Nextcloud neuer Wind in den Markt gekommen.

Zwei-Faktor-Authentifizierung erhöht die Sicherheit

Ab ownCloud 9.1 und Nextcloud 10 ist ein definiertes Zwei-Faktor-Framework enthalten. Das 2FA-Framework ersetzt nicht die bisherige Anmeldung, sondern ermöglicht es, dem bestehenden ownCloud-Passwort einen zweiten Faktor hinzuzufügen. Der Anwender erhält nur noch Zugriff auf seine Daten, wenn er zusätzlich zu seinem Passwort einen Besitz wie ein Smartphone, eine Smartphone-App oder einen Hardware-Token vorweisen kann.

Dies wird erreicht, indem in ownCloud eine entsprechende Zwei-Faktor-App oder auch "Zwei-Faktor-Provider" registriert wird. ownCloud bietet bereits einen Zwei-Faktor-Provider für TOTP (kompatibel mit Google Authenticator) und einem weiteren 2FA-Provider, der ein Einmalpasswort mittels E-Mail versenden kann. Für Nextcloud findet sich seit kurzem sogar eine App, die einen Yubikey als zweiten Faktor des Benutzers mittels U2F akzeptiert. An Ende des Artikels gibt es ein Video-Tutorial zur U2F Authentifizierung bei ownCloud mit privacyIDEA.

All diese Apps sind im Sinne der Datenhoheit des Benutzers gehalten. Der Benutzer bestimmt selber, ob er einen zweiten Faktor aktivieren möchte, oder nicht. Der Benutzer, als Besitzer seiner Daten, kann also auch über die Güte des Zugangs zu diesen Daten entscheiden.

Im Unternehmensumfeld ist dieser Ansatz nicht geeignet. Denn hier unterliegt die Zwei-Faktor-Authentifizierung definierten Sicherheitsrichtlinien. Diese richten sich nach rechtlichen Auflagen oder vertraglichen Bedingungen bspw. zwischen Kunden und Zulieferern. Im Unternehmen ist also klar definiert, welcher Benutzer einen zweiten Faktor für welche Applikation verwenden soll. Dies liegt außerhalb der Entscheidung des einzelnen Benutzers.

Weiterhin ist die Verwaltung des zweiten Faktors direkt in ownCloud für Unternehmen nicht sinnvoll. Denn oft soll die Zwei-Faktor-Authentifizierung gleichzeitig am VPN, der Firewall, am Desktop oder an anderen Portalen genutzt werden. Der Google Authenticator aus ownCloud kann für die anderen Anwendungen nicht genutzt werden. Für den VPN-Zugang müsste der Benutzer also einen weiteren zweiten Faktor erhalten, der wiederum an einer anderen Stelle verwaltet werden würde.

Doch genau wie die Benutzer selber sollen auch die Authentifizierungsmerkmale - Passwörter und Zweite Faktoren - im Unternehmen zentral verwaltet werden. Auch die Regeln, welcher Benutzer sich wie mit einem zweiten Faktor anmelden muss, sollen zentral definiert sein und nicht dem einzelnen Benutzer überlassen werden.

Zentrale Zwei-Faktor-Authentifizierung mit privacyIDEA

Für die zentrale Verwaltung der zweiten Faktoren nutzen wir hier die Opensource Lösung privacyIDEA. privacyIDEA kann Benutzer in beliebigen Kombinationen aus verschiedenen Benutzerquellen wie LDAP, Active Directory, SQL lesen und diesen Benutzern zentral einen oder mehrere zweite Faktoren wie Smartphone Apps/Google Authenticator, SMS-Token oder Hardware-Geräte wie Yubikeys, U2F-Token oder OTP-Karten zuweisen. Der Administrator definiert Richtlinien, die festlegen, welche Aufgaben der Benutzer selber durchführen kann und in welchen Fällen der Benutzer einen zweiten Faktor zur sichereren Anmeldung vorweisen muss.

Die Authentifizierung erfolgt über das RADIUS-Protokoll oder eine REST API. Es gibt für viele Applikationen Plugins, um die Anmeldung mit einem zweiten Faktor gegen privacyIDEA zu erweitern. Neben Plugins für diverse Content-Management- und Ticket-Systeme ist ebenso die privacyIDEA ownCloud App für ownCloud und Nextcloud verfügbar, die die Anmeldung an ownCloud um einen zweiten Faktor erweitert. Wie eingangs gefordert, kann der Benutzer diesen zweiten Faktor nun aber auch bspw. für die Anmeldung am firmeneigenen Ticketsystem oder am VPN verwenden. Über die privacyIDEA ownCloud App berichteten wir bereits kurz.

Installation und Konfiguration des privacyIDEA Servers

Wir gehen von einer bereits bestehenden ownCloud-Installation Version 9.1 aus, bei der sich die Benutzer mit einem einfachen Passwort anmelden.

Wir installieren ein privacyIDEA System auf einem eigenen Ubuntu 16.04 LTS Server.

(Es sind Installationen auf vielen verschiedenen Distributionen möglich. Für Ubuntu 16.04 LTS ist ein Paketrepository auf launchpad verfügbar. Diese binden wir auf der Ubuntu-Maschine als Benutzer "root" mit dem folgenden Befehl ein:

add-apt-repository ppa:privacyidea/privacyidea

Nun wird das privacyIDEA System installiert:

apt update

apt install privacyidea-apache2

Dies installiert den Programmcode, eine MySQL-Datenbank und richtet automatisch die notwendige Apache-Instanz und stellt die Verbindung zur lokalen Datenbank her.

Zum Schluss muss nur noch ein initialier privacyIDEA-Administrator angelegt werden:

pi-manage admin add administrator

Dies erzeugt einen Benutzer "administrator", der sich nun mit dem angegebenen Passwort an dem Web-Interface von privacyIDEA anmelden kann. Dieser Administrator hat standardmäßig alle Berechtigungen im System. Administratoren mit eingeschränkten Rechten oder Helpdesk-Benutzer können später definiert werden.

Der Administrator greift mit dem Browser per HTTPS auf den privacyIDEA-Server zu.

Benutzerquellen

privacyIDEA ist eine sehr flexible Lösung, bei der viele Aufgabenschritte automatisiert werden können. Der Administrator kann den Benutzern Authentifizierungs-Objekte ausstellen, Benutzer können dies aber auch selber tun. Viele Schritte können hierbei auch automatisiert werden. Dies sprengt schnell den Umfang einer solchen Einführung. Daher wählen wir die einfache Variante, in der der Administrator den zweiten Faktor für die Benutzer erstellt.

Damit der Administrator den Benutzern einen zweiten Faktor ausstellen kann, muss privacyIDEA wissen, welche Benutzer es gibt.

Hierzu muss der Administrator Verbindungen zu bestehenden Benutzerverzeichnissen bzw. “Benutzer-Quellen” definieren. Dies können im Unternehmen LDAP-Verzeichnisse oder das Active Directory sein. Genauso kann aber auch auf die SQL-Datenbank von ownCloud zugegriffen werden, wenn die Benutzer in ownCloud geplegt werden.

Hierzu ruft der Administrator Konfiguration / Benutzer auf und erstellt einen neuen SQL-Resolver.

Ist privacyIDEA auf einem anderen System als ownCloud installiert, so muss dem privacyIDEA System der Zugriff auf die ownCloud Datenbank ermöglicht werden. Im Unternehmensumfeld werden in den meisten Fällen die Benutzer allerding in einem LDAP oder Active Directory liegen. Dann erstellt der Administrator einen neuen LDAP-Resolver.

In privacyIDEA lassen sich beliebig viele solcher Benutzer-Quellen definieren. Diese können dann zu logischen, administrativen Einheiten - sogenannten Realms - zusammengefasst werden.

Der Administrator ruft nun Konfiguration / Realms auf und legt einen neuen Realm an, der die gerade angelegte Benutzer-Quelle enthält.

Ist alles richtig konfiguriert, so kann der Administrator nun die Liste der Benutzer unter dem Menüpunkt Benutzer einsehen.

Token ausrollen

In der Liste der Benutzer kann der Administrator einen Benutzer auswählen und anklicken. Er sieht nun die Detailansicht des Benutzers.

Der Benutzer "Fred Feuerstein" hat bisher kein Authentifizierungs-Objekt. Er besitzt keinen zweiten Faktor zur Anmeldung an ownCloud oder irgend einer anderen Applikation. Nun muss der Administrator dem Benutzer einen Token ausrollen, indem er auf den Knopf "Neuen Token ausrollen" klickt.

Der Administrator wählt bspw. den Tokentyp "TOTP" und klickt ohne weitere Änderungen auf "Token ausrollen". Es wird ein QR-Code angezeigt, den der Administrator mit dem Smartphone des Benutzers scannt. Dies kann mit der App "Google Authenticator", "FreeOTP" oder "OTP Authenticator" geschehen.

Nun ist dem Benutzer "fred" an zentraler Stelle ein zweiter Besitz-Faktor zugeordnet, der vom Administrator kontrolliert wird und für beliebige Applikationen im Netzwerk verwendet werden kann.

Anmerkung: Im alltäglichen Betrieb ist es oft nicht sinnvoll, dass der Administrator für den Benutzer eine Smartphone-App ausrollt. Hier müssen die entsprechenden Prozesse definiert werden, die i.d.R. sich alle mit privacyIDEA abbilden lassen. Es können Benutzer in einem User-Help-Desk definiert werden, die beschränkte administrative Rechte haben. Die Benutzer können selber ihre Smartphone App ausrollen. Benutzer können einen Registrierungscode erhalten oder an zentraler Stelle können Hardware-Token wie OTP Keyfobs importiert oder Yubikeys initialisiert und den Benutzer zugewiesen werden, die dann per Post versendet oder vom Benutzer abgeholt werden. privacyIDEA passt sich in diesen Punkten perfekt an die Gegebenheiten im jeweiligen Unternehmen an.

Anmerkung: privacyIDEA kann auch den ersten Faktor - das Wissen verwalten. Jedem Token kann eine Token-PIN gesetzt werden. An dieser Stelle haben wir darauf verzichtet, weil das 2FA-Framework von ownCloud den ersten Faktor bereits gegen ownCloud prüft.

Installation und Konfiguration der privacyIDEA ownCloud App

Die Anbindung von ownCloud an das privacyIDEA System erfolgt über das eingangs erwähnte Zwei-Faktor-Framework von ownCloud. Dies ist in ownCloud ab Version 9.1 verfügbar, in Nextcloud ab Version 10.

Hierzu installiert der ownCloud-Administrator die "privacyIDEA ownCloud App".

https://apps.owncloud.com/content/show.php/privacyIDEA+ownCloud+App?content=174779

Der Administrator entpackt das heruntergeladene Archiv in das apps-Verzeichnis seiner ownCloud-Installation.

tar -zxf 174779-privacyidea_owncloud_app.tgz -C /var/www/owncloud/apps/

Danach ist die App verfügbar und muss in ownCloud aktiviert werden.

Anbindung von ownCloud an privacyIDEA

Der Administrator meldet sich am ownCloud Webinterface an und findet unter Apps / Not Enabled die privacyIDEA ownCloud App.

Diese ist als experimentell gekennzeichnet, weil sie bisher keinen Code-Review durch die ownCloud GmbH erfahren hat.

Der Administrator aktiviert die App. Anschließend kann er im Admin-Bereich die App konfigurieren.

Anmerkung: Falls sich der Administrator abmeldet, bevor die App konfiguriert ist, verlangt ownCloud eine Zwei-Faktor-Anmeldung, kann diese aber nicht durchführen, weil der Administrator noch nicht definiert hat, wo das privacyIDEA System steht. In diesem Fall ist keine Anmeldung möglich. Hier hilft es, das Verzeichnis "twofactor_privacyidea" im apps-Verzeichnis umzubenennen, so dass ownCloud keinen zweiten Faktor verlangt.

Die URL des privacyIDEA Servers muss mit dem vollen Pfad der Authentifizierungs-REST-API angegeben werden. Dies ist bspw. https://privacyidea/validate/check.

Die App ist nun aktiv und konfiguriert, so dass der zweite Schritt der Authentisierung gegen privacyIDEA erfolgt. Nachdem der Benutzer wie gewohnt seinen Benutzernamen und sein ownCloud-Passwort eingegeben hat, wird er in einem weiteren Dialog zur Eingabe eines Einmalpasswortes aufgefordert.

So kann der Administrator in zentraler Stelle im privacyIDEA regeln, welcher Benutzer sich mit welchem zweiten Faktor an ownCloud anmelden kann.

Fazit und Ausblick

Durch die Kombination von ownCloud mit privacyIDEA entsteht die Möglichkeit, Daten unter eigener Kontrolle zu behalten. Die Systeme sind Opensource und können on premise betrieben werden. Die flexible Authentifizierung mit dem zweiten Faktor bietet zusätzliche Anmeldesicherheit. Diese muss aber nicht bei der ownCloud-Installation enden sondern kann für beliebige weitere Anmeldungen am VPN, anderen Web-Applikationen oder am Desktop verwendet werden.

Video-Tutorial zur U2F Authentifizierung bei ownCloud mit privacyIDEA.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44506337 / Smartcard und Token)