3.8. SAML Identity Provider#
SAML (Security Assertion Markup Language) ist ein XML-basierter Standard zum Austausch von Authentifizierungsinformationen, der Single Sign-On über Domänengrenzen hinweg erlaubt. UCS stellt auf dem Primary Directory Node und den Backup Directory Node einen ausfallsicheren SAML Identity Provider bereit. Über ein kryptografisches Zertifikat wird der SAML Identity Provider bei einem externen Dienst fest registriert und vertraut diesem. Der Benutzer authentifiziert sich dann einmalig gegenüber UCS und kann den Dienst ohne erneute Authentifizierung nutzen.
Der SAML 2.0 kompatible UCS Identity Provider wird durch die Integration von simplesamlphp bereitgestellt.
Der UCS Identity Provider ist eng in die UCS Domäne eingebunden. Daher müssen Rechner, von denen der UCS Identity Provider genutzt werden soll, DNS-Namen in der UCS-Domäne auflösen können. Die DNS-Server der Domäne sollten auf allen Clients eingetragen sein, um den zentralen DNS-Namen, im Normalfall ucs-sso.[domainname]
, auflösen zu können.
Der UCS Identity Provider wird auf dem Primary Directory Node und Backup Directory Node mit der Installation automatisch eingerichtet. Um die Ausfallsicherheit innerhalb der Domäne zu erhöhen, können weitere Systeme der Rolle Backup Directory Node verfügbar gemacht werden. Für den ausfallsicheren Zugriff auf den UCS Identity Provider wird standardmäßig der DNS-Eintrag ucs-sso.[domainname]
registriert. Das für diesen Eintrag vorgesehene TLS Zertifikat wird auf allen beteiligten Systemen der Domäne vorgehalten. Es wird empfohlen, das Wurzelzertifikat der UCS Domäne auf allen Rechnern, die Single Sign-On nutzen, zu installieren.
Es besteht die Möglichkeit, die SAML-Authentifizierung mit der Kerberos Anmeldung zu verknüpfen. Das bedeutet, dass sich Nutzer mit einem gültigen Kerberos Ticket, z.B. nach einer Anmeldung an Windows oder Linux, ohne eine erneute manuelle Authentifizierung am Identity Provider anmelden können.
Um die Kerberos Authentifizierung am Identity Provider zuzulassen, muss die Univention Configuration Registry Variable saml/idp/authsource
von univention-ldap
auf univention-negotiate
gesetzt werden. Die Webbrowser müssen entsprechend so konfiguriert werden, so dass das Kerberos Ticket an den SAML Identity Provider übertragen wird. Im folgenden beispielhaft für Firefox und den Internet Explorer / Microsoft Edge:
- Mozilla Firefox
In der erweiterten Firefox Konfiguration, diese ist erreichbar über die Eingabe von
about:config
in der Firefox Adresszeile, muss bei der Optionnetwork.negotiate-auth.trusted-uris
die Adresse des Identity Providers eingetragen werden, also in der Standardeinstellungucs-sso.[domainname]
.- Microsoft Internet Explorer; Microsoft Edge
In der Systemsteuerung müssen die Internetoptionen geöffnet werden und dort wird unter die Adresse des Identity Providers hinzugefügt, also in der Standardeinstellung
ucs-sso.[domainname]
.
Die Kerberos Authentifizierung kann auf bestimmte IP Subnetze beschränkt werden, indem die Univention Configuration Registry Variable saml/idp/negotiate/filter-subnets
beispielsweise auf 127.0.0.0/16,192.168.0.0/16
gesetzt wird. Dies ist besonders nützlich, um zu verhindern, dass für Clients, die nicht zur UCS-Domäne gehören, ein Dialog für den Login angezeigt wird.
3.8.1. Anmelden per Single Sign-On#
Die Aktivierung von Single Sign-On für das Portal wird in Anmelden beschrieben. Dafür muss ucs-sso.[Domain name]
erreichbar sein. Anmeldedaten des Domänenkontos verwendet. Für den Login direkt am UCS-System (also ohne Single Sign-On) gelangt man über den Link Ohne Single Sign-On anmelden.
Über die Datei /usr/share/univention-management-console-login/css/custom.css
kann das Design des Anmeldedialogs angepasst werden. Diese Datei wird niemals automatisch überschrieben.
Andere Webdienste leiten ebenfalls auf die Anmeldeseite des UCS Identity Providers weiter, wenn ein Single Sign-On durchgeführt wird. Nach erfolgreicher Authentifizierung wird der Benutzer wieder auf die Seite des Webdienstes gesendet werden. Diese Dienste müssen, wie in Hinzufügen eines neuen externen Service Providers beschrieben, registriert werden.
Der Single Sign-On an einem Dienst kann auch vom UCS Identity Provider initiiert werden. Dies erspart den Umweg, zunächst den externen Dienst selbst aufzurufen und sich von dort zur Authentifizierung weiterleiten zu lassen. Dazu muss der Identity Provider mit einem Link der Form https://ucs-sso.[domainname]/simplesamlphp/saml2/idp/SSOService.php?spentityid=[Service provider identifier]
aufgerufen werden.
3.8.2. Hinzufügen eines neuen externen Service Providers#
Die am UCS Identity Provider registrierten Service Provider können über das UMC-Modul SAML Identity Provider verwaltet werden. Benutzer müssen freigeschaltet werden, bevor sie sich am UCS Identity Provider für einen Dienst authentifizieren können. Service Provider können auch für Gruppen aktiviert werden, sodass sich alle Benutzer in dieser Gruppe für diesen Dienst authentifizieren können. Auf dem Reiter Konto eines Benutzers, oder dem Reiter Allgemein einer Gruppe, muss dazu unter SAML Einstellungen der Service Provider Eintrag hinzugefügt werden.
Um den UCS Identity Provider bei einem SAML Service Provider zu registrieren, wird der öffentliche Teil des SAML-Zertifikats auf dem Service Provider benötigt. Dieses kann über einen Download-Link im UMC-Modul heruntergeladen werden. Andere Service Provider benötigen die XML-Metadaten des Identity Providers in Form eines Datei-Uploads. In der Standardkonfiguration kann die XML-Datei unter der URL https://ucs-sso.[domainname]/simplesamlphp/saml2/idp/metadata.php
heruntergeladen werden.
Die folgenden Attribute können beim Anlegen eines neuen Service Provider-Eintrags konfiguriert werden.
Attribut |
Beschreibung |
---|---|
Service Provider aktivieren |
Ist diese Option gesetzt, wird die Konfiguration des Service Providers aktiviert und steht für die Anmeldung bereit. |
Bezeichner des Service Providers |
Definiert den internen Namen des Service Providers. Dieser wird später am Benutzerobjekt angezeigt und ausgewählt, um Benutzer für die Verbindung freizuschalten. Der Bezeichner kann später nicht mehr geändert werden. |
Antwort an diese Service Provider URL nach dem Login |
Nach dem erfolgreichen Login an UCS wird der Browser des Benutzers zurück zum Service Provider geleitet. Die Weiterleitung erfolgt an die hier angegebene URL. |
Single Logout URL des Service Providers |
Service Provider können einen URL Endpunkt anbieten, mit dem die Session am Service Provider beendet werden kann. Loggt sich der Benutzer am UCS Identity Provider aus, wird über die hier übergebene URL eine Abmeldung am Service Provider durchgeführt. |
Format des |
Der Wert |
Name des Attributs, das als |
Hier kann das LDAP Attribut eingetragen werden, das für eine eindeutige Identifizierung des Benutzers am Service Provider verwendet wird, beispielsweise |
Name der Organisation des Service Providers |
Der hier eingetragene Wert wird auf der UCS Single Sign-On Anmeldeseite angezeigt. Dem Benutzer wird so dargestellt, für welchen Dienst er sich authentifiziert. |
Beschreibung dieses Service Providers |
Der hier eingetragene Wert wird auf der UCS Single Sign-On Anmeldeseite angezeigt. Hier kann eine längere Beschreibung über den Dienst angegeben werden, der auf der Login Seite in einem eigenen Absatz angezeigt wird. |
Attribut |
Beschreibung |
---|---|
URL zur Datenschutzrichtlinie des Service Providers |
Wird hier eine URL eingetragen, wird dem Benutzer ein Link zu dieser Seite auf der UCS Identity Provider-Login-Seite angezeigt. |
Erlaube die Übertragung von LDAP Attributen an den Service Provider |
Standardmäßig überträgt der UCS Identity Provider nur das auf dem Reiter Allgemein angegebene |
Der Wert des |
Sollen die übertragenen Attribute mit einem besonderen Format übertragen werden, kann dieser hier eingetragen werden. Beispiel: |
Liste der zu übermittelnden LDAP-Attribute |
Hier kann jedes zu übertragende LDAP-Attribut eingetragen werden. Zu jedem dieser Attribute können ebenfalls ein oder mehrere Service Attribut-Namen im nebenstehenden Feld definiert werden. Diese dienen zur Übersetzung des LDAP Attribut-Namen für den Service-Provider. Mehrere Einträge müssen durch Kommata getrennt werden. Damit der UCS Identity Provider die angegebenen Attribute verarbeiten kann, müssen sie zusätzlich am LDAP Objekt |
3.8.3. Erweiterte Konfiguration#
In manchen Umgebungen kann es erforderlich sein, dass der UCS Identity Provider mehrere logische Identity Provider Instanzen bereitstellt. Die logische Trennung wird erreicht, indem der Identity Provider unterschiedliche URIs als Endpunkt anbietet.
Der standardmäßig eingerichtete Endpunkt ist https://ucs-sso.[domainname]/simplesamlphp/saml2/idp/metadata.php
. Weitere Einträge können durch das Setzen von Univention Configuration Registry Variablen in der Form saml/idp/entityID/supplement/[identifier]
auf true
erzeugt werden. Diese müssen auf allen Servern, die den UCS Identity Provider zur Verfügung stellen, gesetzt werden. Typischerweise sind dies der Primary Directory Node und alle Server der Rolle Backup Directory Node. Anschließend muss der apache2 Dienst neu geladen werden.
Um beispielsweise einen weiteren Eintrag unter der URI https://ucs-sso.[domainname]/simplesamlphp/[secondIDP]/saml2/idp/metadata.php
einzurichten, muss die Univention Configuration Registry Variable saml/idp/entityID/supplement/secondIDP
=true
gesetzt werden.