Skip to content
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

GW refactoring: Login service #625

Open
olevski opened this issue Feb 1, 2023 · 2 comments
Open

GW refactoring: Login service #625

olevski opened this issue Feb 1, 2023 · 2 comments

Comments

@olevski
Copy link
Member

olevski commented Feb 1, 2023

This should replace the service that is currently implemented in the gateway in python. This service does the following:

  • intercepts the authorization code from the oauth flow to get access and refresh tokens
  • stores the refresh and access tokens in redis
  • creates the user session in redis (upon successful login for registered users)
  • creates the user session in redis for anonymous users (this requires no login)
  • guides a registered user through all the services (i.e. keycloak and gitlab) that they need to log in and redirects to the proper url(s)
  • logs the user out and removes their session
  • provides the user information about their session - i.e. is the session valid and when it expires
  • provides the ability to refresh a session - for this we issue a new session ID

The idea is to start with a api spec here, generate code from it with this library and then implement the code to handle all the endpoints from the spec.

The idea is that everything follows the api (i.e. swagger) spec. So for adding endpoints we do the following:

  1. Edit the api spec
  2. Generate code
  3. Implement the endpoint
@olevski
Copy link
Member Author

olevski commented Feb 1, 2023

Use issue #622 to finish the api spec here before you start this issue.

@m-alisafaee m-alisafaee moved this from Backlog to Ready in renku-python Feb 9, 2023
@olevski olevski moved this from Ready to In Progress in renku-python Feb 22, 2023
@olevski olevski self-assigned this Feb 22, 2023
@olevski
Copy link
Member Author

olevski commented Jun 7, 2023

The initial implementation of this used components from the oauth2 proxy library we use in every session. However this proved to be very messy. So a rewrite with https://github.com/zitadel/oidc was initiated but never finalized.

@olevski olevski moved this from In Progress to Ready in renku-python Jun 7, 2023
@olevski olevski moved this from Ready to In Progress in renku-python Jun 19, 2023
@olevski olevski moved this from In Progress to Backlog in renku-python Oct 10, 2023
@Panaetius Panaetius moved this from Backlog to Ready in renku-python Oct 11, 2023
@Panaetius Panaetius moved this from Ready to In Progress in renku-python Oct 18, 2023
@olevski olevski moved this from In Progress to Ready in renku-python Oct 18, 2023
@olevski olevski removed their assignment Oct 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Ready
Development

No branches or pull requests

1 participant