Willkommen zu unserem vierten Ausflug in die Welt der Univention-Apps! In dieser Blog-Reihe präsentieren wir regelmäßig spannende Anwendungen aus unserem App Center. In diesem Artikel geht es um den Identity Provider (IdP) Keycloak. Die App unterstützt UCS-Administrator*innen dabei, die Authentifizierung und Autorisierung ihrer Benutzer*innen sicher und zentral zu verwalten.

Funktionsumfang der Keycloak-App

Keycloak ist eine Open-Source-Lösung für Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM). Die App bietet Funktionen wie Single Sign-on (SSO), Identity-Broker, Social Login und rollenbasierte Zugriffskontrolle (RBAC). Organisationen, die eine zentrale und sichere Verwaltung ihrer Benutzerzugriffe benötigen, profitieren von der Flexibilität und den umfassenden Features, die Keycloak bietet. Insbesondere UCS-Administrator*innen können mit Keycloak die Effizienz und Sicherheit ihrer IT-Infrastruktur erheblich steigern.

Wie funktioniert Keycloak?

Bestandteile von Keycloak

 

Die Keycloak-App verwendet ein Docker-Image mit zusätzlichen Dateien, die beispielsweise die Synchronisierung von Daten zwischen Instanzen unterstützen, die in derselben Domäne bereitgestellt werden. Keycloak verwendet den UCS-Verzeichnisdienst als Backend für die Benutzerkonten, um die Anmeldeinformationen von Benutzer*innen zu überprüfen. Es delegiert also die Authentifizierung an den UCS LDAP-Verzeichnisdienst und speichert einige Benutzerattribute zur Nutzung. Zur Speicherung der eigenen Konfigurationsdaten nutzt Keycloak eine SQL-Datenbank.
Ein zentraler Bestandteil von Keycloak ist die Unterstützung von SAML und OpenID Connect (OIDC):

  • SAML Identity Provider (SAML IdP): Das ist die SAML-Schnittstelle in Keycloak, die Benutzer-Authentifizierung als Dienst über SAML zur Verfügung stellt. Keycloak kann selbst als SAML IdP fungieren, indem es Benutzeranfragen entgegennimmt und authentifiziert.
  • SAML Service Provider (SAML SP): Das ist die SAML-Schnittstelle in Keycloak, welche die Benutzer-Authentifizierung an einen externen Identity Provider (IdP) auslagert. Das bedeutet, dass Keycloak die Authentifizierung an einen anderen SAML IdP delegiert.

Ähnlich funktioniert die Zusammenarbeit mit OpenID Connect:

  • OIDC Provider (OIDC IdP): Keycloak bietet über diese OIDC-Schnittstelle die Benutzer-Authentifizierung als Dienst an. Keycloak fungiert hier als OpenID Connect Provider und authentifiziert Benutzer.
  • OIDC Relying Party (OIDC RP): Diese OIDC-Schnittstelle in Keycloak delegiert die Benutzer-Authentifizierung an einen externen OpenID Connect Provider. Keycloak fungiert als Client, der die Authentifizierung an einen anderen OpenID Connect Provider auslagert.

Alle Instanzen, die Keycloak zur Authentifizierung eines Benutzers auffordern können, heißen Keycloak-Clients. Dazu gehören alle OIDC Relying Parties und SAML Service Providers.

Keycloak unter UCS installieren

Nach einem Klick auf Installieren im Univention App Center wählen Sie aus dem Drop-down-Menü Rechner für die Installation der App die passende Maschine in Ihrer UCS-Umgebung aus und klicken auf Fortfahren. Keycloak können Sie nur auf UCS-Systemen installieren, die entweder die Systemrolle Primary Directory Node oder Backup Directory Node haben.

Installation der Keycloak-App

 

Im nächsten Dialog richten Sie ein paar grundlegende Dinge ein. So legen Sie fest, ob Keycloak automatisch startet oder nicht (Drop-down-Menü Autostart). Außerdem geben Sie den Fully Qualified Domain Name (FQDN) des UCS-IdP und den dedizierten Pfad an, unter dem Keycloak verfügbar ist. Im unteren Bereich des Dialogs sind bereits einige Optionen zur Apache-Host-Konfiguration und zum DNS-Eintrag für den Keycloak-FQDN in der UCS-Domäne aktiviert. Auch den Loglevel und die Datenbank-Einstellungen können Sie hier verändern. In der Regel ist das nicht erforderlich und Sie können mit einem Klick auf Installation beginnen die Voreinstellungen übernehmen.
Während der Installation wird automatisch eine PostgreSQL-Datenbank für die Speicherung der Keycloak-Konfigurationsdaten eingerichtet. Keycloak verwendet diese Datenbank auch für alle zusätzlichen Installationen der App in der UCS-Domäne. Da diese Standarddatenbank keine Replikation oder eine Art von Failover bietet, können Administrator*innen an dieser Stelle entscheiden, eine andere Datenbank zu nutzen und diese in den App-Settings eintragen (siehe Abschnitt „Keycloak: Ausfallsicherheit und Hochverfügbarkeit“).
Die erste Installation der Keycloak-App in der UCS-Domäne erstellt einen administrativen Benutzer namens admin, dessen Passwort sich in der Datei /etc/keycloak.secret befindet. Mit diesem Account wird die anfängliche Konfiguration von Keycloak erstellt.
Nach Abschluss der Installation zeigt das UCS-Portal für Administrator*innen eine neue Kachel namens Keycloak an. Ein Klick darauf öffnet die Keycloak Admin Console im Webbrowser. Falls bei der Installation nicht anders angegeben, erreichen Sie diese unter der URL https://ucs-sso-ng.$domainname/admin/. Dabei steht $domainname für den Namen Ihrer UCS-Domäne.
In der Voreinstellung können sich alle Benutzer*innen der Gruppe Domain Admins bei der Keycloak Admin Console anmelden.

Domain Admins bei Keycloak anmelden

 

Keycloak-Konfiguration nachträglich verändern

Viele Keycloak-Einstellungen können Sie über UCR-Variablen (System / Univention Configuration Registry) vornehmen; einzelne Settings passen Sie über die App-Einstellungen an. Die App-Einstellungen erreichen Sie über das App Center: Wählen Sie Keycloak aus den installierten Apps aus, klicken rechts auf Installationen verwalten, wählen den Server aus und öffnen aus dem Drop-down-Menü Mehr die App-Einstellungen. Nachdem Sie auf Änderungen anwenden geklickt haben, initialisiert das App Center den Docker-Container für die Keycloak-App neu. Das heißt, dass der laufende Keycloak-Container entfernt und ein neuer Container mit den geänderten Settings auf dem UCS-Rechner gestartet wird.

Keycloak Installation verwalten

 

Die UCS-Entwickler haben in aktuellen Keycloak-Versionen dafür gesorgt, dass Admins den Namen des Keycloak-Endpoints frei wählen können. So ist es möglich, Single Sign-on über das Internet verfügbar zu machen. Auch die Zusammenarbeit mit der Self-Sercive-App wurde verbessert. Der Artikel Neue Features für Keycloak als zukünftigen Standard-Identity-Provider von UCS beschreibt die neuen Funktionen ausführlich. Alle Konfigurationsmöglichkeiten, Tipps und Tricks für den Betrieb finden Sie im Abschnitt Settings des Keycloak-Handbuchs.

Keycloak: Ausfallsicherheit und Hochverfügbarkeit

Es ist möglich, Keycloak mehrfach in einer UCS-Domäne zu installieren. Alle Installationen teilen sich dieselbe Konfiguration, sind dann unter demselben Namen im Netzwerk erreichbar und teilen sich die Login-Sitzungen. Das verteilt die Last auf mehrere Maschinen und sorgt gleichzeitig für eine gewisse Ausfallsicherheit.
Da Keycloak eine zentrale Datenbank zum Speichern der Benutzerdaten verwendet, sollten Admins in Erwägung ziehen, das Datenbanksystem als Cluster zu betreiben, um Keycloak wirklich ausfallsicher und hochverfügbar zu betreiben. Keycloak bietet einen solchen Cluster von Haus aus nicht an; es ist aber wie erwähnt möglich, in den App-Settings eine externe Datenbank einzurichten. Der Betrieb eines Clusters mit den bei Univention Corporate Server enthaltenen Datenbankservern ist möglich, allerdings nicht ganz trivial.

Von SAML/OpenID Connect auf Keycloak umsteigen

Es ist geplant, dass Keycloak die bisherigen Lösungen SimpleSAMLphp und Kopano Konnect ablöst. Spätestens mit Erscheinen von UCS 5.2 wird nur noch Keycloak als IdP zur Verfügung stehen. Der Blogartikel Abkündigung von SimpleSAMLphp und Kopano Konnect – Keycloak wird einziger IDP in UCS 5.2 beantwortet Fragen zum Umstieg.
Wenn Sie derzeit SimpleSAMLphp unter Univention Corporate Server einsetzen, sollten Sie für die nächsten Monate die Migration auf Keycloak einplanen. Wenn Sie eine neue UCS-Umgebung aufsetzen und Single Sign-on implementieren möchten, sollten Sie direkt Keycloak nutzen.
Die UCS-Entwickler stellen ein englisches Handbuch zur Migration von SimpleSAMLphp (SAML) und OpenID Connect Provider zur App Keycloak zur Verfügung. Die Anleitung richtet sich an Administrator*innen, die bereits vor Veröffentlichung von UCS 5.2 auf Keycloak umstellen möchten. Zudem enthalten aktuelle UCS-Versionen das Python-Skript univention-keycloak-migration-status, das alle IdP-Client-Objekt-Einstellungen auf den Primary Directory Nodes sichert und entfernt.

Keycloak erfolgreich einsetzen

Keycloak ist eine leistungsstarke Open-Source-Lösung für die Identitäts- und Zugriffsverwaltung, die UCS-Administrator*innen dabei unterstützt, die Authentifizierung und Autorisierung von Benutzer*innen sicher und zentral zu verwalten.
Haben Sie bereits Erfahrungen mit der Keycloak-App gemacht und eine bestehende Single Sign-on-Lösung migriert? Oder haben Sie Univention Corporate Server ganz neu aufgesetzt und setzen von Anfang an auf Keycloak? Teilen Sie Ihre Erlebnisse und Tipps mit uns und der Community, wir freuen uns auf den Austausch.

Kommentieren Sie diesen Beitrag und besuchen Sie das Forum Univention Help!

 

Bild-Quelle: Icon created by Freepic from flaticon.com

UCS Core Edition jetzt kostenfrei einsetzen!
Zum Downloadbereich

Schreiben Sie einen Kommentar

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