This is an old revision of the document!
Table of Contents
Keycloak
Bei Keycloak handelt es sich um ein open-source IdentitĂ€ts- und Zugriffsverwaltungssystem, dass es vereinfachen soll Applikationen und Dienste zu sichern. Dabei implementiert es wichtige Standards wie OpenID Connect und SAML. Im Rahmen dieser Arbeit ist lediglich OpenID Connect relevant. Auch ermöglicht Keycloak es Logins von anderen Plattformen wie GitHub oder Twitter zu implementieren. AuĂerdem kann Keycloak sich auch mit beispielsweise einem Active Directory verbinden, welches oftmals in Firmen eingesetzt wird, um die Nutzer-Daten mit diesem zu teilen. Ein weiteres wichtiges Feature ist die BedienoberflĂ€che. (Keycloak.org, o.J.)
OAuth und OpenID Connect
Die UnterstĂŒtzung von OAuth 2.0 in Keycloak stellt eines der wichtigsten Features da. Spasovski beschreibt OAuth 2.0 wie eine schĂŒtzende Schicht fĂŒr einen Dienst, sodass die Nutzer-Applikation eine Methode hat, um an geschĂŒtze Daten zu gelangen. OAuth 2.0 (voller Titel: âThe OAuth 2.0 Authorization Frameworkâ) ist eine Spezifikation eines Protokolls zur Sicherung von Diensten, wobei die Spezifikation Freiraum fĂŒr verschiedene Implementierung offen hĂ€lt. Der hĂ€ufigste Anwendungsfall fĂŒr OAuth 2.0 sind der Schutz von RESTful APIs und webbasierten Applikationen. (Spasovski, 2013)
GrundfunktionalitÀt
Die GrundfunktionalitĂ€t lĂ€sst sich kurz zusammenfassen: Möchte eine Applikation auf geschĂŒtzte Daten zugreifen, macht diese sogenannte HTTP Anfragen an einen Server. Dabei wird ein Zugriffstoken mitgeliefert. Dieser Token enthĂ€lt Informationen, welcher Nutzer der Applikation gestattet auf die Daten zuzugreifen. In Abbildung SPASOVSKI_OAUTH wird ein Beispiel einer Authentifizierung gezeigt. ZunĂ€chst fragt die Nutzerapplikation den Zugriff auf die geschĂŒtze Ressource an. Wird dies gestattet erhĂ€lt der Nutzer ein âAuthorization grantâ. Dies enthĂ€lt dann Informationen ĂŒber die Authentifizierung. Folgend gibt die Nutzerapplikation den âAuthorization grantâ weiter an den Authentifizierungsserver. Dieser ĂŒberprĂŒft den âAuthorization grantâ und gibt bei BestĂ€tigung einen âAccess Tokenâ aus.