Im vierten Teil der Workshop-Reihe zu privacyIDEA zeigen wir, wie man den Open Source Identity Provider Keycloak an privacyIDEA anbindet und damit den vollen Mehrwert des zentralen Managements in privacyIDEA nutzt.
Mit der Open-Source-MFA-Lösung privacyIDEA lassen sich FIDO2-Token zentral verwalten und an unterschiedlichen Applikationen zur Anmeldung nutzen.
In vierten Teil dieses Workshops wollen wir den Open Source Identity Provider Keycloak an privacyIDEA anbinden. Man mag sich fragen: Warum? Keycloak bietet doch seine eigenen, internen zweiten Faktoren. Doch der Mehrwert des zentralen Managements in privacyIDEA wird nun gerade auch hier ersichtlich. Als Administrator binden wir Keycloak oder jedes weitere System an privacyIDEA an ohne, dass dabei eine Interaktion mit den Benutzern erforderlich wäre. Die Benutzer nutzen ihre bereits ausgerollten zweiten Faktoren einfach weiter auch für die Anmeldung an Keycloak.
Wir gehen davon aus, dass im Netzwerk bereits eine Keycloak-Installation vorhanden ist, die eine einfache Passwort-Authentifizierung gegen LDAP/AD macht. Durch die Installation des privacyIDEA Keycloak Plugins kann der zweite Faktor nun gegen privacyIDEA geprüft werden. Neben dem Keycloak Plugin stellt das privacyIDEA Projekt auch Plugins für andere IdPs bereit: Microsoft ADFS, Shibboleth, Gluu und SimpleSAMLphp.
privacyIDEA Keycloak Plugin installieren
Das privacyIDEA Keycloak Plugin ist als jar von Github verfügbar. Dabei ist zu beachten, dass es für ältere Keycloak-Versionen spezielle Builds gibt. In unserem Beispiel gehen wir von einem bereits existierendem Keycloak Version 25 aus. Von Github laden wir die Datei PrivacyIDEA-Provider-v1.4.0.KC22.jar herunter und folgen der einfachen Anleitung. Je nach Keycloak-Installation oder Betriebssystem müssen Sie die Pfade ggf. anpassen.
cd /opt/keycloak/keycloak-25.0.1/providers/wget https://github.com/privacyidea/keycloak-provider/releases/download/v1.4.0/PrivacyIDEA-Provider-v1.4.0.KC22.jarcd /opt/keycloak/keycloak-25.0.1/binkill -s TERM <pid>./kc.sh build./kc.sh start
Jetzt ist der neue Authentication Provider im Keycloak verfügbar und kann in den Flows genutzt werden.
Keycloak für den zweiten Faktor mit privacyIDEA konfigurieren
Wir nehmen an, dass Sie derzeit einen sehr einfachen Browser Flow konfiguriert haben, der mit Username und Passwort gegen das Active Directory authentifiziert.
Keycloak konfigurieren
Hier wollen wir nun zusätzlich den zweiten Faktor, der gegen privacyIDEA läuft, hinzufügen. Innerhalb des Steps „SecInsider-Flow forms“ fügen wir einen Schritt hinzu. Wenn das privacyIDEA Plugin richtig installiert ist, können wir hier „privacyIDEA“ auswählen. Im Flow markieren wir den Schritt „privacyIDEA“ als „required“. Über das Zahnrad können wir nun den Schritt „privacyIDEA“ konfigurieren.
Als sehr einfache Konfiguration geben wir nun die „privacyIDEA URL“ ein. Solange wir keine FQDNs nutzen Zertifikate verteilt haben, lassen wir nur zum Test „Verify SSL“ noch ausgeschaltet. Die Konfiguration speichern wir ab. So haben wir nun schon das Login mit dem zweiten Faktor gegen privacyIDEA erzwungen.
Nach erfolgreicher Anbindung an privacyIDEA wird der Anwender bei der Anmeldung an Keycloak zur Eingabe eines OTP-Wertes aufgefordert.
(Bild: NetKnights)
Wenn wir uns nun an Keycloak anmelden, muss der Benutzer im ersten Schritt wie gehabt seinen Benutzernamen und sein Passwort eingeben. Daraufhin wird er zur Eingabe eines OTP-Wertes aufgefordert. Dies kann er mit dem bereits ausgerollten TOTP-Token tun. Den bereits ausgerollten TOTP-Token haben wir also innerhalb kürzester Zeit am Keycloak nutzbar gemacht und somit unser Single-Sign On signifikant abgesichert.
Weitere Tokentypen zur Anmeldung an Keycloak
Anders als die Anmeldung am Netscaler oder an anderen RADIUS-basierten Applikationen sind mit der Anmeldung im Browser an Keycloak mit privacyIDEA auch andere Tokentypen nutzbar, die parallel mit TOTP betrieben werden können.
So ist bspw. die Anmeldung via PUSH Token oder WebAuthn/FIDO2 und in der nächsten Plugin-Version auch Passkey verfügbar.
Mit dem PUSH Token wird dem Benutzer eine signierte Nachricht auf das Smartphone geschickt, ob er sich anmelden möchte. Dies kann der Benutzer bestätigen, so dass er daraufhin automatisch angemeldet wird.
Yubikeys, Authenton und andere FIDO2-Keys können im privacyIDEA Server durch den Admin oder durch Benutzer ausgerollt und im privacyIDEA Server zentral verwaltet werden. Diese können dann für die angeschlossenen Applikationen zur Authentifizierung verwendet werden.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
Webauthn oder FIDO2
Für die zusätzliche Authentifizierung mit einem FIDO2-Token erstellen wir noch zwei Richtlinien in privacyIDEA.
Bitte beachten Sie, dass WebAuthn verlangt, dass beim Ausrollen der Browser dem Zertifikat von privacyIDEA vertrauen muss. Hierzu muss im Apache ein vertrauenswürdiges Zertifikat hinterlegt werden. Eine Standardaufgabe, auf die wir hier nicht näher eingehen.
Wir erstellen in privacyIDEA dazu eine Enrollment-Policy:
Name: Webauthn-enrollScope: enrollActions: + webauthn_relying_party_id=office.netknights.it (oder von Ihnen angepasst) + webauthn_relying_partny_name=Secins
Über die otppin Aktion regeln wir, dass eine Challenge ausgelöst wird, wenn das Keycloak Plugin das AD-Passwort an privacyIDEA sendet.
Wir erstellen in privacyIDEA eine Authentication-Policy für Webauthn.
(Bild: NetKnighhts)
Über „challenge_response=totp“ sagen wir privacyIDEA, dass es auch TOTP Token als Challenge-Response-Token behandeln soll.
„preferred_client_mode“ wird vom Keycloak Plugin ausgewertet. Wenn ein Benutzer mehrere Tokentypen hat, sagt diese Richtlinie, wie sich das Plugin per default verhalten soll. In unserem Fall bedeutet das, falls der Benutzer einen WebAuthn-Token und einen TOTP-Token (der interaktiv funktioniert) hat, dann soll das Plugin erst die Anmeldung über WebAuthn anbieten.
WebAuthn ausrollen
Nun rollen wir als Administrator für den Benutzer „cornelius“ einen WebAuthn-Token aus.
WebAuthn ausrollen
Das funktioniert, wie mit jedem anderen Token auch, indem wir den Tokentyp auswählen. In unserem Fall stecken wir einen USB FIDO2 Key, einen Authenton, in den USB-Port. Der Browser fordert uns auf, mit einem Druck den Rollout zu bestätigen. Die grundlegende Eigenschaft, dass es sich um einen Authenton-Token handelt, wird erfasst und im privacyIDEA für die Verwaltung hinterlegt. Nun ist der FIDO2 Token überall nutzbar.
Weitere Konfigurationen des Keycloak Plugins
Um gewissen Login-Szenarien im Keycloak-Plugin abzubilden, kann der Administrator im privacyIDEA Keycloak Plugin weitere Konfigurationen vornehmen.
Weitere Konfigurationen im privacyIDEA Keycloak Plugin.
(Bild: NetKnighhts)
So können wir bspw. konfigurieren, wie das Plugin eine Challenge-Response-Authentifizierung startet. Dies ist für die Anmeldung via PUSH-Token, via SMS oder eben auch mittels WebAuthn notwendig. Hierzu muss das Plugin mit privacyIDEA kommunizieren, bevor der Benutzer nach seinem zweiten Faktor gefragt wird.
Das Plugin kennt drei Möglichkeiten, diese Authentifizierung einzuleiten. Dies muss jeweils im Zusammenspiel mit der Konfiguration des privacyIDEA-Servers betrachtet werden.
Das Plugin kann ein leeres Passwort oder ein statisches Passwort an privacyIDEA senden.
Das Plugin kann einen Service-Account benutzen, um via „triggerchallenge“ die Challenge-Response-Authentifizierung einzuleiten.
Wir nutzen die dritte Möglichkeit, die mit der vorher konfigurierten otppin-Richtlinie funktioniert. Das Plugin sendet das eingegebene Benutzerpasswort an privacyIDEA für die Verifizierung.
Nach dem Login wird der Benutzer aufgefordert, die Anmeldung mit seinem Authenton-Token zu bestätigen.
(Bild: NetKnights)
Nun wird der Benutzer, nachdem er seinen Benutzernamen und sein Passwort eingegeben hat, dazu aufgefordert, die Anmeldung mit seinem Authenton-Token zu bestätigen.
privacyIDEA unterstützt viele verschiedene Tokentypen und Authentifizierungsmechanismen, so dass sich flexibel sehr unterschiedliche Anmeldeszenarien abbilden lassen. In diesem Beispiel haben wir gezeigt, dass sich FIDO2-Token zentral in privacyIDEA verwaltet werden können und an unterschiedlichen Applikationen zur Anmeldung nutzen lassen.
Gleichzeitig können verschiedene Login-Mechanismen parallel genutzt werden, so dass manche Benutzergruppen mit einfacheren oder preiswerteren Token ausgestattet werden können und andere wiederum mit sichereren oder teureren. Auch Migrationsszenarien oder der Wechsel von Tokentypen über die Jahre lässt sich so problemlos abbilden.
Nächste Schritte in der Workshop-Reihe
Mit privacyIDEA lassen sich also auch sehr flexible Login-Szenarien an Webseiten oder Webdiensten via Single-Sign On abbilden. Somit können Sie ihre eigene, flexible Infrastruktur bauen und überlegen, sich von proprietären Cloud-Diensten zu verabschieden. Im nächstenTeil der Workshop-Reihe betrachten wir dann, wie wir all dass, ganz einfach für die Anmeldung an Windowssystem nutzen können. So dass Sie ein zentrale MFA-Verwaltung für VPN-Zugänge, Single-Sign On und Webdienst-Zugänge und lokale Systemlogins haben.
Über den Autor: Cornelius Kölbel ist CEO von NetKnights.