
Wir setzen Keycloak als Open Source Software seit vielen Jahren erfolgreich für die Authentifizierung und Authorisierung in Organisationen mit komplexen Gruppen und Rollen ein. So wurden bereits mehrere Keycloak-Instanzen in Kundenprojekten integriert und umgesetzt. Für das Usermanagement von unserem Cloud Service Portfolio unterhalten wir eine eigene Instanz.
Bei fairkom steht fairlogin als Single Sign On im Mittelpunkt, eine Anmeldung mit anderen Identity Providern (IdPs), wie Google oder AppleID, ist ebenfalls möglich. Akademische Einrichtungen haben einen Mechanismus mit grossen xml-Dateien eingeführt. Diese Dateien enthalten alle Metainformationen zur User Authentifizierung und werden von nationalen Netzwerkzentren wie ACONET in Österreich zusammengeführt und gepflegt.
Keycloak verfügt über keinen eingebauten Meachnismus, um solche Metadaten-Dateien zu lesen. Wir konnten dies mit einem Proxy- und Discovery-Dienst lösen. Dazu interagiert die Komponente Keycloak mit einem SATOSA-Proxy sowie einem Discovery Service, um den User gegenüber dem ACONET-Verbund unter Verwendung eines OIDC-zu-SAML-Überbrückungsmeachanismus zu authentifizieren.
Ablauf:
- User: versucht, auf eine geschützte Ressource zuzugreifen.
- Keycloak: empfängt die Anfrage und leitet diese an den SATOSA-Proxy als OIDC-Autorisierungsanfrage weiter.
- SATOSA-Proxy: leitet den User an den Discovery Service (WAYF) weiter, um einen Identity-Provider (IdP) aus der Aconet Federation auszuwählen.
- Discovery Service: der User wählt den jeweiligen IdP aus, dieser wird an den SATOSA-Proxy zurückgegeben.
- IdP: der SATOSA-Proxy leitet eine SAML-Authentifizierungsanfrage an den ausgewählten IdP weiter. Der IdP authentifiziert den User und sendet eine SAML-Antwort zurück.
- SATOSA-Proxy: konvertiert die SAML-Assertion in ein OIDC-Token und sendet dieses an Keycloak zurück.
- Keycloak: gewährt dem User ein Zugriffstoken.
- User: verwendet das Zugriffstoken, um auf die geschützte Ressource zuzugreifen. Keycloak kann das Token zusätzlich gegen den ACONET-Verbund validieren, bevor der Zugriff gewährt wird.
fairapps.net aufrufen und Login auswählen, auf University / Academic org klicken und im Dropdown die akademische Institution wählen. Der User wird zum Anmeldefenster der jeweiligen Institution weitergeleitet.