This is a hugely requested feature for many years and a huge hole in my entire self hosted ecosystem. Every self-hosted app I have connects to my Authentik system for user management… Except home assistant. Arguably one of the apps I need it for the most for the whole family to use with their accounts.
Devs have been resistant for some reason.
There is now a community integratation that allows user management for HA to be via any openID backend (authentik, keycloak etc).
I’ve been running it for a few days and it works perfectly. Very easy to setup if you already have a working authentik setup and know how to use it with other apps like immich.


If i created a service I would go in the opposit direction. Only offer SSO and no other option.
You loose quite a bit of complexity that way.
I would hate it if google and apple would be the sole identity providers. If they lock me out, I’m lost. That’s what a majority of people do. And services have the power to choose the identity provider. Most offer only that and that’s horrible.
I should have been more clear.
I meant for self hosting.
Though realistically, even if the service is provided for the public, you could just use an instance of keycloak or something similar with open registration. That’s what an association I’m close to is doing already.
I see you. There are spillover effects. If we don’t use and support passwords, others wont either.
It’s not even that my government provides the identity but a foreign, autocratic, power hungry company
With keycloak you can have a single local password to all your selfhosted apps: you sign in to keycloak, then you sso into everything else from there. I’m building that out on my homelab right now, and it’s working fine.
There are auth libraries that you can just plug into your app so you don’t even have to worry about that part yourself and just focus on the app
https://authjs.dev/getting-started
That is exactly the complexity I wouldn’t want. With just SSO it is enough to send a redirect URL to the browser and on the callback set a cookie. No js needed. If your service gets compromised and someone leeks the credentials, just log everyone out.
Problem is requiring a browser if it’s not primarily a web interface. Even if initial setup is web-based, a lot of times background processes exist that don’t traverse the internet, especially in higher security situations, so exposing those components to the internet just to get external credentials is not worth it, so then an additional proxying component is required. Anyway, the idea is that it can add a significant amount of complexity if it’s something more complex than a simple, single component web application.