mirror of
https://github.com/moghtech/komodo.git
synced 2026-03-08 23:02:40 -05:00
bug(oidc): komodo fails to fetch user details from IdP user info endpoint #392
Reference in New Issue
Block a user
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?
Originally created by @Crowley723 on GitHub (May 28, 2025).
Komodo's OIDC authentication implementation only uses claims from the ID token and does not fetch additional user details from the provider's UserInfo endpoint when required claims are missing.
Expected Behavior:
When authenticating via OIDC, users should see their email address and full name in Komodo, regardless of which claims the provider includes in the ID token.
Actual Behavior:
Users authenticated through OIDC providers that don't include email/name/groups claims in the ID token (like Authelia 4.39+) appear with their sub claim (UUID, or other identifier) instead of their email address, and have blank user info fields.
Steps to Reproduce:
Additional Information:
I believe this issue is the same one fixed by https://github.com/mealie-recipes/mealie/pull/5228 in Mealie.
Per the OIDC spec, it is not required for OIDC providers to return anything except for specific claims in the id_token given to the client after authentication. As such, if the client expects info about the user (such as email, username, etc) they may have to fetch said info from the provider's user info endpoint.
In the recent update for authelia (4.39), we stopped including this information (to achieve OIDC certification) by default which requires some clients to use the UserInfo endpoint. We provided a workaround for admins to continue using the old method but this is a band-aid fix.
Possible Solution:
As can be seen in the mealie pr, this should be a fairly straight forward fix, if the returned token doesn't contain the required information about the user, fetch it from the UserInfo endpoint instead.
@mbecker20 commented on GitHub (Jun 8, 2025):
Thanks for pointing this out, it should be addressed in 1.18.2