Waarom ik Authentik voorlopig niet gebruik in mijn homelab

Eerder schreef ik een topic over Authentik als centrale voordeur voor mijn homelab.

Toen was ik vooral benieuwd of ik met Authentik wat meer centrale controle kon krijgen over de toegang tot mijn selfhosted services. Eén login, eventueel MFA, en daarna door naar Radarr, Sonarr, Prowlarr en andere applicaties.

Na wat meer testen ben ik daar toch iets op teruggekomen. Authentik is absoluut interessant, maar voor mijn eigen homelab bleek het minder praktisch dan ik had gehoopt.

Waar ik tegenaan liep

Authentik werkt vooral prettig met applicaties die netjes OIDC, SAML of LDAP ondersteunen. Voor sommige services is dat prima, maar veel homelab-apps doen dat niet of maar half. Dan kom je al snel uit bij dingen als forward auth, basic-auth forwarding of andere workarounds.

En daar begon het voor mij te wringen.

Bij sommige applicaties werkte forward auth prima, maar bij andere moest ik alsnog inloggen met een lokaal account. Bij weer andere apps kreeg ik gedoe met headers, origin checks of proxy-instellingen. Uiteindelijk voelde het alsof ik vooral extra complexiteit toevoegde, zonder dat ik daar echt veel gemak of veiligheid voor terugkreeg.

Wat ik nu doe

Ik heb daarom besloten om het simpeler te houden.

Mijn adminpanelen staan gewoon achter Nginx Proxy Manager, met een Access List die alleen mijn LAN en VPN toestaat.

In mijn geval betekent dat:

LAN: 192.168.2.0/24
VPN: 10.0.0.0/24

Alle beheerinterfaces zijn dus alleen bereikbaar als ik thuis op het netwerk zit of verbonden ben via VPN. Denk aan dingen als Radarr, Sonarr, Prowlarr, Bazarr, Portainer, Proxmox, NPM zelf en andere adminpagina’s.

Publieke services die echt publiek moeten zijn, blijven natuurlijk wel gewoon bereikbaar. Maar alles wat alleen beheer is, hoeft wat mij betreft niet open aan het internet te hangen.

VPN als toegangspoort

Eigenlijk gebruik ik mijn VPN nu als de centrale toegangspoort tot mijn beheeromgeving. Dat is minder fancy dan een volledige SSO-oplossing, maar wel veel voorspelbaarder.

Voor mijn situatie voelt dat beter:

  • minder onderdelen die stuk kunnen gaan;
  • minder proxy/header-gedoe;
  • geen half werkende SSO-workarounds;
  • geen extra loginlaag die per app anders werkt;
  • beheerinterfaces zijn simpelweg niet publiek bereikbaar.

Ik laat de lokale authenticatie van de apps overigens wel gewoon aan staan. De Access List is dus niet de enige beveiliging, maar vooral een extra laag waardoor de services überhaupt alleen vanaf vertrouwde netwerken te benaderen zijn.

Is Authentik dan nutteloos?

Nee, zeker niet.

Ik denk dat Authentik vooral interessant is wanneer je meerdere gebruikers hebt, centraal rechten wilt beheren, MFA wilt afdwingen, of services draait die goed met OIDC/SAML/LDAP overweg kunnen. Voor grotere omgevingen of setups waar meerdere mensen toegang nodig hebben, zie ik de meerwaarde wel.

Maar voor mijn homelab, waar ik vooral zelf de beheerder ben en de meeste adminpanelen alleen via LAN/VPN wil gebruiken, is het op dit moment vooral meer complexiteit dan voordeel.

Conclusie

Voor nu kies ik dus voor de simpele aanpak:

Publieke services: alleen wat echt publiek moet zijn
Adminpanelen: alleen via LAN of VPN
Authenticatie: lokaal in de app zelf
Extra laag: NPM Access List

Niet de meest enterprise oplossing, maar wel eentje die ik makkelijk kan begrijpen, beheren en troubleshooten.

Soms is “simpel en voorspelbaar” gewoon beter dan “mooi en centraal geregeld”.