Ein neues IAM für Abraxas Informatik AG auf Basis von Keycloak
Java, Spring Boot, Keycloak, Microsoft SQL Server
Im Rahmen des Projeks soll ein neues IAM für die Abraxas Informatik AG entwickelt werden, welches einerseits auf einer bereits bestehenden Lösung (z.B. Keycloak, Shibboleth, etc.) aufbaut und andererseits die bereits bestehende Datenbank aus dem Vorgängersystem einbezieht, damit aus Nutzerperspektive keine grossen Umstellungsarbeiten nötig sind. Weiter soll sich die Umsetzung so nahe wie möglich an der gewählten Lösung orientieren und Erweiterungen sollen in einer Weise implementiert werden, welche Updates der verwendeten Basis immer noch zulässt.
Die Abraxas Informatik AG verwendet eine IAM Lösung aus Eigenentwicklung, um in den für Kunden entwickelten Applikationen Authentisierungs- und Autorisierungsfunktionalitäten effizient umzusetzen. Die derzeitige Lösung ist jedoch mit den wachsenden Anforderungen immer komplexer geworden und neue Erweiterungen erfordern teilweise unverhältnismässigen Aufwand. Weiter ist es mit dem IAM aus Eigenentwicklung nicht möglich, von einer Fülle von öffentlichen Erweiterungen eines bestehenden Ökosystems zu profitieren und die Kontrolle und Instandhaltung der Sicherheit fällt vollumfänglich auf die Abraxas.
Für die Umsetzung des neuen IAM Systems wurde als Folge einer umfassenden Anforderungs- und Vergleichsanalyse zusammen mit allen Projektbeteiligten die Entscheidung für Keycloak als Basis gefällt. Keycloak wurde in eine auf Spring Boot basierte Webapplikation eingebettet, welche verschiedene Erweiterungen für Keycloak bereitstellt, ohne dass der Keycloak Source Code direkt verändert wurde. Dies stellt wiederum sicher, dass Keycloak aktualisierbar bleibt, und somit ggf. nur Anpassungen der Erweiterungen nötig sind, falls sich die APIs von Keycloak ändern.
Für die Einbindung von bestehende(n) Datenbank(en) wurde eine abstrakte und eine darauf aufbauende konkrete Referenz-Implementierung erstellt, damit die bestehenden Daten aus der Datenbank des Vorgängersystems (basiert auf Microsoft SQL Server) in Keycloak verwendbar sind und zukünftig eventuell noch weitere externe Datenbanken angebunden werden können.
Zudem wurde der bestehende Notification Service der Abraxas AG angebunden, um die 2-Faktor Authentifizierung per SMS oder Telefon in Client-Applikationen zu ermöglichen.
Naomi Dhanapal, Gian-Reto Tarnutzer
Martin Gwerder, martin.gwerder@fhnw.ch