-
Notifications
You must be signed in to change notification settings - Fork 2.8k
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
Support grouping the OIDC configuration by the IDP names #5964
Comments
I would discourage supporting social providers directly beyond allowing users to configure them as OIDC providers. It requires a lot of maintenance, documentation and testing. Then there's also the case that in most such cases you want to add multiple providers, not just a single one, which raises a lot of problems. How does a user select which one they want to do? Do you know add a login page which adds support to list identity providers? How do you map attributes from different providers into an internal model? I could go on and on on how much effort it is to provide identity brokering in a proper way. |
By the way we have this great thing called Keycloak that does all of the above. So I would rather see blog posts and ideas on how to enable social login on Quarkus using Keycloak. Let's focus on making that experience super simple and nice rather than duplicating the effort here. |
@stianst thanks. As long as it is OIDC it should be fine I guess, though indeed the brokering is something I'd recommend as well, see the thread. I'm not really sure if the users are ever doing it directly. Stephane, @FroMage, can you comment please ? |
@stianst Hi Stian, re Keycloak and the social login, am I right in assuming that as far as Quarkus OIDC adapter is concerned, the existing |
Commented on the thread. What he's asking for is basically Keycloak ;) |
For social there's really only 3 options that makes sense:
It's way out of the scope of Quarkus to become some sort of trimmed down IdP. |
@stianst Yeah I was just about to comment, Stephane was concerned it (or whatever the immediate IDP the users work with) could not be available in some cases, but Keycloak is freely downloadable :-). |
Well, no, I'm not asking to reimplement Keycloak, but what our story is for people who want to provide social logins as an option without having to use Keycloak. A LOT of sites handle login by delegating to whatever OpenID provider, like this: https://doodle.com/login I didn't think we could afford to tell users that to use external openid providers they had to use Keycloak, but it looks like you're saying that's what we should tell them? |
@stianst Definitely but Sebastien's proposal is only about selecting an OIDC adapter connection configuration. Actually, may be we are talking about the multitenancy here :-) |
Same for https://gitter.im/ |
My question is: what's our user story for an app developer to use openid of any of the famous providers, without using keycloak? I want to write a Quarkus app that delegates login to Google/Github/Facebook: what does my app look like? |
@FroMage not at all. Users can use whatever external OpenID Connect provider they choose. That could be Google, Auth0, Octa, or Keycloak. Now if they want to use multiple providers, have users locally registered, etc. they should make a choice on an IdP that supports that for them. |
@FroMage It looks like to me now this issue is effectively a duplicate of #4448. Of course we'd recommend to use Keycloak and I don't see the users preferring to work with the quality IDP like Keycloak as per @stianst 's advice starting doing it all manually, but once #4448 is fixed, the users would be free to do whatever they want really since the configuration would be dynamically loaded |
Doodle for instance quite likely uses an IdP or they've gone and implemented a whole bunch of stuff themselves. |
@sberyozkin that's correct with #4448 users can configure multiple IdPs, then create some sort of login page that let's users select which IdP they want to use. |
OK fine. |
Description
Stephane @FroMage has opened a discussion about the application directly supporting the social/well-known provider logins (Google, Facebook, GitHub, etc) without expecting that the on-site IDP like Keycloak is installed which can support the delegation to these providers. So the application can offer some local login option (name/password for ex plus try to enrich it with some publicly available OIDC IDP options)
Implementation ideas
Sebastien @sebastienblanc has come up with the idea of grouping the OIDC configurations by the IDP name, for example:
Note the only thing which varies is a qualifier like
linkedin
orfacebook
.The OIDC adapter will figure out which configuration to use based on some convention, for example, if a
Login with LinkedIn
is pressed then it would be up to the application to setup an HTTP context property or header like "IDP: linkedin" etcThe text was updated successfully, but these errors were encountered: