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

Alternative authentication methods for the http API #413

Open
gkju opened this issue Oct 31, 2024 · 1 comment · May be fixed by #447
Open

Alternative authentication methods for the http API #413

gkju opened this issue Oct 31, 2024 · 1 comment · May be fixed by #447
Assignees

Comments

@gkju
Copy link

gkju commented Oct 31, 2024

Currently, the Django rest framework is configured to use an API token flow which is best suited for non-interactive clients. Adding an alternative OAuth2/OIDC-based flow could greatly simplify developing interactive applications interfacing with the API (automated login) and improve users' security (revoking leaked tokens, easily rotating them, per-client tokens). Moreover, it could enable kurs.oi.edu.pl to seamlessly interface with szkopul, using an oioioi installation as an authentication server for other apps.

I would like to implement this as an optional feature during TAG as there's a rather popular OAuth2 and OIDC implementation for django, https://github.com/jazzband/django-oauth-toolkit, which claims to be rfc compliant, however authentication is a mission critical part of oioioi and any bugs could prove catastrophic (for ex. the oauth-toolkit linked allows all users to register clients by default which is a really bad idea). OAuth could also be considered bloat for most installations.

@gkju
Copy link
Author

gkju commented Dec 16, 2024

I created a MVP in #447

@gkju gkju self-assigned this Dec 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant