OIDC federation? #144
Labels
No labels
bug
chore
documentation
enhancement
help
in-progress
question
ready-for-release
released
translation
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
adam/gate#144
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Describe your idea for an enhancement:
VoidAuth solves so many of my previous many questions about SSO in a homelab. The only thing it is missing is a way to bind with third parties. The main one for me, is Discord - and there is a lovely project that maps their OAuth2 API to OIDC, so the
groupsclaim becomesguilds- and so, you can group-filter by the servers someone is in. This way, I want to filter access by people to specific services.Project: https://github.com/celsiusnarhwal/snowflake
So, my feature request is quite simple: Users may log in with a "federated" OIDC, with their information stored/synced into VoidAuth, so I can use the ProxyAuth semantics to authenticate "local" and "remote" users.
Describe alternatives you've considered:
I haven't heared of something that would fit in here, sorry...
Additional context:
My entire homelab lives in Kubernetes with a few exceptions. Within, there are a few services that do not have authentication - like Pinchflat - that I want to/need to protect so my friends can safely access it. Since most of my friends are on Discord (I own two small servers) I want to use Discord as a hacky RBAC solution x)
Other services like Grafana can just use OIDC, so that's simple enough.
I have been trying so hard for so long to find a solution to get both local and remote users under the same roof and properly authZ'd per domain/route per group (= role). @.@ VoidAuth looks awesome, has ltierally all the features I want - except remote users. Very, very cool project!
OIDC federation sounds very cool, and may be something I look into soon ™️
I suspect support would require significant rewriting, so it may be a while
All good - glad you took a look at it. :)
Yes, WebFinger support would be nice.
Just wanted to add my +1 to this...
Just FYI..
Tinyauth
OAuth2-Proxy
Pocket-ID
Kanidm
Rauthy
Authentik / Keycloak / Authelia
My point being that VoidAuth fills a niche in this space, and being able to easily let users authenticate via password, passkey or "login with google" is really a big deal. So yes, I hope you guys manage to get to this item one day.. 😄
Yeah, it would be great! The only thing I miss in VoidAuth is capability to merge several accounts into one. On my services, I prefer users to have no additional login-management, but log in with ready accounts.
Also, is there a chance it would be too complicated? Like, there's so many providers, even more small-to-medium regional services. I personally use Yandex and Github, but VK (for example) is overcomplicated because of being B2B. How will VoidAuth choose, which service will be included, and which will not? PRs? Requests?
Think it would be easier to use some universal model, which will be adapted in Docs for one of the providers. Would like to write Yandex guide, if this model would be chosen.
I think before this can be worked there would need to be some decisions about the implementation:
I am open to suggestions, there is currently no timeline for this functionality
A few insights I can offer:
https://$keycloakUrl/realms/$realmName/.well-known/openid-configuration. For OIDC providers that do not offer this (of which I genuenly don't know any), those URLs are often default paths. So basically, a dropdown that pre-fills parts of a form, is effectively half the way.Those are just my insights from setting up a whole crapton of those over the years at my company, doing the mappings and whatnot. For example; I am mapping our Windows Active Directory to Keycloak Groups via their group-mapper, which I can then use in ArgoCD to determine that anyone with the group "Department-Technician" should have admin rights - whilst certain others have moderation permissions and the rest is plain read-only. But, different applications handle things...well, differently.
The
groupsclaim is kinda universal;rolesI have not met a whole lot so far. Other claims likeopenid,profileandemailare very common.I hope this helps! =)