Kinto / Kinto/kinto

Accounts API shouldn't commit to a specific authentication mechanism

Open
#1,317 1 comment 0 reactions 0 assignees View on GitHub
enhancement scope:authentication stale
Dominant language
Python
Stars
4.4k
Forks
437
Avg merge
1d 2h
Merged PRs (30d)
15

Description

Currently, the Accounts API is a wrapper around and replacement for the "basic auth" authentication mechanism. It allows us to detect a failed basic authenication as well as to update credentials for a given basic authentication without having to update the permissions on every object in the database. However, because an authentication mechanism is "baked in" to the accounts API, these benefits do not apply in other cases, such as when someone using the Portier mechanism changes their email address, or when someone wants to change their authentication mechanism from Portier to FXA or vice versa.

To address this, we should allow an account to be created with any authentication mechanism rather than just a username and password.

Contributor guide

Open the contributing guide

Research direction

Start by reading the Accounts API entry point and the existing basic-authentication flow. Trace how accounts create, detect failed authentication, and update credentials, then compare that behavior with Portier and FXA. Done means the API can create an account with an arbitrary authentication mechanism and supports changing mechanisms without updating permissions on every object.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, authentication, backend-api-design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.