Sichere Authentifizierung mit Keycloak

In modernen Unternehmensanwendungen ist der Login weit mehr als nur ein Zugangspunkt – er ist das Herzstück für Sicherheit, Benutzerfreundlichkeit und Integrationsfähigkeit.

Unser internes Tool „Tedras“, das zur Durchführung und Dokumentation von Bewertungsfahrten entwickelt wurde, nutzte bisher ausschließlich Microsoft Entra ID (ehemals Azure Active Directory) für die Anmeldung. Da das System zunehmend auch bei externen Partnern und Kunden auf Interesse stieß, mussten wir unser Authentifizierungskonzept erweitern: Ein zweiter, mandantenfähiger Login war gefragt, ohne dabei Sicherheit oder Einfachheit zu kompromittieren.

Unsere Wahl fiel auf Keycloak, eine Open-Source-Lösung für Identity & Access Management, die sich durch ihre Flexibilität, Standardkonformität und leichte Integration auszeichnet.

Unsere Architektur im Überblick

Das System besteht aus drei zentralen Komponenten:

– iOS-App (Swift, SwiftUI): Erfassung von Bewertungsfahrten mit Video, Sprachkommentar und GPS-Daten

– Backend (Golang, REST, PostgreSQL): Speicherung und Verwaltung aller Sessions, Photos und Videos

– Frontend (React, nginx): Visualisierung und Auswertung der erfassten Fahrtdaten

Die Dienste laufen containerisiert in Docker und werden über Kubernetes orchestriert.

Für die Authentifizierung wurde Keycloak als zentraler Identity-Provider eingebunden.

Wichtige technische Eckpunkte der Integration:

– OIDC-Flows: Beide Authentifizierungsmethoden – Entra ID und Keycloak – basieren auf dem OpenID-Connect-Standard, was eine saubere Trennung und einfache Erweiterbarkeit erlaubt

– Rollen- und Rechteverwaltung: Keycloak ermöglicht es, Benutzergruppen, Rollen und Scopes granular zu definieren

– Token-Validierung im Backend: Das Go-Backend prüft Access Tokens über die Keycloak-JWKS-Schnittstelle und gewährt Zugriff ausschließlich auf freigegebene Ressourcen

– Mandantenfähigkeit: Für jeden Kunden kann ein eigener Realm in Keycloak eingerichtet werden, was getrennte Benutzerverwaltungen und Branding erlaubt

Warum Keycloak?

Wir wollten keine Eigenentwicklung und keine Bastellösung. Die Entwicklung eines eigenen OIDC-basierten Authentifizierungsdienstes ist alles andere als trivial – insbesondere, wenn Sicherheitsanforderungen auf Enterprise-Niveau erfüllt werden müssen.

Ein solcher Dienst muss Token-Flows korrekt implementieren, Refresh-Mechanismen sicher handhaben, Zertifikate regelmäßig rotieren, Multi-Realm-Strukturen unterstützen und dabei noch DSGVO-konform sein. Fehler in diesen Bereichen können schnell kritische Sicherheitslücken bedeuten.

Statt diesen komplexen Weg selbst zu gehen, setzten wir bewusst auf Keycloak – eine bewährte Open-Source-Plattform, die:

– standardbasiert (OIDC, SAML, OAuth2) funktioniert

– in großen Unternehmen und Projekten erprobt ist

– einfach konfigurier- und deploybar bleibt

– keine Lizenzkosten verursacht

– sich nahtlos in bestehende DevOps-Pipelines integrieren lässt

So konnten wir uns auf die eigentliche Produktentwicklung konzentrieren und mussten das Rad nicht neu erfinden.

How-To: Keycloak in Kubernetes deployen

Ein großer Vorteil von Keycloak ist seine unkomplizierte Bereitstellung. Voraussetzung ist ein Kubernetes-Cluster mit kubectl-Zugriff, Helm (mindestens v3) sowie ein Ingress-Controller (z. B. Traefik oder NGINX).

Schritt 1: Helm-Repository hinzufügen

helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update

Schritt 2: Template für Values.yaml erzeugen

Damit du alle konfigurierbaren Werte siehst, kannst du die Standard-Konfiguration des Charts exportieren:

helm show values bitnami/keycloak > values.yaml

Diese Datei enthält sämtliche Parameter, die du an deine Umgebung anpassen kannst – von Datenbank-Credentials über Ingress-Einstellungen bis hin zu Ressourcen-Limits.

Schritt 3: Wichtige Anpassungen in der values.yaml

Für eine einfache, aber produktionsnahe Grundinstallation sollten insbesondere folgende Stellen angepasst werden:

auth:
  adminUser: admin
  adminPassword: "SuperSecret123"

service:
  type: ClusterIP
  port: 8080

ingress:
  enabled: true
  ingressClassName: traefik
  hostname: keycloak.example.com
  path: /auth
  pathType: Prefix
  tls: false

postgresql:
  enabled: true
  auth:
    username: bn_keycloak
    password: "PostgresPass123"
    database: bitnami_keycloak

Schritt 4: Deployment starten

Sobald die Werte angepasst sind, genügt ein einziger Befehl:

helm install keycloak bitnami/keycloak -f values.yaml --namespace keycloak --create-namespace

Nach wenigen Minuten läuft eine vollständige Keycloak-Instanz – inklusive Datenbank, Ingress-Konfiguration und optionalem TLS-Support.

Schritt 5: Erste Anmeldung

Im Browser kannst du nun deine Keycloak-Instanz öffnen:

http://keycloak.example.com/auth

Anschließend loggst du dich mit dem konfigurierten Admin-Benutzer ein, ersetzt den Standard-Administrator und legst erste Realms, Clients und Benutzergruppen an.

Schritt 6: Erweiterungen & Automatisierung

Optional lassen sich Erweiterungen wie:

– Identity Brokering

– Custom Themes

– Realm-Templates

– automatisierte Backups

direkt über Helm-Parameter oder die REST-API konfigurieren. So wird aus einer einfachen Basisinstallation schnell ein produktives IAM-System, das sich vollständig in moderne CI/CD-Pipelines integrieren lässt.

Unser Fazit

Mit der Integration von Keycloak haben wir eine Authentifizierungsarchitektur geschaffen, die sowohl interne Sicherheit als auch externe Skalierbarkeit vereint. Dadurch kann unser System „Tedras“ nicht nur intern, sondern auch bei Kunden effizient eingesetzt werden, ohne neue Benutzerverwaltung oder komplexe IT-Freigaben.

Die Erfahrungen aus diesem Projekt zeigen, dass sich Open-Source-Lösungen wie Keycloak hervorragend in bestehende Cloud- und DevOps-Landschaften integrieren lassen.

Sie planen, externe Partner oder Kunden sicher in Ihr System einzubinden? Oder überlegen, wie Sie mehrere Login-Provider in einer bestehenden Architektur kombinieren können?
Sprechen Sie uns an – wir teilen gerne unsere Erfahrungen aus der Integration von Keycloak, Entra ID & Co.

Interesse an einer schulung?

Unsere Umweltmanagementpolitik

Die Umweltpolitik von EVOMOTIV ist darauf ausgerichtet, die Auswirkungen der unternehmerischen und menschlichen Aktivitäten auf die Umwelt zu kontrollieren, zu regulieren und zu minimieren. Dies wird durch eine Vielzahl von Maßnahmen und Initiativen erreicht:


1. Ressourceneffizienz und -schonung: EVOMOTIV setzt auf eine sparsame Verwendung von Energie und Wasser. Stand-by-Zustände werden vermieden und auf energiesparende IT-Geräte geachtet.

2. Sensibilisierung der Belegschaft: Durch Sperrbildschirme, E-Learnings und Tipps bei
innerbetrieblichen Veranstaltungen wird das Bewusstsein der Mitarbeitenden für Umweltthemen geschärft.

3. Förderung der Biodiversität: EVOMOTIV erweitert Grünanlagen und baut Rückzugsorte für Insekten, wie zum Beispiel Blumenwiesen, Dachbegrünungen und Bienenhotels.

4. Nachhaltige Lebensmittel: EVOMOTIV achtet auf lokale, saisonale und fair gehandelte Lebensmittel und setzt auf wiederverwendbares Geschirr.

5. Papierloses Office: EVOMOTIV setzt sich zum Ziel, vollständig papierlos zu arbeiten.

6. Nutzung von regenerativ erzeugten Kraftstoffen: Bis zur vollständigen Elektrifizierung des Fuhrparks wird auf Kraftstoffe gesetzt, die aus erneuerbaren Energiequellen gewonnen werden.

7. Elektrifizierung des Fuhrparks: EVOMOTIV plant, den Fuhrpark zu elektrifizieren, um die CO2-Emissionen zu reduzieren.

8. Ökologisch produziertes Merchandise: EVOMOTIV kauft umweltfreundliche Geschenke für Mitarbeitende und Kunden.

9. Reduktion des Datenmülls: EVOMOTIV setzt sich für die Reduzierung von Datenmüll ein, um die Umweltbelastung durch digitale Abfälle zu minimieren.

EVOMOTIV verpflichtet sich, die Umweltleistung anhand von Geschäftspraktiken und – strategien kontinuierlich zu verbessern und aktiv zum Umweltschutz beizutragen, mit dem klaren Ziel, die nachhaltige Entwicklung zu fördern.

soziales engagement

Unser zentrales Nachhaltigkeitsmotiv ist es, einen positiven Beitrag für Mensch und Umwelt zu leisten. Unter dem Leitmotiv
<< Menschen begeistern, Werte entwickeln >> engagieren wir uns in vielfältiger Weise direkt in der Region unserer Standorten, um eine Vielzahl gemeinnütziger Projekte zu fördern.

sponsoring

Eine Auswahl der Organisationen, die uns besonders am Herzen liegen:

spenden

Unser gesellschaftliches Engagement zeigt sich in der Unterstützung verschiedener gemeinnütziger Organisationen. Unser Kollegium setzt sich aktiv ein, zum Beispiel durch Aktionen wie “Radeln für den guten Zweck“. Durch solche Initiativen sammeln wir Spenden, die wir  beispielsweise dem Kinderhospiz München sowie dem Förderverein Helfende Hände zukommen lassen. Darüber hinaus beteiligen wir uns an Aktionen wie Weihnachten im Schuhkarton, um einen nachhaltigen Beitrag zu sozialen Belangen zu leisten.

Unsere klimastrategie

Lorem ipsum dolor sit amet, consetetur sadipscing elitr,

Subscribe To Our newsletter

Unsere Standorte

EVOMOTIV GmbH
Im Bühl 16/1
D – 71287 Flacht
Tel: 0711/32 06 74-0
stuttgart@evomotiv.de

zur Anfahrt

1 of 5
EVOMOTIV ULM GmbH Standort Friedrichshafen Albrechtstraße 8 D- 88045 Friedrichshafen Tel: 07541 7300 130 friedrichshafen@evomotiv.de 2 of 5

EVOMOTIV ULM GmbH
Hörvelsinger Weg 62/2
D – 89081 Ulm
Tel: 0731/708 09 84-00
ulm@evomotiv.de

zur Anfahrt

3 of 5

EVOMOTIV GmbH
Standort München
Mies-van-der-Rohe-Straße 6
D – 80807 München
Tel: 089/95 45 92 53-0

muenchen@evomotiv.de

zur Anfahrt

4 of 5

EVOMOTIV GmbH
Standort Ingolstadt
Münchener Straße 19
D- 85123 Karlskron-Brautlach
Tel: 089/95 45 92 53-0

ingolstadt@evomotiv.de

zur Anfahrt

5 of 5

EVOMOTIV GmbH

Standort Stuttgart
Im Bühl 16/1
D - 71287 Flacht

Melanie Pramann
stuttgart@evomotiv.de
Tel: 0711/32 06 74-0
Zur Anfahrt

EVOMOTIV GmbH

Standort München
Mies-van-der-Rohe-Straße 6
D - 80807 München

Kryschan Schwirzinger
muenchen@evomotiv.de
Tel: 089/95 45 92 53-0
Zur Anfahrt

EVOMOTIV ULM GMBH

Standort Ulm
Hörvelsinger Weg 62/2
D-89081 Ulm

Kathrin Eckel
ulm@evomotiv.de
Tel: 0731/70 80 98 4-00
Zur Anfahrt

EVOMOTIV ULM GmbH

Standort Friedrichshafen
Albrechtstraße 8
D - 88045 Friedrichshafen

Matthias Knott
friedrichshafen@evomotiv.de
Tel: 07541/73 00 13-0
Zur Anfahrt

EVOMOTIV GmbH

Standort Ingolstadt
Münchener Str.19
D - 85123 Karlskron-Brautlach

Kryschan Schwirzinger
ingolstadt@evomotiv.de
Tel: 089/95 45 92 53-0
Zur Anfahrt