Graphic about SAML integration for ownCloud

Wenn Sie verschiedene Online-Dienste benutzen müssen, was in der Regel der Fall ist, gibt es nichts Praktischeres als Single Sign-on (SSO) zu benutzen. SSO ermöglicht es, sich an allen verfügbaren Diensten einer Domäne mit nur einem Passwort anzumelden. UCS macht dies durch einen SAML Identity-Provider seit UCS 4.1 möglich.

Aus den folgenden Gründen entschieden wir uns für SAML als erste Single Sign-on Technologie in UCS: Die Technik ist bekannt im Unternehmensbereich, sie verfügt über einen hohen Grad an Sicherheit und wir haben in den Jahren zuvor positive Erfahrungen damit gemacht. Seitdem sind viele Dienste und Univention Apps mit einem SAML Service Provider ausgestattet. Nun arbeiten wir daran, diese in den UCS Identity Provider zu integrieren.

Heute möchten wir Ihnen deshalb die Konfiguration der SAML Integration, die für die ownCloud Univention App benötigt wird, beschreiben. Sollte die Thematik SAML Single Sign-on absolut neu für Sie sein, empfehlen wir Ihnen, vorab unseren Artikel Kurz erklärt: Einmalige Anmeldung per Single Sign-on zu lesen, der Ihnen ein allgemeines Verständnis über das SSO-Konzept vermittelt.

Die Umsetzung dieser SAML Integration für ownCloud fand im Rahmen eines unserer internen Univention Hackathons statt, wo sich Kollegen von uns in regelmäßigen Abständen treffen, um spannende Projekte rund um UCS und UCS@school auszuprobieren. Bei diesen internen Hackathons sind übrigens schon einige nützliche Apps, Konzepte und Produktfeatures entstanden.

Aber wie funktioniert denn nun die Integration von SAML für ownCloud und was muss ich dafür tun?

Konfiguration der SAML Integration für ownCloudGrafik über die SAML Integration von Diensten in UCS

Für die Integration haben wir ein Debian Paket vorbereitet, das alle benötigten Konfigurationsschritte bei der Installation ausführt. Im Wesentlichen wird nur ein UCS Server, auf dem die ownCloud App vom Univention App Center installiert ist, benötigt.

Die Konfiguration des ownCloud SAML Service Providers, den wir bereitstellen, basiert auf der offiziellen ownCloud Anleitung, die das Shibboleth (mod_shib) Modul des Apache HTTP Servers benutzt.

Nachdem das Paket installiert ist, wird ein Link zum Portal hinzugefügt, der die Anmeldung per SAML bereitstellt. Der reguläre Login mittels LDAP Authentifikation kann aber weiterhin als Ausweichlösung und Alternative benutzt werden.

Zu beachtende Voraussetzungen

Integriere SAML SSO für die ownCloud Univention App
Bitte beachten Sie die folgenden notwendigen Voraussetzungen, bevor das Paket installiert werden kann:

  • Die ownCloud-App ist auf dem UCS System installiert.
  • Entweder ist ownCloud Enterprise oder eine 30-tägige Testversion von ownCloud aktiviert. Die Aktivierung passiert in zwei Schritten:
    • Geben Sie Ihren Schlüssel ein: Anmelden → Startmenü → Markt (Direktlink: /owncloud/index.php/apps/market/) → API Schlüssel hinzufügen → Speichern → Schließen
    • Installieren der Enterprise Apps: [START ENTERPRISE TRIAL] → START TRIAL → INSTALL ENTERPRISE APPS NOW

Installation

Was passiert während der Installation?

Bei der Installation des Debian Pakets werden die folgenden Schritte ausgeführt:

  • Installation der ownCloud SAML-App.
  • Aktivierung und Konfiguration der ownCloud SAML-App.
  • Einrichtung der Apache Konfiguration für mod_shib im Docker Container von ownCloud.
  • Einrichtung einer Apache reverse proxy Regel für Single Sign-on auf dem/den Host-System(en).
  • Einrichtung eines Portaleintrags für den Single Sign-on nach ownCloud.

Inbetriebnahme

Um das Ganze in Betrieb zu nehmen, sind folgende Schritte notwendig:

  • Wenn gewünscht, kann die UCR-Variable owncloud/saml/path (Standard: /oc-shib) gesetzt werden, die definiert, wo SAML für ownCloud verfügbar sein soll.
  • Für die Installation des Debian Pakets gibt es folgende zwei Möglichkeiten:
    1. Entweder Herunterladen und Installieren des Pakets
      • Laden Sie das Paket von GitHub herunter.

        root@ucs# wget
        https://github.com/univention/univention-owncloud-saml/raw/master/univention-owncloud-saml_1.0.0-1_all.deb

      • Installieren Sie das Paket mittels dpkg

        root@ucs# dpkg -i univention-owncloud-saml_1.0.0-1_all.deb

    2. Oder Klonen des git-Repositories, Paket bauen und installieren
      • Klonen Sie das git von GitHub:

        root@ucs# univention-install git dpkg-dev debhelper univention-config-dev ucslint-univention root@ucs# git clone https://github.com/univention/univention-owncloud-saml.git

      • Bauen Sie das Paket:

        root@ucs# cd univention-owncloud-saml/; dpkg-buildpackage

      • Installieren Sie das Paket mittels dpkg

        root@ucs# cd ..;
        dpkg -i univention-owncloud-saml_1.0.0-1_all.deb

  • Stellen Sie per univention-check-join-status sicher, dass das Joinskript erfolgreich ausgeführt wurde.
  • Erstellen Sie einen ownCloud-Benutzer via UMC.
  • Aktivieren Sie den ownCloud Benutzer für den SAML Service Provider über [Konto] → [SAML Einstellungen].
  • Navigieren Sie zum Portal und melden Sie sich per SAML an ownCloud an.

Hinweise

  • Die Änderungen der Datei /root/owncloud/subpath.conf im Docker Container der ownCloud App bleiben bei einem Update der App nicht erhalten. Deshalb muss das Joinskript (40univention-owncloud-saml.inst) nach jedem Update der ownCloud App erneut ausgeführt werden.
  • Die SAML Service Provider Metadaten sind unter https://$fqdn//Shibboleth.sso/Metadata verfügbar. Zum Debuggen eignet sich https://$fqdn//Shibboleth.sso/Session, um Informationen über den momentan angemeldeten Benutzer zu erhalten.

Wenn Sie weitere Fragen haben, lassen Sie es uns wissen. Entweder im nachstehenden Kommentarfeld oder im Univention Forum.

Wir freuen uns auf Ihr Feedback!

 

UCS Core Edition jetzt kostenfrei einsetzen!

Zum Downloadbereich

Florian Best ist Open Source Software Engineer bei Univention und hauptsächlich in der Entwicklung von UMC sowie UCS@school tätig. Seine persönlichen Interessen liegen im Bereich HTTP, REST, Sicherheitstechnik und Python.

Was ist Ihre Meinung? Hinterlassen Sie einen Kommentar!

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.