A long symmetrical corridor lined with many identical wooden doors, each with its own brass lock, one door slightly ajar at the far end.

The SSO Tax: Which Self-Hosted Apps Are Actually Worth It?

A long symmetrical corridor lined with many identical wooden doors, each with its own brass lock, one door slightly ajar at the far end.
An original editorial image by Aura for Oddbyte: a corridor of many differently locked doors, a picture of giving each app the account model it actually needs.

The urge to SSO everything

When you stand up a self-hosted identity layer, the first instinct is to point everything at it. One login, one place to revoke access, one clean kill switch. It’s a satisfying picture.

The second instinct — the one that actually matters — is to ask what single sign-on is buying you, and what it quietly breaks.

The test that matters

For me, SSO is only worth doing when two things are true. I can trace an action inside an app back to an individual, not just “someone who cleared the login screen.” And putting an app behind SSO doesn’t quietly hand every authenticated person the same keys.

If an app gives every member of a group full admin the moment they log in, that’s not single sign-on. That’s a door with one handle and a sign that says “please don’t.” That’s the line I won’t cross.

The three buckets

Running every app in the stack through that test produces three piles, and they’re satisfyingly clean.

  • The good fits are apps with native OpenID Connect and a real per-user model — Grafana, Paperless-ngx, Portainer, Wiki.js, Homebox, Komodo. Each person gets their own account, groups map to roles, and admin is something you grant on purpose. These are worth the effort.
  • The caveats are the proxy-only apps — Sonarr, Radarr, Tautulli, the dashboards, the monitoring surfaces. There’s no native SSO, so the proxy sits in front and gates the door, but the app itself has one shared login. Fine for a single-admin home lab, but it buys you no per-person attribution.
  • The not-fits are the interesting ones. Plex runs its own cloud identity and can’t be an SSO client. Home Assistant has its own token model and no clean OIDC path — wrapping it in a proxy would grant blanket access, not attribution. InfluxDB and Prometheus are admin UIs you reach through Grafana anyway, so SSO-ing them directly adds nothing.

The SSO tax, in the wild

The audit surfaced a few surprises worth naming, because they’re the kind of thing you only learn by checking.

n8n ships OIDC and SAML — but only in the Business and Enterprise tiers. The community edition has no SSO at all. There’s a third-party community plugin that bridges the gap, but “native OIDC” on the tin doesn’t mean “native OIDC for you.”

Seerr’s OIDC support is real but still lives in a preview branch, not the stable image. The mature path is its existing Plex-based sign-in, and chasing the preview would be paying the SSO tax twice.

And in the other direction, Komodo turned out to support native OIDC when I’d assumed it was proxy-only. Assumptions are cheap; checking is what the catalog is for.

The bug that looked like a broken connection

The one genuinely teeth-grinding moment was the directory sync. It kept throwing an error that read like a severed link — except the bind worked, the certificate matched, and the scheduled sync was succeeding every fifteen minutes.

The real cause was a single trigger passing the source’s name where the system expected its ID. A slug where a UUID belonged. One string in the wrong shape, and every symptom pointed at the network.

It’s a good reminder that “the connection is broken” is often a story the error message is telling you, not the truth. The truth was one field that had drifted.

The full catalog

Every application in the register, scored by the same three questions: does it do native OIDC, does it collapse to a single shared login, and how much effort is it to bring under single sign-on.

Application Native OIDC Native LDAP One user only Level of effort Done Notes
Grafana Yes Yes No Medium
Paperless-ngx Yes No No Medium Yes OIDC only; no directory bind
Portainer Yes Partial No Medium N/A Software will be sunset
Wiki.js Yes Yes No Medium No Off Network – not sure how this would work
Homebox Yes No No Medium OIDC only
Komodo Yes Yes No Medium Yes
NetBox Yes Yes No Medium
Discourse Yes Partial No Medium Yes LDAP needs a plugin
Mealie Yes Yes No Medium
Vikunja Yes Yes No Medium
DoneTick Yes No No Medium OIDC only
Homarr Yes Yes No Medium
AdventureLog Yes No No Medium OIDC only
Sonarr No No Yes Low
Radarr No No Yes Low
Tautulli No No Yes Low
Maintainerr No No Yes Low
SearXNG No No Yes Low I need to see what the
Uptime Kuma No No Yes Low admin-only tool
Pi-hole No No Yes Low admin-only tool
Backrest No No Yes Low admin-only tool
NZBHydra2 No No Yes Low Aura said this isn’t possible – I’m pretty sure it is
IT-Tools No No Yes Low
Homepage No No Yes Low Yes superseded by Homarr
PriceBuddy No No Yes Low Yes I’m not sure if this is valuable enough to keep around
Paperclip No No Yes Low custom app
Paper-Ledger No No Yes Low custom app
Flightlog No No Yes Low
n8n Partial Partial Yes High OIDC + LDAP are Business/Enterprise-only
Seerr Partial No No Low OIDC preview-only; use Plex SSO
ntfy No No No Low token auth, not SSO
Plex No No — — — Plex.tv cloud auth
Home Assistant No No — — — own auth model
InfluxDB No No — — — access via Grafana
Prometheus No No — — — access via Grafana
HomeLable No No Yes — — no per-user attribution

The LDAP question

The follow-up worth asking: if an app already speaks OIDC, does it also speak LDAP directly? If so, we could bind those apps to the directory and skip the identity layer in front of them.

It doesn’t collapse that cleanly. Seven of the OIDC apps also do native LDAP — Grafana, Wiki.js, Komodo, NetBox, Mealie, Vikunja, Homarr. Those could bind straight to the directory and drop the OIDC hop. But Paperless-ngx, Homebox, DoneTick, and AdventureLog are OIDC-only, so there’s no directory bind for them, and Portainer, Discourse, and n8n only do LDAP partially or behind a paid tier.

So Authentik isn’t redundant — but the LDAP column is the short list of apps that could stand alone if we ever wanted to slim the layer down.

What I’d tell a past version of me

Don’t start from “what can I SSO?” Start from “where does individual accountability actually matter, and where is a shared login honestly fine?” The catalog then writes itself, and the not-fits stop feeling like failures and start feeling like clarity.

Similar Posts