Einleitung
Authentifizierung und Autorisierung sind das Kerngeschäft von IT-Systemen und Web-Apps.
Richtig umgesetzt ermöglichen sie es Ihnen, Anwendungen zu schreiben, die sich nahtlos in beliebige Authentifizierungssysteme integrieren. Von einfachem Benutzer/Passwort bis hin zu Google, LDAP und benutzerdefinierten SAML-Systemen.
Gute Authentifizierungssysteme ermöglichen Benutzern auch das Zurücksetzen ihres Logins, das Zurücksetzen ihrer Passwörter, die Registrierung und die Verwendung eines zweiten Faktors.
Keycloak
Keycloak ist ein solcher Authentifizierungsserver. Er ist kampferprobt und kann sofort eingesetzt werden. Das Coole ist, dass Sie ihn selbst hosten und einfach an Ihre Bedürfnisse anpassen können.
Ich konzipiere und entwickle häufig Apps für größere Kunden, die Keycloak (und ähnliche Systeme) verwenden. Daher war es für mich wichtig, eine Keycloak-Instanz für meine Anwendungen zu haben. Es ist ein großartiges Showcase und ermöglicht es mir, von Anfang an Enterprise-Grade-Anwendungen zu schreiben.
Keycloak bietet coole Funktionen wie:
- Authentifizierung, Autorisierung (Login, Registrierung etc.)
- OpenID Connect
- Benutzer-Login über Google, Github und viele Drittanbieter
- Benutzerdefinierte SAML-Integration (LDAP etc.)
Alternativen zu Keycloak
Natürlich gibt es Alternativen. Viele verwenden heutzutage SaaS-Authentifizierungssysteme. Etwas wie Auth0 bietet auch einen guten Ausgangspunkt, ohne dass Sie selbst etwas installieren müssen.
Aber ich wollte Keycloak erkunden, daher war das keine Option für mich.
Dokku
Ich verwende Dokku für meine Projekte. Es ist wie Heroku, aber selbstverwaltet auf Ihrem Server. Es ermöglicht mir, meine Apps mit einem einfachen git push dokku auf einem Debian-Server zu betreiben. Großartig.
Wäre es nicht toll, Keycloak auch einfach über Dokku zu installieren?
Keycloak auf Dokku
Es gibt einen offiziellen Keycloak-Docker-Container. Leider funktioniert dieses Docker-Image nicht sofort mit Dokku. Es gibt auch einige Wrapper da draußen, die es ermöglichen, Keycloak auf Dokku zu installieren. Leider waren alle veraltet und funktionierten nicht. Meh.
Lösung? Einfach – ich habe einen neuen erstellt, der für mich funktioniert.
Die grundlegenden Schritte, um es zum Laufen zu bringen, waren:
- Die von dem Dokku-Postgres-Plugin erstellte DATABASE_URL in Variablen zerlegen, die Keycloak versteht
- Ein initiales Admin-Passwort für Keycloak bereitstellen
- Keycloak mitteilen, dass es hinter nginx läuft, das die gesamte SSL-Terminierung übernimmt.
Das Ergebnis ist das folgende Script, das mit dem offiziellen Keycloak-Docker-Container gebündelt wird.
Fazit
Wenn Sie Keycloak auf Dokku betreiben möchten, dann gehen Sie einfach zu https://github.com/raphaelbauer/dokku-keycloak und folgen Sie den Anweisungen. Es dauert nicht mehr als 5 Minuten, um es zum Laufen zu bringen.
Feedback ist sehr willkommen!
Mehr
- Docker-Wrapper zum Betreiben von Keycloak auf Dokku: https://github.com/raphaelbauer/dokku-keycloak
- Tolles Foto oben von frank mckenna
