this post was submitted on 16 Mar 2024
93 points (97.0% liked)

Selfhosted

40341 readers
858 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 1 year ago
MODERATORS
 

What's everyones recommendations for a self-hosted authentication system?

My requirements are basically something lightweight that can handle logins for both regular users and google. I only have 4-5 total users.

So far, I've looked at and tested:

  • Authentik - Seems okay, but also really slow for some reason. I'm also not a fan of the username on one page, password on the next screen flow
  • Keycloak - Looks like it might be lighter in resources these days, but definitely complicated to use
  • LLDAP - I'd be happy to use it for the ldap backend, but it doesn't solve the whole problem
  • Authelia - No web ui, which is fine, but also doesn't support social logins as far as I can tell. I think it would be my choice if it did support oidc
  • Zitadel - Sounds promising, but I spent a couple hours troubleshooting it just to get it working. I might go back to it, but I've had the most trouble with it so far and can't even compare the actual config yet
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 20 points 8 months ago (2 children)

Keycloak seems complicated, but it's actually not that complicated if you use it for simple OIDC provider.

Just create a new realm, then go to client -> create. Enter your client-id, with openid-connect as protocol. Then, set access type to "confidential", set valid redirect uri to "https://" (or even "https://*" if you're lazy and want to use it on multiple apps). Then hit save and go to the credential tab to copy your client secret. Then head to "users" menu to start adding users to your realm.

That's the basic setup which should be good for home use. The good thing about keycloak is, as you grow your homelab, whatever stuff you may need later can be provided by keycloak. Want some users to have access to app A, but not app B? 2 factor auth? Allow users to login with google account? Heck, allow users to login with another sso provider (chaining)? You can do pretty much anything.

[–] [email protected] 1 points 8 months ago (2 children)

Does that work with gitea? I was able to get it working with Authentik but wasn’t able to get it working on Keycloak.

[–] [email protected] 2 points 8 months ago

Yep. I've got a test instance working with keycloak. Post up the problem you're having and i can check it against mine. I think all of it was configured via UI on both except there are two changes in the gitea config.INI that allowed that auth and auto created users if they didn't exist yet.

[–] [email protected] 2 points 8 months ago

If you have some error message, it would be easier to identify the issue. Typical problems:

  • incorrect redirect url
  • incorrect endpoints on gitea. I haven't used gitea yet, but keycloak changes their openid configuration endpoint from [your host]/realms/[your realm]/.well-known/openid-configuration/ to [your host]/auth/realms/[your realm]/.well-known/openid-configuration/, and some apps still use the old one. You might be able to correct this by manually entering keycloak endpoint in your oidc settings.
[–] [email protected] 1 points 8 months ago (2 children)

That doesn't sound too bad, thanks for the instructions. I'll probably give keycloak another try too.

Do you know what kind of cpu memory usage it has? I saw the newer versions are supposed to be lighter, but haven't tested it yet.

[–] [email protected] 2 points 8 months ago

Currently it's using ~511MB of memory, which is comparable to typical web apps. CPU usage is almost zero because it's idle most of the time (you're practically only using it on login only).

I'm still on keycloak v19 and haven't had a change to upgrade to the latest version yet and have no idea how much memory the latest version will use, but I remember testing keycloak before they migrated to quarkus and it was sitting at ~2GB memory and was immediately turned off by it. I gave it a try again after I heard the memory usage got better and stick around since then.

[–] keyez 2 points 8 months ago

I've had one realm with 5 clients and nothing crazy setup running for about 3 years across 3 major versions and haven't had many problems