Evaluierung Datenfabrik Identity Federation
Überblick
Im folgenden wird beschrieben, wie mehrere OIDC-kompatible IDP als Login-Quelle über einen Identity Broker angebunden werden können. Hintergrund: die Menge der angenommenen Nutzer speist sich oft nicht aus einem einzigen Identity-Provider, sondern kann aus mehreren resultieren. Im Extremfall sind die Nutzer nicht einmal in einem anbindbaren Identity-Provider vorhanden. Nicht gangbar ist der Weg in den Anwendungen selbst mehrere Identity Provider anzubinden, da dies in vielen Fällen einfach nicht vorgesehen ist oder Custom Implementierung bedeuten würde.
Hypothese: sowohl Keycloak SH als auch der Datenfabrik-eigene Keycloak können zum Login für die Anwendungen der Datenfabrik genutzt werden.
OIDC-Ablauf
- Authorisierungsanfrage
- Der Service Provider (SP) leitet den Benutzer mit einer OIDC-Authorisierungsanfrage zum Identity Broker um.
- Auswahl des Identity Providers -Der Identity Broker zeigt dem Benutzer eine Auswahl an möglichen Identity Providern (IdPs).
- Authentifizierung
- Der Broker leitet den Benutzer zum Authorisierungsendpunkt des gewählten IdP weiter.
- Der Benutzer authentifiziert sich beim IdP (z. B. mit Benutzername und Passwort).
- Austausch des Authorisierungscodes
- Der IdP gibt einen Authorisierungscode an den Broker zurück.
- Der Broker tauscht den Code gegen ein ID-Token (und optional ein Access Token) aus.
- Übermittlung der Federation-Assertion
- Der Broker sendet das ID-Token an den Service Provider.
- Der SP validiert das Token (Signatur, Claims) und gewährt Zugriff.

Bewertung
Vorteile
- Broker kann im Ausnahme-Fall auch die Identity Provider Rolle übernehmen, falls die Nutzer nicht in bereits vorhandenem und anbindbaren IdP existieren
- erhöhte Flexibilität weitere Identity Provider jederzeit nachträglich anzubinden
- Gruppen/Rollen angeschlossener IdP können über entsprechende Mapper harmonisiert werden
Nachteile
- u.U. aufwändige Entwicklung & Maintenance von Mappings zur Normalisierung der User
- Weitere betriebliche Komponente kommt hinzu und muss aktuell gehalten werden
- Datenschutz- und -Sicherheitsanspruch erhöht sich (jeder Nutzer wird mit Kern-Daten auch in föderierendem IdP/Broker angelegt)
- evtl. Schaffung von Parallel-Strukturen zum Projektziel von Keycloak SH
- falls der Broker auch gleichzeitig als Identity Provider genutzt wird: Prozess für Verwaltung der Nutzerkonten ist notwendig
Entscheidung für den Datenfabrik Pilot
Trotz der oben aufgeführten Nachteile wurde entschieden, dass in der Datenfabrik der Projekt-Keycloak sowohl als Broker (zu Keycloak SH) als auch Identity Provider genutzt wird. Konten im Datenfabrik Projekt-Keycloak sollten dabei nur im Ausnahmefall und wenn kein Weg via Keycloak SH möglich ist, angelegt werden.

- Benutzer ist eine externe Person, die auf eine geschützte Anwendung der Datenfabrik zugreifen möchte.
- Service Provider (SP) als Komponente der Datenfabrik bietet den Dienst an, benötigt aber eine Authentifizierung.
- Identity Broker vermittelt zwischen SP und einem oder mehreren Identity Providern. Wäre Teil der Datenfabrik.
- Identity Provider (IdP) authentifiziert den Benutzer und gibt Identitätsinformationen zurück. Eigentlichr Identitätsquelle, kann aber auch wieder ein Broker sein.