Veröffentlicht:

Keycloak: Was ist es und wofür wird es verwendet?

.

Keycloak: Was ist es und wofür wird es verwendet? Photo by Jozsef Hocza / Unsplash

Geschrieben von



Keycloak ist eine Open-Source-Software, die als Identity and Access Management (IAM) Lösung dient. Es wurde ursprünglich von Red Hat entwickelt und wird heute von der Community unterstützt. Keycloak kann verwendet werden, um Benutzerauthentifizierung und -authorisierung für Web- und mobilbasierte Anwendungen bereitzustellen. Anstatt das Rad neu zu erfinden und eine eigene Authentifizierungslösung zu programmieren, kann man auf etablierte Technologien zurückgreifen.

Funktionsumfang von Keycloak

So ist eines der Hauptmerkmale von Keycloak, seine Fähigkeit, Single Sign-On (SSO) für Anwendungen bereitzustellen. Dies bedeutet, dass Benutzer sich nur einmal anmelden müssen, um auf mehrere Anwendungen zuzugreifen, anstatt sich für jede Anwendung einzeln anmelden zu müssen. Dies erhöht die Benutzerfreundlichkeit und verbessert die Sicherheit, da Benutzer nicht dazu verleitet werden, ihre Anmeldeinformationen auf mehreren Websites zu speichern, was das Risiko von Sicherheitsverletzungen erhöhen könnte.

Identity Provider integration

Keycloak bietet auch integrierte Identity-Broker-Funktionalitäten, die es ermöglichen, Benutzer aus externen Identitätsanbietern wie Active Directory, LDAP oder Social-Media-Plattformen zu integrieren. Somit lassen sich auf Bedarf alle gängigen Plattformen wie Facebook und Co. mit wenigen Klicks integrieren.

Registrierung & User Onboarding

Wie sich Benutzer registrieren ist Ihnen überlassen. Sie können einstellen das sich die Benutzer selbst registrieren können, oder das diese von Ihnen freigeschaltet werden. Ein Rollen und Gruppenkonzept rundet den Funktionsumfang ab. Mit Keycloak lassen sich alle Szenarien von Authentifizierung wie auch Authorisierung umsetzen.

Sicherheitsfunktionen & 2-FA

Keycloak bietet sehr starke Sicherheitsfunktionen, darunter zweistufige Authentifizierung, das Verwalten von Benutzerrollen und Berechtigungen und das Verwalten von OAuth2- und SAML-basierten SSO-Flows.


Meine Meinung

Keycloak ist in Java geschrieben und kann auf jeder Plattform mit einer Java Virtual Machine (JVM) ausgeführt werden. Die Software ist solide programmiert und bietet wesentlich mehr Sicherheit als es eine eigene Implementierung bieten könnte. Die Software verfügt über eine benutzerfreundliche Web-Oberfläche, die es Administratoren ermöglicht, alle möglichen Einstellungen einfach vornehmen zu können. Somit können auch "Nicht-Entwicker" die Software konfigurieren und Einstellungen anpassen, sollten sich die Anforderungen ändern. Mittels Themes kann das Design an das Corporate Design angepasst werden. Leider gibt es relativ wenige Themes Anbieter. So muss man oft auf GitHub ein fertiges Themen an die eigenen Bedürfnisse anpassen.

Keycloak ist für alle Arten von Projekten geeignet ist, von kleinen Anwendungen bis hin zu Enterprise-Applikationen. Da Keycloak standardisierte Protokolle verwendet, lassen sich sämtliche Applikationen welche eine OAuth2 implementieren miteinander verbinden. Zum Beispiel können Sie ein WordPress-Plugin für OAuth2 installieren und Ihre Keycloak-Accounts zum Login verwenden, um auf Ihre eigene entwickelte Software zuzugreifen oder um eine 2-Faktor Authentifizierung zu ermöglichen. Dank Keycloak war es mir möglich meine Microservice Infrastruktur so zu bauen, dass sich Benutzer an einem Endpunkt anmelden und auch andere Endpunkte nutzen konnte ohne sich erneut authentifizieren zu müssen.

Keycloak mit Docker einfach selbst hosten

Keycloak lässt sich auf verschiedene Weisen hosten, eine davon ist die Verwendung von Docker. Um Keycloak mit Docker zu hosten, benötigen Sie zunächst eine Installation von Docker auf Ihrem System. Sobald dies erledigt ist, können Sie einfach folgende Docker-Compose Datei auf Ihrem System ausführen. Alle benötigen Images werden automatisch heruntergeladen:

sudo apt update && sudo apt install docker.io docker-compose -y
mkdir dockerfiles/keycloak
cd dockerfiles/keycloak
docker-compose up -d

docker-compose.yml

FAQ

Ist Keycloak Authentifizierung oder Authorisierung?

Keycloak ist eine IAM Lösung, die sowohl Authentifizierung als auch Authorisierung bereitstellt. Authentifizierung ist der Prozess, bei dem die Identität eines Benutzers überprüft wird, während Authorisierung der Prozess ist, bei dem festgelegt wird, ob ein Benutzer auf bestimmte Ressourcen oder Funktionen zugreifen darf.

Was ist der Unterschied zwischen Keycloak und Auth0?

Keycloak ist eine Open-Source-Software, welche Ihr selbst installieren und konfigurieren könnt. Keycloak könnt Ihr auf eurem eigenen Server installieren und seit selbst verantwortlich für die Installation.

Auth0 dagegen ist ein Anbieter einer für Euch gehosteten Identity Lösung. Ihr bezahlt an das Unternehmen eine monatliche Gebühr, damit diese für Euch eine fertige Authentifizierungslösung bieten.

Kommentare