-
Notifications
You must be signed in to change notification settings - Fork 157
feat: support desktop and mobile specific OIDC issuer and client_id
#2072
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
I don't think we should allow/encourage using different OIDC issuers (and client ids) for web and desktop/mobile clients. Also, I would add the OIDC scopes to request during authentication, just like it is already possible for the web client with |
You are right that using different Issuers would break user identity (tough that is necessary to register unique urls from and idp like Authentik), but having separate Client IDs for Web and Native apps is actually standard OIDC practice. Some IDPs (like Google Identity or Zitadel) strictly enforce this separation for security reasons (handling localhost vs https redirects) and completely refuse to mix Web and Native configurations in a single Client ID. As long as the Issuer remains the same, the user identity stays consistent. So having the option to provide 2 different Client IDs is necessary so that Owncloud can be used with standard security practices / even work at all with some IDPs. |
Could you elaborate on this point? During my use of OIDC (mostly in the self-hosting area), I never encountered such applications. But anyway, if there are servers that make such requirements (different Client ID per redirect URI, IIUC), we should of course support that.
Could you explain what you mean by that? As far as I know, Authentik supports defining multiple redirect URIs per client. |
Eg. in Zitadel you are forced to create a seperate app both for WEB and Native. You cannot add a local redirect uri like oc://android.opencloud.eu or even http://127.0.0.1 to a WEB app. Vice versa you cannot add a normal url like https://your-domain.example.com/oidc-callback.html to a native app. OpenCloud even reccomends having 3 seperate clients. One for Mobile App, one for Dekstop App and one for WEB. So it would be compatible with Zitadel and many others if simply the CLIENT-ID could be set manually.
Yes authentik supports different URIs per client and I think even the renaming of client ID (thus being able to name the client fixed default names from OpenCloud) but each App is a different issuer URL: See currently open issue: |

Description
Enables identity providers that require separate OIDC clients per application type (like Authentik, Kanidm, Zitadel) to work with OpenCloud clients.
http://openid.net/specs/connect/1.0/issuer/desktop)http://openid.net/specs/connect/1.0/issuer/mobile)client_idproperty in WebFinger link responsesConfiguration
Motivation and Context
This problems solves opencloud-eu/desktop#246 and is a complementary PR to opencloud-eu/desktop#766.
Besides the PR for the desktop app, similar changes are needed for the iOS and Android sources.
Screenshots (if appropriate):
Types of changes
Checklist: