Keycloak lernen: Meine Keycloak-Reise (2023)

Keycloak ist ein Open-Source-Identitätsanbieter. Sie können mit minimalem Aufwand eine Authentifizierung zu sicheren Anwendungen und Diensten hinzufügen. Sie müssen sich keine Gedanken über das Speichern oder Authentifizieren von Benutzern machen. Keycloak bietet Benutzerföderation, starke Authentifizierung, Benutzerverwaltung, granulare Autorisierung und vieles mehr.~ Schlüsselanhänger

In diesem Blogbeitrag teile ich mit Ihnen meinen Weg zum Erlernen von Keycloak und die Ressourcen, die mir dabei geholfen haben. Dort finden Sie auch das Material, das ich verwendet habe, um Ihnen das Verständnis von Identity and Access Management (IAM) und Keycloak zu erleichtern.

Es hat eine Weile gedauert, bis ich Keycloak erlernt und verwendet habe. Ich bin mit dem Java-Ökosystem nicht sehr vertraut, da mein letztes Java-Projekt schon eine Weile her ist. Vielleicht fiel es mir etwas schwerer zu lernen. Aber wenn Sie ein erfahrener Java-Entwickler sind, haben Sie Glück, denn Keycloak ist in Java geschrieben. Ich möchte darauf hinweisen, dass ich noch nicht alles verstanden habe, aber ich bin zuversichtlich, Keycloak weiterzuentwickeln, zu erweitern und zu integrieren.

Melden Sie sich bei Keycloak an

Meine Keycloak-Reise begann bei einem Kundenprojekt, bei dem wir ein Login-Theme für Keycloak erstellten und es in unsere Frontend-Anwendungen integrierten. Natürlich ist es nur ein kleiner Teil dessen, was Keycloak zu bieten hat, aber die Einstiegsfunktionen sind für jeden ein guter Ausgangspunkt. Nach einem ersten Besuch der Website, um einige Hintergrundinformationen zu erhalten, demonstrieren die folgenden zusätzlichen Videos die Leistungsfähigkeit von Keycloak deutlich:

Ressourcen über das Keycloak-Dokument hinaus: Was ist IAM?

Ich habe eine interessante Beobachtung gemacht: Als ich anfing, Keycloak zu verwenden, hat mir die offizielle Dokumentation überhaupt nicht geholfen. Zum Glück hat sich das geändert und ich finde die Dokumentation jetzt ziemlich anständig. Kollegen, die ebenfalls mit Keycloak in Kontakt kamen, hatten das gleiche Problem. Ich erfuhr, dass meine seltsame Beziehung zur Keycloak-Dokumentation aus einer Lücke zwischen meinem Wissen und den in der Dokumentation bereitgestellten Informationen entstand. In der Dokumentation wird nicht erklärt, was IAM oder OpenID Connect ist und wie es intern funktioniert. So sollte es sein.

Gelernt: Als Produktlösung gibt es Domain IAM und Keycloak. Die Keycloak-Dokumentation konzentriert sich auf die wichtigsten bekannten Teile der Bereitstellung, Verwaltung und Anpassung von Keycloak. Für viele (ich eingeschlossen), die neu bei Keycloak sind, ist dies wahrscheinlich nicht der Fall. Bevor uns die Keycloak-Dokumentation helfen kann, müssen wir uns zunächst ein grundlegendes Verständnis von IAM aneignen.

Wenn Sie das gleiche Problem haben, ist es möglicherweise eine gute Idee, einen Schritt zurückzutreten und sich auf die Grundlagen von IAM zu konzentrieren, bevor wir uns mit Keycloak befassen. Es lohnt sich, die IAM-Domäne im Allgemeinen zu lesen, um sich mit den Protokollen vertraut zu machen, die wir verwenden möchten. In meinem Fall sind dies hauptsächlich OAuth2 und OpenID Connect (OIDC).

Dies wirft die Frage auf, was IAM ist. RedHat (Sponsor von Keycloak) hat einen guten Artikel, der das IAM-Framework beschreibt:

Identity and Access Management (IAM) ist eine zentralisierte und konsistente Methode zur Verwaltung von Benutzeridentitäten (d. h. Personen, Diensten und Servern), um Zugriffskontrollen zu automatisieren und Compliance-Anforderungen sowohl in traditionellen als auch in Containerumgebungen zu erfüllen.~Was ist Identitäts- und Zugriffsmanagement (IAM)?

Es gibt eine großartige Ressource, die die Lücke zwischen dem Erlernen der Grundlagen und dem Erlernen von Keycloak schließt. Stian, der Schöpfer von Keycloak, hat es letztes Jahr getanSchlüsselumhang-BuchIch denke, das ist der perfekte Ausgangspunkt. Es erklärt die Grundlagen des OpenID Connect-Protokolls und zeigt, wie man es mit Keycloak verwendet. Außerdem werden viele Funktionen von Keycloak in kurzen Auszügen erklärt. Es gibt uns einen guten Überblick über alle Funktionen, die Keycloak bietet. Von dort aus können wir die Ressourcen auswählen, die den Anforderungen unserer Projekte entsprechen. Wir können jetzt zur Keycloak-Dokumentation springen, um einen detaillierteren Einblick in die Verwendung der einzelnen Funktionen zu erhalten.

Eine Anmerkung aus der Lektüre des Buches: OAuth2 – die Grundlage von OpenID Connect – steht nicht im Mittelpunkt des Buches. Es deckt die Grundlagen ab, aber in meinem Fall hat es nicht gereicht. Sehen Sie sich Blogartikel an, die sich mit OAuth2 befassen.

Von den alten Händen von Keycloak lernen

Glücklicherweise haben wir bei codecentric einige sehr talentierte Leute, die Experten für IAM und Keycloak sind (Sebastian Rose und Thomas Darimont, Ich meine dich!). Die Nähe zu ihnen und die Möglichkeit, sie alles zu fragen und aus den Erfahrungen aus vielen Kundenprojekten zu lernen, hat mir beim Lernen sehr geholfen!

Ich hatte die Gelegenheit, an einer teilzunehmenKeycloak-GrundlagenArne Strathmanns Workshop Hier behandeln wir die Keycloak-Grundlagen und arbeiten mit der (inzwischen veralteten) JBoss-CLI, um Keycloak zu konfigurieren. Anschließend integrieren wir es in andere Anwendungen.

Einige Zeit später nahm ich an einem Treffen teil, bei dem Thomas erklärte, wie Keycloak erweitert werden kann. Neben einer großartigen Präsentation mit guten einfachen Beispielen und vielen Lektionen aus seiner Erfahrung hatte ich noch mehr zu lernen: Thomas hat kürzlich eine vorgestelltKeycloak-Home-RepositoryDies ist ein großartiger Ausgangspunkt oder sogar ein Standard-Repository zum Starten eines neuen Keycloak-Projekts. Als er es einführte, war das Endlager relativ neu und hatte eine kleine Basis. Ich habe diese Vorlage für mein eigenes Keycloak-Setup verwendet. Im Laufe der Jahre hat dieses Repository zahlreiche weitere Konfigurationsmöglichkeiten erhalten. Es ist toll, dass man dort so viele Berufskombinationen finden kann. Wenn Sie mit Keycloak beginnen, kann es sinnvoll sein, einige der ersten Commits aus dem Repository zu verwenden. Es gibt lediglich eine einfachere Formularkonfiguration. Wenn Sie also bereit sind, Keycloak in größerem Umfang zu nutzen, könnten Sie an den neuesten Updates interessiert sein.

Eine andere Sache, die ich entdeckt habe, ist FolgendesKeycloak-Repositorymit Thomas-Erweiterungen. Er entwickelte mehrere Keycloak-Erweiterungen. Vielleicht existiert die Erweiterung, die Sie entwickeln möchten, bereits! Ich fand viele Erweiterungen nützlich und sie waren eine großartige Inspirationsquelle für meine eigenen Erweiterungen.

Ich würde auch empfehlen, dem Keycloak-Blog zu folgen. Es gibt nicht viele Blogbeiträge, aber neue Artikel liefern immer sehr nützliche Informationen! Zum Beispiel im letzten Dezember,Sicherheitslückein einem Blogeintrag angekündigt.

Erste Schritte

Ausgestattet mit allem, was ich gelernt hatte, beschloss ich, meine eigenen Erfahrungen zu sammeln, indem ich mein eigenes Keycloak Docker-Image erstellte. Mit einer grundlegenden Infrastruktur, die ich auf AWS aufgebaut hatte (mit VPC, ELB, ECS Fargate, RDS und SES), konnte ich das Deploy abbauen und das Image ausführen. Mittlerweile gibt es auch einige Open-Source-Ressourcen für Keycloak auf der AWS-Infrastruktur:cdk-keycloakNachdem die Entwicklung abgeschlossen war, begann ich mit der Konfiguration von Keycloak. Diese Konfiguration reicht von der Erstellung des Bereichs und dem Hinzufügen von Clients über die Konfiguration von Protokolleinstellungen, Plugins und Bereichseinstellungen bis hin zur Bereitstellung des Anmeldeflusses und des Token-Inhalts. Diese Konfiguration muss auf einer laufenden Keycloak-Instanz durchgeführt werden. Wir können dies über die Benutzeroberfläche für die Inhaltsverwaltung oder über die CLI tun. Da beide Optionen etwas kompliziert sind, habe ich diese verwendetkeycloak-config-clibietet anals Code festlegenüber YAML- oder JSON-Konfigurationsdateien an Keycloak und es funktioniert großartig.

Und das ist alles.

Wenn Sie Terraform zum Aufbau der Keycloak-Infrastruktur verwenden, besteht die Möglichkeit, Keycloak mithilfe von Terraform zu konfigurieren:Keycloak mit Terraform konfigurieren

Abschluss

Zunächst wirkte Keycloak kompliziert und starr. Aber als ich mich mit Keycloak befasste, stellte ich fest, dass es einiges zu bieten hatte. Es ist hochgradig konfigurierbar und leicht erweiterbar.

Aber ich habe auch gelernt, dass die Integration von Keycloak in eine Anwendungslandschaft versteckte Kosten mit sich bringt. Es ist sehr aufwändig, einen Keycloak-Cluster in der Produktion zu halten. Es ist nicht trivial, Updates mit minimalen Auswirkungen auf die Benutzer durchzuführen und anzuwenden. Bevor Sie also Keycloak verwenden, nur weil es funktioniertBuchEs scheint, dass ich diese Entscheidung erneut in Frage stellen würde.

Im IAM-Bereich gab es in letzter Zeit viel Konkurrenz. Einige Player bieten neben einem Open-Source-Kern auch SaaS-Angebote an. Andere Anbieter wiederum stellen eine gehostete Keycloak-Lösung bereit.verwaltete DiensteWir haben den Vorteil, dass wir uns auf die Entwicklung und Lieferung unseres Produkts konzentrieren können.

Das Team hinter Keycloak ist sich bewusst, dass sich die IAM-Landschaft weiterentwickeltKeycloak.X-Update- siehe auch diesSuspensionvon Thomas und Sebastian bei Keycloak.X – lieferte einige Hintergrundinformationen zum Drehbuch. Man hat das Gefühl, dass sie einige der Ecken und Kanten von Keycloak angehen und verfeinern. Das sind gute Nachrichten und ich bin sicher, dass die Zusammenarbeit mit Keycloak auch in Zukunft fortgesetzt wird. Es wird einfacher sein. Es ist jedoch wichtig, sich darüber im Klaren zu sein, dass dies einige Zeit in Anspruch nehmen und zu einigen Konvertierungen für aktuell laufende Keycloak-Cluster führen wird.

Ich bin gespannt, welches Tool sich in Zukunft durchsetzen und den Markt dominieren wird. Insgesamt ist Keycloak immer noch ein sehr solider Identitätsanbieter, der von vielen großen Unternehmen genutzt wird.

Ich hoffe, ich habe Ihnen einige nützliche Ideen und Ressourcen zum Erlernen von Keycloak gegeben.

Bis dann! ✌️

References

Top Articles
Latest Posts
Article information

Author: Msgr. Benton Quitzon

Last Updated: 11/10/2023

Views: 6063

Rating: 4.2 / 5 (43 voted)

Reviews: 82% of readers found this page helpful

Author information

Name: Msgr. Benton Quitzon

Birthday: 2001-08-13

Address: 96487 Kris Cliff, Teresiafurt, WI 95201

Phone: +9418513585781

Job: Senior Designer

Hobby: Calligraphy, Rowing, Vacation, Geocaching, Web surfing, Electronics, Electronics

Introduction: My name is Msgr. Benton Quitzon, I am a comfortable, charming, thankful, happy, adventurous, handsome, precious person who loves writing and wants to share my knowledge and understanding with you.