Authentifizierung und Autorisierung sind Begrifflichkeiten, die im Rahmen der Sicherheit von IT-Systemen häufig auftauchen. Gerade in Zeiten der Digitalisierung und damit vermehrten Sicherheitsbedrohungen lässt sich das Thema nicht vermeiden und es bedarf einigen Lösungsansätzen in Softwaresystemen.
Eine Lösung bildet die Open-Source-Softwarelösung Keycloak, die diesen Problemraum angeht. Keycloak ermöglicht es, auf Grundlage der Sicherheitsprotokolle Open Authorization und OpenID Connect, sowohl das Thema der Authentifizierung als auch gleichzeitig der Autorisierung zu betrachten.
Das Praxisprojekt beschäftigt sich als eine der Teilfragen mit den beiden Standards. Hierzu werden die beiden Protokolle in ihren Bestandteilen und Konzepten beschrieben und analysiert. Das Ergebnis bildet einen ersten Überblick über die Funktionsweise der beiden Standards und wird durch in der Praxis bewährte Techniken erweitert, die für eine höhere Sicherheit sorgen sollen. Insgesamt entwickelt sich daraus ein erstes Konzept für einen anschließenden Prototypen. Dieses Konzept wird durch die Anforderungen des Kooperationspartners Hans Peter Esser GmbH ergänzt.
Das Ziel des Prototypen ist die Darstellung der Authentifizierungs- und Autorisierungsabläufe innerhalb eines Systems. Dieser soll die Voraussetzung dafür bilden, die zugrundeliegenden Funktionalitäten in bereits bestehende Softwarearchitekturen integrieren zu können. Zuvor ist allerdings eine grundlegende Analyse des Prototypen notwendig, um mögliche Sicherheitsschwachstellen entdecken zu können. Dies lässt sich im Rahmen einer anschließenden Abschlussarbeit mithilfe des Internet-Drafts “OAuth 2.0 Security Best Current Practice” evaluieren.
Repository: https://github.com/nickklssn/keycloak
Keycloak: https://www.keycloak.org/
Internet-Draft “OAuth 2.0 Security Best Current Practice”: https://datatracker.ietf.org/doc/html/draft-ietf-oauth-security-topics
Evaluation des Prototypen nach dem Internet-Draft "OAuth 2.0 Security Best Current Practice", Integration des Prototypen in ein bestehendes System