element-hq / element-hq/synapse

MSC4450: Identity Provider selection for User-Interactive Authentication with Legacy Single Sign-On

Open
#19,691 0 comments 0 reactions 0 assignees View on GitHub
A-Legacy-Auth A-SSO T-ExperimentalFeature
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.