Apr 07

Nextcloud mit 2-Faktor-Authentifizierung

Mit einem Stick für weniger als 8 Euro lässt sich mittlerweile bequem eine 2-Faktor-Authentifizierung für Nextcloud realisieren.
Was ist dafür notwendig?
1. Einen FIDO kompatiblen Stick bestellen (z. B. HyperFIDO mini)
2. Einen FIDO kompatiblen Browser verwenden. Das sind derzeit entweder Chrome (Nein Danke, Google) oder Firefox. In Firefox muss man derzeit noch folgende Zusatzschritte einmalig durchführen:
– about:config im Browser eintippen
– Im Suchfeld „u2f“ suchen
– In der Einstellung security.webauth.u2f den Wert auf „true“ stellen
3. Als Admin in Nextcloud die App „Two Factor U2F“ aktivieren
4. Als Benutzer (!) in Nextcloud unter Einstellungen->Sicherheit:
– Backup-Codes erzeugen und sie ausdrucken und zusätzich speichern (sinnvollerweise außerhalb von Nextcloud ;-))
– U2F-Stick anstecken im Feld „Name your device“ einen Namen vergeben (v. a. falls man mehrere Sticks einsetzen möchte) und auf „U2F-Gerät hinzufügen“ klicken.
=> Danach ist das Account mit dem Stick verknüpft und man braucht für eine Anmeldung dieses Users zusätzlich zu Username/Passwort auch noch einen Klick auf den Button am Stick oder einen der Backup-Codes.

Feb 10

User Provisioning API für Nextcloud/Owncloud in Shared Hosting Umgebungen nutzen

Nextcloud / Owncloud ist mittlerweile ja nicht nur DIE Alternative zu Dropbox für Freunde der informationellen Selbstbestimmung, sondern durch diverse Apps noch viel mehr. Ich nutze z. B. den integrierten Mailclient Rainloop gerne.

Wer das ganze für einen größeren Personenkreis nutzen möchte, der kommt früher oder später an den Punkt, dass er sich um Benutzerverwaltung eigentlich nicht von Hand kümmern möchte. Klar, im professionellen Umfeld hat man einen LDAP-Server oder einen SSO-Dienst. Aber auch wenn’s eine Nummer kleiner sein soll, dann hat man dafür gute Chancen. Um die Entwicklung von Apps und Anwendungen zu erleichtern gibt es nämlich eine toll dokumentierte User Provisioning API. Leider geht die in den aufgeführten Beispielen davon aus, dass man einen Shell-Zugriff auf den Server hat und Befehle in der Konsole ausführen kann. In Shared Hosting Umgebungen ist ein Shell-Zugriff aber in der Regel so kastriert, dass man ihn dafür nicht nutzen kann. Glücklicherweise funktionieren die Aufrufe auch über ein Webinterface und sind damit z. B. über CURL mit PHP ansprechbar.

Damit sich nicht jeder das ganze selbst zusammenreimen muss, habe ich eine Klasse geschrieben und unter Github veröffentlicht: https://github.com/ddwgitlab/nextcloud_user_provisioning.
Außerdem habe ich noch ein paar nette Funktionen eingebaut, denen man z. B. nur ein Array mit Usernamen und Passwörter übergeben muss, die dann alle schön abgearbeitet werden.

Viel Spaß und Erfolg damit.