Authentifizierung ist das Tor zu jeder Anwendung. Schwachstellen in diesem Bereich können verheerende Sicherheitslücken öffnen und das Vertrauen der Benutzer erheblich beschädigen. Eine sichere und komfortable Login-Lösung umzusetzen, ist eine komplexe Aufgabe.
Die OWASP-Empfehlungen - eine Sammlung der häufigsten Sicherheitsprobleme – zeigen, dass Authentifizierung und Autorisierung nach wie vor zu den häufigsten Sicherheitslücken gehören. Daher halte ich die Eigenentwicklung der Authentifizierung für ein Antipattern.
Dieses Jahr feiert der Industriestandard OpenID Connect (OIDC) seinen 10. Geburtstag. OIDC ist eine Technologie, die es ermöglicht, die Identität von Benutzern zu bestätigen. Durch sie ist es möglich mit seinem Google-Konto in eine fremde Webanwendung einzuloggen. Es steht als offener Standard allen Entwickler zur Verfügung und es gibt exzellente Open-Source Implementierungen davon.
Keycloak ist ein Open-Source-Produkt, das den Bereich Identitätsmanagement und Zugangsberechtigungen abdeckt und einfach in der eigenen Infrastruktur oder in der Cloud betrieben werden kann.
Wer lieber auf kommerzielle Lösung setzt, findet mit Auth0 eine sehr gute Lösung. Und das sind nur einige Beispiele. Es gibt eine Vielzahl an freien oder kommerziellen Produkten, die OIDC unterstützen.
Mit Keycloak sicher einloggen
Wir setzen in unseren Entwicklungen in den allermeisten Fällen Keycloak ein. Durch die Verwendung der offenen Standards erhalten wir so nützliche Features wie Single Sign On, Zwei- oder Mehr-Faktor-Authentisierung (2FA oder MFA) und sogar Passwortlosen Login.
Vor allem 2FA ist ein aktuell wichtiges Thema. Durch die NIS2-Richtlinie der EU müssen Unternehmen in bestimmten Sektoren gewisse Sicherheitsmaßnahmen verpflichtend umsetzen. 2FA ist ein wesentlicher Punkt, um diese Verpflichtung zu erfüllen.
Keycloak ist ein sehr aktiv gepflegtes Open-Source-Produkt und bietet neben regelmäßigen Updates auch eine hervorragende Dokumentation. Durch die starke Verbreitung ist die Software exzellent getestet. Kurzum: Sie hat alle Eigenschaften, die man mit einer Eigenentwicklung nur in den seltensten Fällen erreichen kann.
Unsere Entwicklungen in denen wir Keycloak (oder andere OIDC Implementierungen) verwenden, wurden schon mehrfach von Sicherheits- und Pentestern auditiert und überprüft – bis jetzt ohne eine einzige Beanstandung.
Daher noch einmal der Appell: Bitte implementiert eure Login-Lösung nicht selbst. Es sind unzählige Details zu beachten und die Implementierung von offenen Standards wie OIDC oder OAuth 2.0 ist sehr aufwändig.
Neben erhöhter Sicherheit profitieren wir von der Zeitersparnis und der kontinuierlichen Unterstützung durch die Community, wenn wir auf bewährte Standards setzen.
Eure Erfahrungen?