privacyIDEA Workshop – Teil 4 Keycloak an privacyIDEA anbinden

Ein Gastbeitrag von Cornelius Kölbel 6 min Lesedauer

Anbieter zum Thema

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.(Bild:  janews094 - stock.adobe.com)
Mit der Open-Source-MFA-Lösung privacyIDEA lassen sich FIDO2-Token zentral verwalten und an unterschiedlichen Applikationen zur Anmeldung nutzen.
(Bild: janews094 - stock.adobe.com)

In den ersten drei Teilen unseres privacyIDEA-Workshops haben wir ein privacyIDEA-System installiert und einen TOTP-Token ausgerollt, dann mit FreeRADIUS ein VPN-System angebunden und uns schließlich die Richtlinien in privacyIDEA angesehen.

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.

Am Keycloak mit zwei Faktoren anmelden

Nach erfolgreicher Anbindung an privacyIDEA wird der Anwender bei der Anmeldung an Keycloak zur Eingabe eines OTP-Wertes aufgefordert.(Bild:  NetKnights)
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.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zur IT-Sicherheit

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

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

Damit WebAuthn und TOTP gleichzeitig funktionieren, erstellen wir außerdem eine Authentication-Policy:

Name: AuthScope: auth Actions: + otppin=userstore + preferred_client_mode=webauthn interactive + challenge_response=totp

Ü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)
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)
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.

Login mit FIDO2

Nach dem Login wird der Benutzer aufgefordert, die Anmeldung mit seinem Authenton-Token zu bestätigen.(Bild:  NetKnights)
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 Authentifizierungs­mechanismen, 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.

(ID:50399595)