-
Notifications
You must be signed in to change notification settings - Fork 498
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
Keycloak SPI for Builtin Users Authentication #11193
base: develop
Are you sure you want to change the base?
Conversation
This comment has been minimized.
This comment has been minimized.
… DataverseUserAdapter
…n-users-oidc-auth
This comment has been minimized.
This comment has been minimized.
1 similar comment
This comment has been minimized.
This comment has been minimized.
…gh Dataverse API call
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
1 similar comment
This comment has been minimized.
This comment has been minimized.
I haven't even looked a the code yet but I'll at least share some screenshots showing it works great! 🎉 🚀
Yes, I do wonder about duplicate accounts. Hmm. 🤔 |
FWIW: In general Keycloak can link accounts. At QDR, if you login via ORCID or Google and we can match the account based on email, Keycloak pops up a 'do you want to link your account' dialog rather than creating a new account that conflicts with an existing one. I'm guessing it's just a matter of Keycloak config to make that happen here too. |
Yeah, I'm a bit worried that emails can be spoofed though. 😟 |
What you match one, whether emails are verified, etc. are all configurable. I'm not saying it's solved - just that it's probably a matter of configuration rather than programming. |
…n-users-oidc-auth
📦 Pushed preview images as
🚢 See on GHCR. Use by referencing with full name as printed above, mind the registry name. |
What this PR does / why we need it:
The only modifications I made to Dataverse include:
This PoC can serve as a foundation for a more refined implementation. However, there are still aspects to explore, such as handling potential account duplication (when a user has both built-in and external IDP accounts) and further improving the SPI implementation.
The SPI has been implemented following the docs https://www.keycloak.org/docs/latest/server_development/index.html#_user-storage-spi
Before running the environment, you need to build the SPI .jar file. Use
mvn -Pextension clean install -DskipTests=true
located inside theconf/keycloak/builtin-users-spi
folder.If you want to run this branch on your localhost, once the containers are up and running, you need to register the SPI in Keycloak. In a future iteration, it would be interesting to move this configuration to the realm config JSON file so that it auto-configures on startup.
You can do this as shown below:
kccconf.mov
You can run the SPI in the dataverse-frontend (branch: https://github.com/IQSS/dataverse-frontend/tree/poc/oidc-builtin-users) by running the environment pointing to this branch with
./run-env.sh 11157-builtin-users-oidc-auth
Remember to add the SPI provider through the Keycloak admin console ( http://localhost:8000/admin/ kcadmin/kcpassword)
builtinusersspa.mov
Which issue(s) this PR closes:
Special notes for your reviewer:
Suggestions on how to test this:
Does this PR introduce a user interface change? If mockups are available, please link/include them here:
Is there a release notes update needed for this change?:
Additional documentation:
https://www.keycloak.org/docs/latest/server_development/index.html#_user-storage-spi