-
-
Notifications
You must be signed in to change notification settings - Fork 394
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
feat: Implement OIDC sign-in #9251
Open
hangy
wants to merge
268
commits into
main
Choose a base branch
from
keycloak
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
+7,473
−2,181
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
github-actions
bot
added
NGINX
🐋 Docker
https://docker-curriculum.com/
👥 Users
config
labels
Nov 6, 2023
hangy
commented
Nov 6, 2023
teolemon
changed the title
[WIP] feat: Implement OIDC sign-in
feat: [WIP] Implement OIDC sign-in
Nov 9, 2023
github-actions
bot
added
Template::Toolkit
The templating toolkit used by product opener. The starting point for HTML/JS/CSS fixes.
Translations
We use a non-standard version of GetText, lack language variants support translate.openfoodfacts.org
🔐 Password
labels
Nov 21, 2023
github-actions
bot
added
the
API
Issues related to the Open Food Facts API. More specific labels exist & should be used (API WRITE…)
label
Nov 26, 2023
Signed-off-by: John Gomersall <thegoms@gmail.com>
Signed-off-by: John Gomersall <thegoms@gmail.com>
Signed-off-by: John Gomersall <thegoms@gmail.com>
Signed-off-by: John Gomersall <thegoms@gmail.com>
github-actions
bot
added
💥 Merge Conflicts
💥 Merge Conflicts
and removed
💥 Merge Conflicts
💥 Merge Conflicts
labels
Dec 5, 2024
/update_tests_results |
Signed-off-by: John Gomersall <thegoms@gmail.com>
Signed-off-by: John Gomersall <thegoms@gmail.com>
Signed-off-by: John Gomersall <thegoms@gmail.com>
Signed-off-by: John Gomersall <thegoms@gmail.com>
Signed-off-by: John Gomersall <thegoms@gmail.com>
Signed-off-by: John Gomersall <thegoms@gmail.com>
Signed-off-by: John Gomersall <thegoms@gmail.com>
Signed-off-by: John Gomersall <thegoms@gmail.com>
Signed-off-by: John Gomersall <thegoms@gmail.com>
Signed-off-by: John Gomersall <thegoms@gmail.com>
Signed-off-by: John Gomersall <thegoms@gmail.com>
Quality Gate passedIssues Measures |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Account deletion
Enabling users to delete account while preserving accountability for edits
🧪 additives
Agribalyse
French LCA database used in Eco-Score computations
🥜 Allergens
🪶 Apache
We use Apache as a server to run Open Food Facts
API READ
All READ APIs include Product, Search…
API v3
API WRITE
WRITE API to allow sending product info and image
API
Issues related to the Open Food Facts API. More specific labels exist & should be used (API WRITE…)
🔐 Auth
categories
config
Data import
dependencies
Pull requests that update a dependency file
Display
🐋 Docker
https://docker-curriculum.com/
📚 Documentation
Documentation issues improve the project for everyone.
🌱 Eco-Score
https://world.openfoodfacts.org/eco-score-the-environmental-impact-of-food-products
✏️ Editing - Auto Suggest
Providing autosuggest for taxonomized fields. Mostly used in editing scenarii
✏️ Editing
🔐 external auth service
GitHub Actions
Pull requests that update Github_actions code
🥗🔍 Ingredients analysis
https://wiki.openfoodfacts.org/Ingredients_Extraction_and_Analysis
Ingredients processing
🥗 Ingredients
JavaScript
Minion
👮 Moderation
multilingual products
NGINX
🧴 Open Beauty Facts
Our cosmetic analysis project https://world.openbeautyfacts.org
🐾 Open Pet Food Facts
Our pet food analysis project https://world.openpetfoodfacts.org
📸 Open Products Facts
Our project to increase the lifespan of objects. https://world.openproductsfacts.org
📚 OpenAPI
🏭 Orgs
🎯 P1
🔐 Password
🏭 Producers Platform
https://wiki.openfoodfacts.org/Platform_for_producers
product history
We have kept 10 years of product revisions. This is useful to monitor edits & product improvements
Product Page
Products
REDIS
Site layout
⭐ top pull request
Top pull request.
🤳🥫 tagline
System to provide the mobile app with news
🧬 Taxonomies
https://wiki.openfoodfacts.org/Global_taxonomies
Template::Toolkit
The templating toolkit used by product opener. The starting point for HTML/JS/CSS fixes.
🧪 tests
Translations
We use a non-standard version of GetText, lack language variants support translate.openfoodfacts.org
🌐 Translations
URL
👥 User management
👥 Users
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What
The main aim is to use Keycloak as an IdP, and connect Product Opener as a RP. We want to move the basics of user management out of Product Opener.
In the future, this can be used as a base to enable #1204 to be implemented, even though it will probably not be part of the initial change as to not blow up the PR too much. One important requirement is to keep compatibility with the current Basic Auth mechanism.
Screenshot
TBD
Related issue(s) and discussion
Adding a task list to track progress:
main
currently has a lot of hard coded URLs)time ./scripts/migrate_users_to_keycloak.pl
with around 400.000 synthetic accounts took about 45 minutes on my desktop PC in WSL2.Save for a later phase:
Example: If the users was on
fr.openfoodfacts.org
before signing up, and they change their locale to Spanish during registration in Keycloak, do we want them to be redirected to a Spanish page instead?Problem: Differentiating between first login (because of registration) and subsequent login would have to be done based on whether or not
${userid}.sto
exists.Advantage: The client secret does not have to be exposed to the admin. However, they'll have access to the secret anyways, unless we were to store the secret in some kind of HSM.
Disadvantage: Some client configuration can be done during self-registration, but some necessary permissions like realm-management need to be configured manually by an admin, anyways.
To consider: This file currently contains information about the users' active sessions. Do we want to replace the opaque session identifier by an encrypted cookie? Also, we need some kind of directory to identify users that have used ProductOpener know if we have to do something when a deletion event comes in through Redis. (Obviously, this could be done in MongoDB or PostgreSQL instead, but is there a huge difference?)
Figure out how/if org management should be done in Keycloak(Done in MongoDB)Moved to
openfoodfacts-auth
: