Werde Teil unseres Teams und sorge für mehr Digitale Souveränität!
- Teamleiter IT – Kundenprojekte (m/w/d)
- IT Consultant (m/w/d)
- Senior Backend / Software Developer Python (m/w/d)
- u.v.m.

Mit dem Update auf UCS 5.2 wird Keycloak zum Standard-Identity-Provider für SAML- und OpenID-Connect-Authentifizierung und löst die bisherigen Apps SimpleSAMLphp und Kopano Connect ab. Mehr über die Hintergründe erfahren Sie in unserem Blogartikel Migration des Identity Providers in UCS – Keycloak App jetzt Teil des Supportumfangs. Im ersten Schritt haben wir Keycloak Ende 2022 als unterstützte Univention App freigegeben. Seitdem wurde intensiv daran gearbeitet, die Keycloak App zu einem adäquaten Ersatz für die SimpleSAMLphp Integration zu machen. Wir kommen also bei unserer Mission, Funktionsgleichheit mit unserer SimpleSAMLphp-Integration zu erreichen, stetig voran. Und seit dem ersten Release der Keycloak-App haben wir auch mehrere App-Updates veröffentlicht, die jeweils neue Features in Bezug auf eine reibungslose Integration in UCS und mehr Konfigurierbarkeit bieten.
In diesem Artikel möchten wir Ihnen einen Teil der Arbeit der vergangenen Monate vorstellen.
Inhaltsverzeichnis
Standardmäßig verwendet die UCS Keycloak App einen internen Namen als „Single Sign-on Endpoint“. Für Administratoren, die sich wünschen, dass Single Sign-on über das Internet verfügbar ist, haben wir App-Einstellungen und Dokumentation hinzugefügt, die es erlauben, den Namen des Keycloak Endpoints frei zu wählen.
In der Regel läuft der Keycloak-Server unter einem anderen Namen als das UCS-Portal:
Für dieses Setup müssen einige Voraussetzungen erfüllt sein. Sie müssen über einen öffentlichen DNS-Eintrag für den Namen des Keycloak-Servers verfügen und Sie benötigen ein gültiges Zertifikat für diesen Servernamen. Sobald dies der Fall ist, können Sie das Setup mit den folgenden App-Einstellungen in der Befehlszeile oder mit den UMC-App-Einstellungen für die Keycloak-App konfigurieren.
Weitere Informationen zur Konfiguration eines solchen Setups finden Sie in der Keycloak-Dokumentation.
Alternativ kann der Keycloak-Server auch unter demselben Namen wie das UCS-Portal laufen, aber unter einer anderen URL:
Wir setzen voraus, dass der öffentliche DNS für den Namen des UCS Portals bereits existiert, und dass ein gültiges Zertifikat verwendet wird. Auch hier kann die Konfiguration über die App-Einstellungen in der Keycloak-App vorgenommen werden:
Eine detaillierte Beschreibung finden Sie in unserer Dokumentation.
In beiden Fällen ist die Integration von Let’s-Encrypt-Zertifikaten für den öffentlichen Domainnamen nur eine Frage der Einstellung einiger UCR-Variablen.
Im ersten Fall, in dem der Keycloak-Server unter einem anderen Namen als das UCS Portal/UMC läuft, würde die Let’s-Encrypt-App-Konfiguration wie folgt aussehen:
Diese Einstellungen sorgen dafür, dass Zertifikate für beide Namen verfügbar sind und in der Webserver-Konfiguration verwendet werden. Bei der Keycloak App können die Zertifikate mit konfiguriert werden:
Wenn Keycloak und das UCS Portal/UMC unter demselben Namen laufen, muss die Let’s Encrypt App nur das Zertifikat für diesen einen Namen erwerben:
Und für Keycloak müssen wir nur sicherstellen, dass
gesetzt ist, um anzugeben, dass wir die globale Webserver-Konfiguration für Keycloak verwenden wollen, einschließlich der Zertifikatseinstellungen.
Benutzerpasswörter in UCS können ihre Gültigkeit verlieren. Ist ein Passwort abgelaufen, kann sich der Benutzer nicht mehr anmelden und muss sein Passwort ändern. So wird oft auch bei Onboarding-Workflows vorgegangen, bei denen Benutzer ein Initialpasswort erhalten, dieses aber bei der ersten Anmeldung ändern müssen. Administratoren können die Univention-Directory-Manager-Option „Benutzer muss das Passwort bei der nächsten Anmeldung ändern“ für ein solches Onboarding verwenden. Intern wird dies als abgelaufenes Passwort bewertet.
Wir haben benutzerdefinierte Keycloak-Erweiterungen hinzugefügt, die den Gültigkeitszeitraum des Passworts eines Benutzers während des Logins überprüfen und ihm erlauben, sein Passwort direkt während des Keycloak-Logins zu ändern.
Auch die Integration mit der Self-Service-Registrierung für neue Benutzer wurde verbessert. Mit dieser Self-Service-Registrierung können Benutzer ihre eigenen Konten im UCS IDM erstellen. Um den Vorgang abzuschließen, muss der Benutzer den neuen Account verifizieren (typischerweise mittels eines Tokens, der per E-Mail verschickt wird). In einer der jüngsten Versionen der Keycloak App wurde eine Einstellung hinzugefügt, die den Login für noch nicht verifizierte Benutzerkonten unterbindet. Stattdessen wird der Benutzer zum Self-Service weitergeleitet, wo die Kontoverifizierung abgeschlossen werden kann.
Der kürzlich veröffentlichte Leitfaden macht die Migration von SimpleSAMLphp/Kopano-connect zu Keycloak so einfach und unkompliziet wie möglich. Er enthält eine allgemeine Schritt-für-Schritt-Anleitung sowie einige konkrete Beispiele, wie Apps migriert werden können. Zusammen mit dem Leitfaden haben wir ein Update für UCS veröffentlicht, welches es Kunden ermöglicht, SimpleSAMLphp als Serviceprovider in Keycloak zu nutzen. Dadurch kann Single Sign-on zwischen Diensten, die nach Keycloak migriert wurden, und solchen, die noch SimpleSAMLphp nutzen, noch während der Migration genutzt werden.
Aktuell arbeiten wir an der Funktion, sich mit Kerberos-Tickets in Keycloak zu authentifizieren. Wenn Sie über eine UCS-Domäne mit Client-Arbeitsplatzrechnern verfügen, die während der Benutzeranmeldung Kerberos-Tickets erwerben, können Sie sich mit diesem Kerberos-Ticket bei Diensten authentifizieren, die Keycloak als Identity Provider (IDP) verwenden (vorausgesetzt, der Browser ist so konfiguriert, dass er Kerberos-Authentifizierung zulässt), um eine Anmeldung ohne Passwort zu ermöglichen. Mit diesem Kerberos-Ticket können Sie sich bei Diensten, die Keycloak als IDP verwenden, authentifizieren (vorausgesetzt, der Browser ist so konfiguriert, dass er die Kerberos-Authentifizierung zulässt).
Mit dem Leitfaden für die Migration und dem Kerberos SSO wird die Keycloak-Integration in UCS über alle Funktionalitäten verfügen, die UCS-Benutzer von SimpleSAMLphp kennen – mit weitaus mehr Flexibilität und eigenen Features. Wir hoffen, dass Ihnen dieser Artikel einen guten Überblick verschafft hat. Sollten noch Fragen offen geblieben sein, können Sie diese gerne hier in den Kommentaren oder auf help.univention.com stellen.
Felix Botner ist seit 2009 Open Source Software Engineer bei Univention. Er kümmert sich hauptsächlich um die Weiterentwicklung des Univention App Centers und ist für den Bereich Directory Services bzw. Samba tätig.
Julia hat ihre Auszubildung zur Fachinformatikerin der Anwendungsentwicklung im Juli 2021 bei Univention erfolgreich abgeschlossen und arbeitet nun als Open Source Software Engineer.