SSO-SAML-UCS

SAML (Security Assertion Markup Language) ist ein Standard, der das Single Sign-On (SSO) ermöglicht, also ein zentrales Login. So melden sich Benutzer einmal an und erhalten automatisch Zugriff auf andere Programme und Dienste. UCS unterstützt SAML und SSO, um Nutzern nicht nur eine zentrale Identität, sondern auch einen zentralen Login zu bieten und somit das webbasierte Arbeiten sicherer und komfortabler zu gestalten. In diesem Artikel stellen wir die Eigenschaften und Funktionsweise von SAML vor. Wenn Sie direkt wissen wollen, wie man SAML in UCS integriert, klicken Sie hier.

Was ist SAML?

Das SAML-Format basiert auf XML; es dient zum Authentisieren und Autorisieren von Benutzern. Mehrere SAML-Komponenten arbeiten Hand in Hand:

  • der Identity Provider (IdP)
    • ist Authentifizierungdienst,
    • stellt Anmeldemaske bereit,
    • leitet Anwender zum Service Provider (SP) weiter
    • wird in diesem Beispiel durch UCS abgebildet
  • Service Provider (SP)
    • Authentifizierungsdienst
    • vertraut IdP
    • Im Kontext UCS ist er ein beliebig anderer Dienst wie z.B. ownCloud oder Nextcloud

SAML arbeitet im Hintergrund mit so genannten Session-Cookies, die mit einem Ablaufdatum versehen sind. Den Session-Cookie erhalten die Anwender bei der Authentifizierung am IdP und können sich mit ihm anschließend bei den angebundenen Diensten anmelden. Da der Session-Cookie wie andere Cookies auch im Browser der Anwender gespeichert wird, ist keine direkte Verbindung zwischen IdP und SP notwendig. So kann ein UCS, der als IdP agiert, etwa abgeschottet in einem internen Netz stehen und dennoch die Authentifizierung für einen Cloud-Dienst im Internet übernehmen – ohne, dass dieser je direkt mit dem UCS interagiert hätte.

Anbindung von Services mit SAML

Um Services mit SAML anzubinden, ist das Austauschen von Metadaten erforderlich.

Artefaktaustausch_SAML

 

Diese Metadaten enthalten folgende Artefakte:

  • Single SignOnService Link 
  • SingleLogoutService Link 
  • Öffentliches Zertifikat 
  • AssertionConsumerService Link 
  • SingleLogoutService Link 

Benutzerverwaltung

Viele Services bieten beim ersten Login die Möglichkeit, automatisch einen neuen Benutzeraccount anzulegen. Dieses Verfahren heißt Just-in-Time-Bereitstellung (Just-in-Time provisioning). Sollte ein Dienst dies nicht unterstützen, müssen die Benutzer zunächst manuell angelegt werden, oder die Daten werden über einen anderen Weg bereitgestellt.

UCS unterstützt wenn benötigt die Just-in-Time-Bereitstellung z.B. für Dienste wie Office 365 und Google G Suite. Viele andere Dienste legen die User von alleine an, wenn sie sich über SAML einloggen.

Beim Bearbeiten der Benutzereigenschaften bietet sich Folgendes an:

  • Nutzen der SAML-Attribute
  • Verteilen über andere Schnittstellen
  • eine Kombination aus beidem

Beim Löschen von Benutzeraccounts gibt es ebenfalls mehrere Wege:

  • automatisches Löschen nach einer bestimmten Dauer von Inaktivität
  • Löschen durch Nutzung einer anderen Schnittstelle

Auch dies ist in UCS beispielsweise für Office 365 (hier authentifiziert sich der UCS Office 365 Connector gegen eine Schnittstelle in der Azure-Cloud und provisioniert dort die User) oder für Google G Suite möglich. Die Art der Schnittstellen kann zwischen einzelnen Diensten sehr verschieden sein.

Ablauf einer Authentifizierung mit SAML

Die folgenden Schritte zeigen beispielhaft, wie eine Authentifizierung mit SAML ablaufen kann:

  1.  Wenn eine Anwenderin Zugriff auf eine Ressource eines Dienstes benötigt – egal, ob intern oder extern –, öffnet sie eine Login-URL (technisch ein GET-Request) des Services, z. B. die Adresse wiki.univent.intern/login.
  2. Von dem Dienst erhält sie einen Redirect an den SingleSignOnService Link des Identity Providers. Diese Weiterleitung enthält eine Anfrage des Services, die vom Identity Provider unterzeichnet werden soll.
  3. Der Browser der Anwenderin ruft also den SingleSignOnService Link des Identity Providers auf und reicht die Anfrage ein.
  4. Anschließend muss sich die Anwenderin authentifizieren.
  5. Die Antwort des Dienstes enthält unter anderem den AssertionConsumerService Link.
  6. Diesen kann der Browser verwenden, um einen POST-Request an den Service Provider des Dienstes zu stellen.
  7. Der Service Provider betrachtet die Anwenderin nun als authentifiziert.
  8. Per Redirect leitet er sie weiter an die ursprüngliche Login-URL. Von dort wird sie aufgrund der erfolgreichen Authentifizierung an die Ressourcen des Dienstes weitergeleitet.

Attribut-basierte Autorisierung

Neben der Authentifizierung der Benutzer selbst ist auch eine detaillierte Autorisierung für Zugriffe auf bestimmte Ressourcen konfigurierbar. Hier erlaubt SAML, Attribute zwischen Identity Provider und Service Provider auszutauschen. Anhand der Attribute kann ein Service Entscheidungen über Ressourcenzugriffe treffen. In UCS können Sie für jeden einzelnen Service Provider definieren, ob er LDAP-Attribute übergeben soll und wenn ja, welche das sind.

Vor- und Nachteile von SAML

VorteileNachteile
  • Single Sign-On steht für alle Anwender zur Verfügung.
  • Die Verfügbarkeit einzelner Dienste hängt von der Verfügbarkeit des Identity Providers ab.
  • Viele Dienste unterstützen SAML nativ oder über Plugins; dazu gehören auch viele Cloud-Dienste.
  • Ein Diebstahl des Session-Cookies ermöglicht Angreifern den Zugang zu allen Diensten.
  • Der Administrations-Aufwand verringert sich, denn es gibt nur eine Datenbank für die Accounts zu pflegen.
  • Sicherheitsgewinn:
    Es gibt nur eine interne Nutzerdatenbank, die nicht von außen (Internet) zugänglich sein muss.
    Die Passwörter werden nicht mehr in anderen Diensten benötigt.


Film-Tutorial: zentrale Maildienste in UCS bereitstellen

Sehen Sie in dem 8-minütigen Film-Tutorial, wie Sie Ihren eigenen E-Mail Server mit UCS aufsetzen, wieso Sie die Komponente UCS Mail Server aus dem Univention App Center auf einem UCS Slave installieren sollten und wie Sie am besten bei der Installation vorgehen. Mehr


Integration in UCS

Eine SAML-Integration in UCS existiert schon seit UCS 4.1. Die Anmeldemaske befindet sich in der Voreinstellung unter https://ucs-sso.domainname/univention/saml/. Zugriff auf die Metadaten bietet die Adresse https://ucs-sso.domainname/simplesamlphp/saml2/idp/metadata.php.
Das UCS-Handbuch beschreibt, wie Sie Services hinzufügen. Für das Bereitstellen von Office 365 und Google G Suite gibt es eigene Connector-Apps in unserem App Center, die Benutzer anlegen, modifizieren und löschen.

Tipp: Sie können die SAML-Anmeldemaske auch unter einer anderen Adresse verfügbar machen und damit z. B. einen Zugriff von außen ermöglichen. Wie das geht, erklärt ein Artikel aus der Univention Knowledge Base.

Ist SAML für mich geeignet?

Bevor Sie sich entscheiden, SAML in Ihrer Umgebung ganz oder teilweise einzusetzen, sollten Sie folgende Fragen beantworten:

  • Kann der anzubindende Service SAML 2.0?
  • Wie sieht die Benutzer-Synchronisation aus?
  • Kann der anzubindende Service Just-in-Time-Bereitstellung?
  • Wie werden Benutzer gelöscht?
  • Wie kann eine anderweitige Bereitstellung durchgeführt werden?
  • Welche Rollen soll es im anzubindenden Service geben?
  • Gibt es viele verschiedene Benutzerrollen?
  • Gibt es eine Standardrolle für Benutzer?
  • Wie kann diese über SAML-Attribute abgebildet werden?
  • Kann das der Service zuordnen?

Noch Fragen?

Wenn Sie SSO richtig einsetzen, können Sie Nutzern komfortabel Zugriff auf mehrere Dienste, Anwendungen und andere Ressourcen gewähren. SAML als Authentifizierungs- und Autorisierungs-System und UCS als Identity Provider, der die Verifizierung durchführt, leisten hier gute Dienste. Sollten Sie weitere Fragen haben, können Sie gerne mit uns Kontakt aufnehmen.

UCS Core Edition jetzt kostenfrei einsetzen!

Zum Downloadbereich

Junior IT Consultant im Professional Service Team bei Univention.

Was ist Ihre Meinung? Hinterlassen Sie einen Kommentar!

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