I'd like to set up my identity and authentication service for my self hosted applications but it is not a beginner friendly subject.
I'm aware of the various tools available; authentik, authelia, LLDAP, keycloak, etc and see lots of useful discussions on them which is great.
But I can't seem to find a beginner friendly introduction to setting up one or more of these tools that helps me understand the core concepts at the same time. Does such a thing exist?
I'd like to try out LLDAP and Authelia on my home lab and then possibly roll this out to my production services.
But every tutorial I've come across seems to assume a fair amount of knowledge that I don't think I have.
For instance if I deploy LLDAP what should I use as my base DN? And how can I seperate a homelab directory from a seperate production directory?
Thanks for the pointer, I'll check it out. I don't think I've come across SWAG before, and a web search comes up with lots of references to sleeping bags (I'm in Australia - https://outbackreview.com.au/best-swags-australia/). Could you provide pointers and/or a homepage? Thanks in advance.
Which, if I'm reading it correctly tells me that SWAG (Secure Web Application Gateway) is essentially a web server, reverse proxy with lets encrypt support. It doesn't seem to do any authentication.
Authelia is a component of an identity and authentication solution that provides single sign on and 2FA but, crucially, does not include a user directory, by default it uses a YAML file but can be connected to an LDAP server - https://www.authelia.com/overview/authentication/first-factor/
Which I think goes towards the point in my original post - none of this is simple so I'd like a nice explanation that helps me understand what I need running, how they work together and what settings to use.
And something like "swag selfhosted" or "swag linuxserver" would have been a better search term. You need to lead the horse at least slightly in the direction of water when it comes to Google searches.
I don't have a simple guide, but it's probably a good idea to reduce the number of moving parts if you're trying to keep stuff simple. So pick something that has all the features in-one (user management, authentication, authorization, ...). They might not be the best at ever single thing (they almost certainly won't), but doing it all usually means that it's easier to configure and you don't need to wire multiple things together.
I've recently moved from Authelia to Authentik due to some features that I was missing/wishing for, but between those two I'd definitely say Authenlia is easier to get running initially (and you don't need external LDAP for it, as others have mentioned).
You'll probably still need a proxy that can do proxy auth because not all services can do OICD/OAuth2. I'm using Traefik, but heard that Caddy is easier to set up initially (can't compare myself).
I know this isn’t what you’re asking for but I think this is still a good starting point. Like you correctly surmised, identity and authentication management is not an easy subject and does require extensive experience and theory.
Hint: you don't have to use ldap to use authelia (I haven't bothered). It's a bit awkward to use though, I'd only recommend it for single-user setups (I wish they would just add support for SQLite, they already use it for 2fa and stuff)