feat: support OIDC authentication#184
feat: support OIDC authentication#184michaelhthomas wants to merge 73 commits intoseerr-team:developfrom
Conversation
|
You may want to blur some of the info in the image |
|
Ah I see that you resolved the merge conflicts. Was going to ask. Thanks |
|
@michaelhthomas Hi. I tried to test this PR, however, during first setup in the library step, I get this error and I am not able to continue it setup |
|
Uh oh... I'm pretty sure that means you made it to the second page but aren't logged in with Plex or Jellyfin, which probably means the login failed and I need to add some better error handling. Which one were you testing? |
Jellyfin. That is from the libraries setup page right after logging in |
|
@fallenbagel Found the bug and am working on a fix. Got a question...right now there's a value for |
|
We need the |
|
Ok sweet. I'll test Emby with my current implementation to make sure everything works as expected, and when it's implemented properly there will probably be some changes that need to be made to the login window / setup wizard. |
I have not tested yet but if it works for emby it should work for jellyfin. Will test tonight |
|
I tested the setup and it indeed worked. However, as I have no way of testing OIDC, I will deploy this as a preview tag ( |
|
@fallenbagel resolved the merge conflicts. OIDC is working great for me (using authentik) but would love to have some others test with different OIDC providers. |
Is LDAP possible with this? (I don't really know OIDCs and stuff so) |
Not directly. A number of oauth2 / OIDC providers do integrate with LDAP (including authentik) for authentication, but oauth2 is much higher level. Where LDAP acts more like an external users database, an OIDC/oauth provider handles all the sign in and authentication logic. Plex SSO actually uses oauth2 afaik, it just doesn't conform to the OIDC standard. |
|
I can test with Keycloak, just learning how to compile and run this build still. |
If you want to compile it natively to test instead of the deployed docker snapshot, pull this PR and try it And please provide feedback. Feedback is very much needed (since this is kind of a big feature) |
|
Howdy, I am excited to see this MR, its certainly something that is missing in my setup and hence i (somewhat selfishly) want to help. My relevant setup: I have never implemented open id login mechanism but I have connected few applications to OpenID that Authelia provides (as outlined above), I am happy to test and provide feedback. I have ran your branch locally and have few questions. A typical config in Authelia looks something like this (I believe data needed to setup is somewhat similar for KeyCloak +- some small details) In particular both Authelia and the app (Jellyseerr in this case) need to have id and the secret, both of which are chosen by the client.. In addition authelia (keycloak also) needs the callback url and the required scopes. In your implementation I see place for id but not the secret, is there a way of adding this ? I also do not know (maybe i am missing something obvious) what the callback url is and what scopes are required. |
Because Jellyseerr is a SPA (single page app), it uses the OAuth PKCE authorization flow instead of the traditional authorization flow. Since all of the login and (most of) the validation logic occurs on the client when using this flow, the client secret is not used. This is a "public" authorization flow, so the configuration will look a little bit different from apps using the traditional authorization flow. This looks to be the relevant configuration option for Authelia, and other providers should have similar options. In order to maintain security with this mechanism, be sure that the redirect URLs are limited only to your Jellyseerr instance ( |
|
That makes a lot of sense! I take it then I need something like this I am building the docker image now, will shortly deploy and update. |
Docker image is already built tho. Can be access through |
|
This pull request has merge conflicts. Please resolve the conflicts so the PR can be successfully reviewed and merged. |
For those that have been running authelia and recently updated, this suggested change fixed my errors post update. |
|
Is there a rough idea on a timeline for this support? Really want to migrate my users to jellyfin and jellyseer using Authelia as user management |
|
I have managed to set this up with authelia, but there is one small error, when signing out it redirects to: https://jellyseerr.example.com/api/v1/auth/undefined instead of the login page or whatever page it was trying to redirect to. |
|
Any information of the status of this PR? Currently using the preview branch which seems to work nicely, would love to see it merged. |
Hello, you should have a look here #883 |
I dont 100% understand why this cant be parallel? So this PR being integrated before Linking is introduced. Just seems this feature will be pushed more and more because of more and more changes to the underlying system and parallel development state. :/ |
|
I agree with @Ruakij, it seems this has been pushed for over 2 years yet there’s a build with the feature fully operational. Are there any downsides to merging what’s in |
|
This PR is way outdated. It's not even close to the state that And if you look at #926 you can find that it's in the roadmap. But we need to completely rework this pr to even be compatible. |
|
Alright @fallenbagel, no worries. Thanks for the work! |
|
If there are some rework here. We should change the callback schema to allow https even if you run it in http because you can deploy Jellyseer behind a reverse proxy which is quite common. |
|
Im still running a really old dev branch as i don't want to break all my user logins if anyone moves to a newer branch and it functions can you please @ me. I understand this branch is in a rework state |
|
Hi @michaelhthomas! Is this PR abandoned? It sure looks that way and someone else could continue the work? |
Hi! Please read the earlier discussion. This will be revisited and implemented, but not in this PR. For now, I'll probably close this. |
Hi! I did read the previous messages in the thread but it wasn't apparent to me what's the actual state except that it needs to be remade. |
|
Looking forward to OIDC support in the official release. |
@michaelhthomas Is this still in your short-term plans ? |
|
I'm locking this thread because nothing relevant is being said here. |
|
The |




Description
Adds support for logging in using an OIDC Identity Provider (Auth0, Authentik, Keycloak, etc.).
Refactors Plex OAuth login to be in its own component, like the other identity providers.
Screenshot (if UI-related)
To-Dos
yarn buildyarn i18n:extractIssues Fixed or Closed