Inhaltsverzeichnis
Letzte Aktualisierung am 09.06.2024, 12:06:36 Uhr
Nach wie vor wird für die kollaborativer Bearbeitung von Dateien mit Partnern, Kunden, Dienstleistern, etc. auf Nextcloud (Office) gesetzt. Es handelt sich hierbei um Open source Kollaborationslösung.
Zu Beginn wird oftmals ausschließlich Benutzerkonten in Nextcloud angelegt und gepflegt. Mit der Zeit werden es immer mehr Projekte. Damit steigt auch die Anzahl der Nutzer, sowohl von externen Kontakten als auch von Mitarbeitern. Dadurch steigt auch der Aufwand bezüglich vergessener Passwörter, gesperrte Konten, etc.
Die Mitarbeiter haben oftmals bereits ein Benutzerkonto in einem LDAP-Server. In diesem Artikel geht es um ein Microsoft Active Directory. Somit bietet es sich an einen Mehrwert zu erzielen. Sprich die Mitarbeiter können sich an der Nextcloud mit ihren Zugangsdaten anmelden, mit denen sie sich auch am Windows Client, Exchange OWA, etc. anmelden.
Dafür gibt es zwei Optionen:
- Anbindung des Active Directory direkt über LDAP bzw. LDAPS. Dies ist in der Regel der einfache und schnelle Weg zum Ziel. Für Nextcloud gibt es dafür eine App mit dem Namen „LDAP user and group backend“.
- Anbindung des Active Directory über einen Identity Provider (IdP). In diesem Fall ist es ein Active Directory Federation Service (AD FS) in Verbindung mit einem Web Application Proxy (WAP).
Wer Wert auf Sicherheit legt, sollte über Option 1 nicht nachdenken. In der Regel steht das AD bzw. DC’s im einem LAN. Nach den aktuellen Best Practices als Tier 0 eingestuft. Der Server auf dem die Nextcloud betrieben steht in der Regel in der DMZ. Das würde bedeuten, dass ein Server aus einem unsicheren Netzwerk Zugriff auf einem Server in einem hochgesicherten Netzwerk erhält.
Die Angriffsfläche vergrößert sich, wenn die Nextcloud bei einem Webhoster (z.B. als Managed Service) betrieben wird. Das würde sogar bedeuten, dass die Ports für LDAP (389/tcp) und LDAPS (636/tcp) an der Internet Firewall auf den DC weitergeleitet werden müssen. Damit steigt das potenzielle Sicherheitsrisiko um ein Vielfaches.
Unabhängig davon ob DMZ oder Webhoster muss man wissen, dass es bei einem Microsoft Active Directory ohne gültige Zugangsdaten möglich ist Informationen auszulesen. Daher gibt es mit der Sicherheitsbrille nur die zweite Option.
Mit der Verwendung von AD FS mit dazugehörigen WAP gibt es keinen Sicherheitsbruch. Denn egal, ob die Nextcloud in der DMZ oder bei einem Webhoster betrieben werden, es wird immer der WAP angesprochen. Es handelt sich bei AD FS und WAP um Rollen, welche ein Windows Server mitbringt und keinerlei Lizenzen und CALs benötigt.
Vorbereitungen
In diesem Artikel setze ich folgende Rahmenbedingungen vor:
- Ein Microsoft Active Directory (AD), welches mindestens einen DC hat.
- Eine Private Key Infrastructure (PKI), um Zertifikate für AD FS bereit zu stellen können.
- Ein Microsoft Active Directory Federation Service (AD FS), dessen Mitglied im AD ist.
- Ein Microsoft Web Application Proxy (WAP) in der DMZ, welcher
- mit dem AD FS verbunden und konfiguriert ist.
- über ein öffentliches Zertifikat für den FQDN des AD FS verfügt.
- Ein Server in der DMZ oder Webhoster, auf dem Nextcloud in der Version 28.0.3 installiert ist.
Nachstehend ein Netzwerkplan:
Die schwarze Pfeile sollen die Verbindung darstellen. Die roten Pfeile stellen die Kommunikation der Anmeldung über AD FS dar.
Konfiguration von Nextcloud
Die UI der Nextcloud im Browser aufrufen und mit einem Benutzerkonto anmelden, welches Administratorrechte in der Nextcloud hat. Dies ist erforderlich um die App sowie Konfiguration vornehmen zu können.
Installation der App
Sollte beim App „Aktivieren“ anstatt von „Deaktivieren“ stehen, die App noch aktivieren. |
Konfiguration der App
Die App muss natürlich nach der Installation noch eingerichtet werden.
Nachstehend die Werte der verschiedenen Parameter zum Kopieren:
sAMAccountName Active Directory Federation Service http://login.lab03.daniel.wydler.eu/adfs/services/trust https://login.lab03.daniel.wydler.eu/adfs/ls/ https://login.lab03.daniel.wydler.eu/adfs/ls/?wa=wsignout1.0 Bei dem letzten Parameter handelt es sich um das öffentliche Zertifikat, welches beim AD FS für „Server communication“ konfiguriert ist. Es handelt sich hierbei um das BASE64 Format. |
Nachstehend die Werte der verschiedenen Parameter zum Kopieren:
http://schemas.xmlsoap.org/claims/CommonName http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress Quota http://schemas.xmlsoap.org/claims/Group |
Ein Benutzerfilter ist an der Stelle erst einmal nicht erforderlich. Denn die Steuerung soll und kann über eine AD-Gruppe in der Konfiguration des Endpunkts im AD FS erfolgen. |
Konfiguration von Microsoft AD FS
Die AD FS Management Konsole starten und links im Navigationsbereich „Relying Party Trusts“ auswählen. Anschließend auf der rechten Seite den Eintrag „Add Relaying Party Trust“ auswählen.
An dieser Stelle kann definiert werden, ob und welche Gruppen Zugang zu der Applikation bekommen sollen. Der Einfachhalber habe ich „Permit everyone“ ausgewählt. |
Danach müssen mehrere Transforms Rules in der Claim Policy eingerichtet werden. Damit die richtigen Werte von AD FS bzw. Active Directory an Nextcloud weitergereicht werden.
Es besteht natürlich die Möglichkeit über einen weiteren Eintrag das Quota des Benutzers in Nextcloud zu steuern. Das ist dahingehend interessant, da bei Zusammenarbeit mit mehreren (externen) Personen und Mitarbeitern eigentlich im persönlichen Ordner von Nextcloud nichts gespeichert werden soll. Damit kann bei allen Mitarbeitern das Quota zentral gesetzt werden. In meinem Beispiel ist es „0 B“ groß.
Was mit dem Quota geht, funktioniert natürlich auch mit AD-Gruppen. Sprich eine AD-Gruppe wird im Claim, dem Attribut Group übergeben. Bei der Anmeldung eines AD-Benutzers an der Nextcloud wird die Gruppe automatisch angelegt und der Benutzer automatisch als Mitglied der Gruppe hinzugefügt.
Nachstehend exemplarisch eine Konfiguration für eine Gruppe.
Was natürlich mit einer Gruppe funktioniert, kann beliebig erweitert werden. Sprich für jede AD-Gruppe kann problemlos eine weitere Transforms Rule hinzugefügt werden.
Damit ist im AD FS alle notwendigen Konfigurationen vorgenommen.
Funktionstest
In einem Browser der Wahl die UI der Nextcloud aufrufen. Es erscheint folgende Abfrage.
Der obenstehende Screenshot (Zahl 1) zeigt das Quota des angemeldeten Benutzers. Das ist nur relevant, wenn dafür eine Transforms Rule im Claim auf dem AD FS Server angelegt wurde. |
Der obenstehende Screenshot zeigt die AD-Gruppe, welche mit Hilfe der Transforms Rule im Claim übergeben wurde. In diesem Fall ist der Benutzer Peter Mitglied der gleichnamigen AD-Gruppe. |
Anmeldung war erfolgreich und die definierten Rules und Claims werden ebenfalls angewendet. Natürlich darf die Abmeldung nicht fehlen.
Die saubere Abmeldung funktioniert ebenfalls. Wird die FQDN der Nextcloud Instanz wieder aufgerufen, wird wieder nach den Anmeldeinformationen gefragt.
Sonstiges
Im aller ersten Screenshot sind zwei Anmelde Möglichkeit zu sehen. Daher stellt sich die Frage, ob die Mitarbeiter nicht einfach die „Direkte Anmeldung“ nutzen können. So dass alle Regularien, welche auf dem AD FS Server konfiguriert sind, umgangenen werden können.
Eine Anmeldung mit gültigen Zugangsdaten eines AD-Benutzers funktioniert nicht.
Viel Spaß beim Ausprobieren. 🙂