element-hq / element-hq/synapse
MSC4450: Identity Provider selection for User-Interactive Authentication with Legacy Single Sign-On
- Dominant language
- Python
- Stars
- 4.6k
- Forks
- 600
- Avg merge
- 5d 22h
- Merged PRs (30d)
- 51
Description
Tracking issue for MSC4450: Identity Provider selection for User-Interactive Authentication with Legacy Single Sign-On as an experimental feature in Synapse
## Context
We have a customer with an exotic multi-Identity Provider setup,
where the client is configured with a specific Identity Provider but users can be associated to multiple providers and Synapse does not know which one to choose.
Presenting a web UI for manual selection is not useful in this customer's situation as it would only confuse the user.
See:
- https://github.com/element-hq/backend-internal/issues/229
## Current design in Synapse
We return 400 errors if the IDP ID is not a configured provider or is not in the set of providers that the user is associated with.
## Caveats to be aware of
## How do we know when to remove this
I imagine one of the two following cases will happen:
1. Legacy authentication gets phased out, or at least no longer used by the customer needing this feature, so we just walk away from the MSC.
2. The MSC gets merged and we can gracefully migrate the customer to the stable parameter.
Contributor guide
Research direction
Start by reading the MSC4450 proposal and Synapse’s existing user-interactive authentication and legacy single sign-on flow. The issue names no files, tests, or entry points, so map where Identity Provider selection is handled before defining the implementation scope. Done means the experimental behavior works for the described multi-provider case and preserves the documented invalid-provider errors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- authentication
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100