-
Notifications
You must be signed in to change notification settings - Fork 500
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
Refactor authentication provider JSON configuration #6694
Comments
@poikilotherm yes, I've always felt I guess I have a few questions:
|
Ad UI) Sure! We can simply leave it alone and change the UI at a later point in time. I just thought this would be the right moment to introduce this functionality. If you folks tend to leave that stuff out of the game, we shouldn't include it in the first place (so remove it from the schema) to avoid unsupported properties staying around again (like subtitle did). Ad DB) These are some minor changes, but yes, I will of course append a Flyway script. Ad Time) Well this is kind of a blocker for things like configurable provider options regarding trust etc. So this should be done first... Happy to assist with everything except Shibboleth (although that one is mostly untouched). |
@poikilotherm it would be helpful to move this forward without an UI changes, especially if this is blocking other work. Thank you! |
…onProviderConfigurationException as we remove the current factory pattern, remove invalid catch in Admin API. IQSS#6694
…ated into the code pathes. IQSS#6694
…n converter from Jackson to JSR 353 JSON-P world including tests. IQSS#6694
Had a VC with @qqmyers and @scolapasta yesterday about this issue. Summary:
|
@poikilotherm Are there any updates on this issues? Should it stay open or can we close it? |
This is related to #6515, #6679 and of course #5974.
To configure an authentication provider in Dataverse, you need to send a JSON document to the Admin API. Example for OAuth2.
Within the document, the real options for your provider are encoded in a string:
This is not very convenient in terms of validation, readability and extending. With upcoming changes to provide more configuration options for an authentication provider like what to override, what can be trusted etc etc, this should be changed to sth. more sophisticated.
The different providers are also very inconsistent in what you can do with them. For example, OAuth2 providers can have a customizable title, while the Shibboleth provider cannot.
I propose to switch to something like this:
Please find a complete JSON Schema (in draft-07 notation) for details, unambiguity and precision in my gist. It can be used to play for example on https://jsonschemalint.com or any other draft-07 compliant editor/validator.
Notes:
AuthenticationServiceBean
to change the concept ofAuthenticationProviderFactory
to provide a factory for every provider we offer instead of grouping the OAuth2 ones. The benefit is the reduced complexity and increased unambiguity.subtitle
option. It has never been used and should be replaced withdescription
. That could offer a better approach for things like those we do for ORCID, but in a more general fashion and more flexible.This is most likely to trigger the UI team, as we might decide to actually implement that
description
andlogo
support... 😉 Triggering @TaniaSchlatter @djbrooke @scolapastaI think this is from a technical perspective a smaller issue. It requires some refactoring, but the auth flow is untouched. It's mostly about how the configuration flies in and which providers are built.
The text was updated successfully, but these errors were encountered: