Der große OpenID-Provider-Test
Ich, als alter Selfhoster, war letztens auf der Suche nach einer halbwegs modernen Wiki-Lösung. Sowas wie Notion halt, aber auf dem eigenen Server. Nach etwas Recherche fand ich Outline und war direkt angefixt. Das sah echt ganz gut aus!
Ich installierte es also mal schnell auf meinem Docker-Server und meine Motivation sank direkt wieder: Es gab nur einen “Sign in with Slack”-Button. Outline supported keine einfachen Benutzeraccounts mit Username/Passwort sondern unterstützt nur OpenID- und ähnliche Anbieter!
An sich finde ich das ja irgendwie auch gut, aber ich hatte mir bisher nicht die Mühe gemacht, mir so etwas zu besorgen. Natürlich hätte ich mir jetzt extra dafür eine Discord-App erstellen können, und das darüber machen, aber nee, das ist ja quatsch. Ich versuchte also schnell einen Open ID-Provider zu installieren, was leider gar nicht so einfach war.
Meine fünfminütige Recherche brachte folgende Alternativen zu Tage, die ich allesamt “ausprobierte”:
Authelia
Ich schaute in die Docker-Anleitung und das war mir schon wieder alles zu viel. Es gibt entweder den standalone-Weg, wo man tausend secrets und nicht näher bestimmte Konfigurationsdateien anlegen muss, außerdem muss man sein eigenes Postgres mitbringen und argh.
Abgesehen davon gibt es noch bundles, die eventuell mehr enthalten und wo man weniger Konfigurieren muss, aber dafür hätte ich ein ganzes Git-Repository auschecken müssen und das war mir wirklich einfach alles zu viel, ich will einfach nur eine Beispielhafte docker-compose.yml
, mit der alles funktioniert, Leute.
Authentik
Authentik hat eine ziemlich gute und kurze Anleitung. Man läd kurz die docker-compose.yml
, es gibt einfach kopierbare Snippets um ein paar Secrets zu generieren, alles super. Leider lief es auf meinem Docker Host gar nicht. Also, es startete und rödelte minutenlang rum, erzeugte soviel CPU-Last, dass andere Container zwischenzeitlich das zeitliche segneten und… machte letztendlich einfach nichts. Nach ein paar weiteren Startversuchen löschte ich es wieder.
Pocket ID
Nach kurzem Meckern auf Mastodon wurde mir von Robin Pocket ID empfohlen. Das sieht toll aus. Klein und schlank und ein Open ID-Provider, der auch nur auf Passkeys setzt, was ja auch irgendwie süß ist. Ich entschied mich hier aber dagegen, es zu installieren, denn letztendlich habe ich jetzt noch nicht viel vertrauen in ein kleines, nichtmal ein halbes Jahr altes Projekt. Es ist ja als zentraler Auth-Provider am Ende ja irgendwie eine wichtige Software.
Keycloak
Kommen wir also zum Elefanten im Raum. Das gute alte Keycloak-Java-Monster. Doch ich muss sagen, ich war positiv überrascht! Die Doku ist modern gehalten und das Setup ist im Grunde so schlank, wie ich es mir für die anderen Softwaren auch wünschte: Einfach ein docker run
-Befehl. (Im Grunde schon zu schlank: Ein docker-compose
-File hätt ich mir schon gewünscht, konnte ich dann aber selber zusammenbasteln).
Bis auf einen kleinen Schluckauf wegen HTTPS, Mixed Content und meinem Reverse Proxy, wo also Keycloak nichts dafür konnte, lief es auch sofort und ich konnte einen Realm, User und Clients erstellen. Schnell bei Outline reingehauen, und auch das funktionierte einfach. Meeega!
Ob ich das aufgesetzte Outline jetzt jemals nutzen werde, erzähle ich euch beim nächsten Mal!
Achja, falls jemand noch eine andere passende Software kennt, sagt Bescheid! Noch kann ich umziehen, ich habe erst 15 Minuten investiert.