Achtung:
Störungen oder Ausfälle durch unsachgemäße Einstellungen. Lassen Sie die beschriebenen Komponenten nur von erfahrenem Fachpersonal einrichten. Sichern Sie vorab einen Snapshot der Anlage. Kontaktieren Sie im Zweifelsfall den UCware Support.
Dieser Artikel setzt Kenntnisse zu den folgenden Themen voraus:
Ab Version 5.2 nutzt der UCware Server SimpleSAMLphp als Service Provider, um sich bei Bedarf in eine bestehende SSO-Infrastruktur zu integrieren. In diesem Fall müssen sich Benutzer abhängig von den Richtlinien ihrer Institution nicht erneut bei UCware authentifizieren, wenn sie bereits bei einem anderen teilnehmenden Dienst angemeldet sind (und umgekehrt).
SimpleSAMLphp wird automatisch mit Version 5.2 des UCware Servers ausgeliefert bzw. beim Update aus den Paketquellen installiert.
Die Integration von SimpleSAMLphp als Service Provider (SP) innerhalb einer SSO-Infrastruktur erfordert den gegenseitiger Austausch von Metadaten nach SAML-Standard mit dem jeweiligen Identity Provider (IdP). Kontaktieren Sie dazu vorab den Administrator des IdPs und stellen Sie sicher, dass die Daten zum Zeitpunkt der Einrichtung übergeben bzw. entgegengenommen werden können.
Darüber hinaus müssen die beim IdP registrierten Externen IDs der zu authentifizierenden Benutzer und das Attribut bekannt sein, mit dem der IdP erstere abgleichen soll. Dieses Attribut muss für Authentifizierungsanfragen des SPs freigegeben sein.
Hinweis:
Bei der Installation legt SimpleSAMLphp automatisch den Benutzer admin
an und speichert das zugehörige Passwort für den Zugang zur Weboberfläche in der Datei /var/lib/simplesamlphp/secrets.inc.php
auf dem UCware Server.
Führen Sie die folgenden Schritte aus:
ln -s /etc/nginx/locations.d/03-saml.conf /etc/nginx/https.d/ ln -s /etc/nginx/locations.d/90-simplesamlphp.conf /etc/nginx/https.d/ systemctl reload nginx
Hinweis:
Dafür eignen sich sowohl selbst- als auch CA-signierte Zertifikate. Legen das Zertifikat und den Schlüssel standardmäßig unter /etc/simplesamlphp/ssl
ab.
Ein selbstsigniertes Zertifikat können Sie wie folgt im Standardverzeichnis bereitstellen:
cd /etc/simplesamlphp/ssl/ openssl req -newkey rsa:2048 -new -x509 -days 3652 -nodes -text -out ucware.crt -keyout ucware.key
/etc/simplesamlphp/config.php
die folgende Zeile:'certdir' => '/etc/simplesamlphp/ssl/',
Um Authentifizierungsanfragen senden und entsprechende Antworten erhalten zu können, muss der SP mit den Metadaten des IdPs konfiguriert werden und umgekehrt.
Führen Sie dazu die folgenden Schritte aus:
/etc/simplesamlphp/authsources.php
. 'shibboleth' => array( 'saml:SP', 'privatekey' => 'ucware.key', 'certificate' => 'ucware.crt', 'idp' => 'https://shibboleth.local/idp/shibboleth', ),
Hinweis:
Aufbau und Inhalt des Eintrags hängen vom konkreten Anwendungsszenario und insbesondere vom IdP ab. Detaillierte Informationen dazu finden Sie in der SimpleSAMLphp-Doku. Die folgenden Beispiele beziehen sich auf den Austausch mit einem Shibboleth-Server. shibboleth.local
und ucware.local
sind dabei als Platzhalter zu verstehen.
/etc/simplesamlphp/metadata/saml20-idp-remote.php
.https://ucware.local/simplesamlphp/admin/metadata-converter.php
https://ucware.local/simplesamlphp/module.php/core/frontpage_federation.php
Unter /etc/simplesamlphp/config.php können Sie die Konfiguration von SimpleSAMLphp bei Bedarf anpassen. Erläuterungen zu den einzelnen Optionen finden Sie direkt in der Datei.
Um beispielsweise die Gültigkeitsdauer von Einmalanmeldungen anzupassen, ändern Sie den Wert für die Option session.duration:
'session.duration' => 8 * (60 * 60),
Der eingetragene Wert entspricht der Gültigkeitsdauer pro Einmalanmeldung in Sekunden. Im Beispiel beträgt diese 28800 Sekunden bzw. 8 Stunden.
Hinweis:
Stellen Sie sicher, dass der Wert für session.duration
kleiner ist als für die Option session.cookie.lifetime
. Letzterer bestimmt die Gültigkeitsdauer des Sitzungs-Cookies im Browser bzw. im nativen UCC-Client.
Nach dem erfolgreichen Austausch der Metadaten sollten Sie sich testweise beim IdP authentifizieren.
Gehen Sie wie folgt vor:
https://ucware.local/simplesamlphp/module.php/core/authenticate.php
Wenn Sie erfolgreich authentifiziert werden, wird die Statusseite von SimpleSAMLphp angezeigt. Das Attribut zur Authentifizierung von Benutzern wird hier unter Ihre Attribute angezeigt.
Hinweis:
Übernehmen Sie das Attribut exakt in der hier angezeigten Form zur Einrichtung eines SAML-Backends auf dem UCware Server.
Hinweis:
Sobald Sie ein Authentifizierungs-Backend vom Typ SAML eingerichtet haben, blendet der UCware Server die Eingabemaske für lokale Anmeldungen am UCC- und Admin-Clients standardmäßig aus. Dies gilt auch für Benutzer, die ihre lokalen Zugangsdaten behalten. In diesem Fall lässt sich die Eingabemaske über die URL des Clients mit angehängtem #local
aufrufen.
Wenn Sie SimpleSAMLphp konfiguriert und getestet haben, können Sie im Admin-Client ein Backend zur Authentifizierung via SAML einrichten.
Gehen Sie dazu wie folgt vor:
Die verfügbaren Optionen entsprechen den Einträgen in der authsources.php.
Zur korrekten Form das Attributs beachten Sie den Abschnitt SimpleSAMLphp testen.
Dadurch werden die eingegebenen Benutzerdaten bei jeder Anmeldung über die API (bzw. im UCC-Client) zur Prüfung an den Service Provider weitergereicht. Dies gilt auch, wenn der Benutzer bereits angemeldet ist.
Dadurch wird die Anmeldeseite des SSO-Systems immer im Webbrowser geöffnet. Dies gilt auch für Benutzer des nativen UCC-Clients.
Wenn Sie ein Backend für die Authentifizierung via SAML eingerichtet haben, können Sie es den Benutzern des UCware Servers zuweisen. Dabei handelt es sich um eine individuelle Einstellung, sodass Anmeldungen mit lokalen Zugangsdaten bei Bedarf weiterhin möglich sind – beispielsweise für Administratoren.
Um die Authentifizierung via SAML für einen Benutzer zu aktivieren, gehen Sie wie folgt vor:
Hinweis:
Dadurch wird das lokale Benutzerpasswort aus der Datenbank des UCware Servers gelöscht.