Anbindung von ownCloud an privacyIDEA

Eigene Daten, eigene Cloud, eigene Identität

Seite: 2/2

Firmen zum Thema

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.

Bildergalerie
Bildergalerie mit 10 Bildern

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 updateapt 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.

Bildergalerie
Bildergalerie mit 10 Bildern

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.

Bildergalerie
Bildergalerie mit 10 Bildern

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.

Dieser Beitrag ist ursprünglich auf unserem Partnerportal Security-Insider erschienen.

(ID:44513762)