Zentrales User-Management fürs Heimnetzwerk

  • Moin,


    bevor ich die eigentliche Frage stelle, möchte ich, um Diskussionen vorzubeugen, die Frage "warum machst du das" beantworten mit: "Weils geht".


    Mein "Problem": Ich habe aktuell eine ungenutzte, kleine VPS200 Instanz, Nextcloud, Wordpress, DokuWiki auf Netcup-Webspace, ein NAS zu Hause, irgendwo läuft noch HomeAssistant auf nem PI etc. Meine Frau verdreht inzwischen schon die Augen, wenn ich eines der Dinge beim Spielen wieder zerschossen habe, neu aufsetzen muss, oder einfach was unglaublich Geniales und Tolles ausprobieren möchte und dann die Thematik "gib mal hier dein Passwort für den neuen Account ein" kommt. Immer öfter komme ich zu dem Gedanken: Da gibts doch Lösungen für - zentrale Authentifizierung!


    Also ist meine momentane Überlegung, mal auszuprobieren, auf dem kleinen VPS "irgendeine" Lösung für zentrales User-Management zum Laufen zu bringen (freue mich jetzt schon, wenn ich meine Frau dann den letzten (versprochen!! :D) neuen Account dort einrichten darf). Nun war ich aber bei solch einer zentralisierten Lösung bisher nur normalsterblicher Nutzer (in großen Konzernen). Wenn man sich ein bisschen informiert stolpert man über FreeIPA, Keycloak, LDAP, OpenID, SAML, OAuth - eine Menge Begriffe (verschiedenster Kategorien).


    Meine Learnings so weit:


    Requirements:

    • Single Source of Truth für Benutzer und Gruppen
    • LDAP (da mein NAS (Synology) nur über LDAP wirklich fremd-Authentifizierung zulässt)
    • (optional, nice to have) User Self Management


    Gefährliches Halbwissen: (denkt euch in jedem Satz ein "meines Wissens nach")

    • LDAP Authentifikation erfordert die Eingabe von Benutzername+Passwort immer in der jeweiligen App. Viel cooler wär doch so ein Single-Sign-On-Ding, wo ich auf eine Webseite weitergeleitet werden, dort Benutzername und Passwort eingebe, bestätige, dass der Service (z. B. Nextcloud) auf meine Daten zugreifen darf, dann werde ich wieder zurückgeschickt und bin eingelogged. Ich glaube dass das irgendwie mit den Begriffen SAML/OAuth/OpenID zusammenhängt, mir ist aber der Unterschied (trotz Google) noch nicht wirklich klar.
    • FreeIPA bringt User/Group-Management mit eingebautem LDAP Server. Sowas wie SAML/OAuth/OpenID aber nicht. Gibt es nicht irgendwas von Ratiopharm, was mir Web-based-Geschichten anbietet und dabei auf LDAP zurückgreift? Klingt auch ein bisschen größer als das, was ich brauche (brauche ich eine Art Active Directory mit Host Registration und DNS? Eigentlich nicht...)
    • Keycloak bietet SAML/OAuth/OpenID, aber kein LDAP. Ich könnte aber wahlweise zu/mit FreeIPA oder OpenLDAP synchronisieren, dann hätte ich aber zwei "Points of Truth". Weiß noch nicht ob ich das für eine gute Idee halten soll. Kingt außerdem so, als ob ich mit Kanonen auf Spatzen schieße.
    • OpenLDAP + Irgendeine Bridge LDAP<->SAML/Oauth/OpenID, schon wie in Kombination mit FreeIPA beschrieben. Dann wäre es simpel, ich weiß wo die Daten liegen, hätte aber trotzdem irgendwie alle Protokolle abgedeckt.

    Hat da jemand Erfahrungen/Software-Empfehlungen/sonstige Ideen? Wäre über ein paar Gedanken zu dem Thema sehr dankbar.


    Viele Grüße
    Matthias

    Matthias Lohr Project Blog: https://mlohr.com/

    PGP: 0x8FC3060F80C31A0A

  • FreeIPA ist klasse. Aber auch ziemlich mächtig und komplex. Das läuft auf einem VPS 200 aber leider nicht wirklich zufriedenstellend, weil es zuviele Ressourcen braucht (Java, ...). Ähnliches gilt eigentlich auch für Keycloak. Was ich mir vorstellen könnte, wäre ein 389 Directory Server (https://directory.fedoraproject.org). Zumindest so als ersten Schritt. Das sollte dann auch auf einem VPS 200 noch ganz gut laufen.

  • Danke für dein Feedback!


    Wenn ich etwas finde, was mich von der Software her zufriedenstellt, ist ein größerer VPS auch nicht wirklich ein Problem (muss ich mir halt ein neues Projekt ausdenken für den 200er, aber das ist sicherlich lösbar). 389 Directory Server habe ich noch nie gehört, wie ordnet der sich zwischen FreeIPA und einfach blankem OpenLDAP ein?


    Die einfachste Lösung, die mir spontan einfällt (und denke mal auch auf einem 200er laufen würde) wäre OpenLDAP und irgendwas, was mir auf Basis des LDAPs dann die Web-Authentication zur Verfügung stellt - oder sehe ich das falsch?

    Matthias Lohr Project Blog: https://mlohr.com/

    PGP: 0x8FC3060F80C31A0A

  • Der 389 Directory Server ist im Grunde ein reiner LDAP Server. Der ist auch Teil eines FreeIPA Gesamtpaketes (der LDAP Teil davon). Dieser ist mit einem OpenLDAP wohl noch am ehesten zu vergleichen. Es kommt auch ein bisschen darauf an, ob denn SAML/OAuth/OpenID wirklich benötigt wird, oder ein reiner LDAP ausreichen würde. Viele Applikationen bieten ja auch eine LDAP Integration direkt an. Wenn nicht, würde sich z.B. ein separates Keycloak anbieten. Alleine der Lerneffekt wäre es vermutlich sogar schon wert ;).

  • Die einfachste Lösung, die mir spontan einfällt (und denke mal auch auf einem 200er laufen würde) wäre OpenLDAP und irgendwas, was mir auf Basis des LDAPs dann die Web-Authentication zur Verfügung stellt - oder sehe ich das falsch?

    Das siehst du nicht falsch.


    OpenLDAP ist sehr schmal, insbesondere wenn mit MDB statt Berkeley DB betrieben. Hatte ich auch schon auf einem VPS 100 laufen.

    OpenID / OAuth können sich als Datenquelle auf LDAP stürzen, genau so wie Linux (mit sssd z.B.)


    SAML ist ein XML Protokoll.

    OpenID und OAuth sind in gewisserweise ineinander betreibbar, haben hier aber mehr Protokollmöglichkeiten. (URL Query, JSON, JWTs)


    Webbasierte Software zum Beschreiben eines LDAPs gibt es genügend.

    (z.B. https://github.com/jirutka/ldap-passwd-webui)


    Als OAuth Server gibt es z.B. https://github.com/RichardKnop/go-oauth2-server - ich weiß aber nicht, ob der ein LDAP Backend hat.

  • Requirements:

    • Single Source of Truth für Benutzer und Gruppen
    • LDAP (da mein NAS (Synology) nur über LDAP wirklich fremd-Authentifizierung zulässt)
    • (optional, nice to have) User Self Management


    Gefährliches Halbwissen: (denkt euch in jedem Satz ein "meines Wissens nach")

    • [..]
    • Keycloak bietet SAML/OAuth/OpenID, aber kein LDAP. Ich könnte aber wahlweise zu/mit FreeIPA oder OpenLDAP synchronisieren, dann hätte ich aber zwei "Points of Truth". Weiß noch nicht ob ich das für eine gute Idee halten soll. Kingt außerdem so, als ob ich mit Kanonen auf Spatzen schieße.
    • [..]

    Hat da jemand Erfahrungen/Software-Empfehlungen/sonstige Ideen? Wäre über ein paar Gedanken zu dem Thema sehr dankbar.

    Hallo Matthias,


    Wir benutzen für eine Schul-Cloud Keycloak, was Deine Erfordernisse enterprise-tauglich erfüllt


    Keycloak hat eine Synchronisation mit LDAP (eigentlich eine "Federation").
    Es ist zwar im Setup (Container) einfach, aber will man die vollen Möglichkeiten ausschöpfen (Rollen/Gruppen), muss man sich intensiver in die Thematik einarbeiten. Auch die Oauth-Client/Server-Konfigurationen sind dann im Detail nicht trivial. Aber Du willst ja "weil's geht" ;)


    Chris