Matrix: SSO and OIDC sign-in #103

Closed
opened 2026-09-02 23:25:42 -04:00 by Salastil · 1 comment
Owner

Only m.login.password is implemented (backend/matrix/mod.rs's login path). A homeserver configured for SSO - which includes most corporate and many public ones, and is where the spec is heading with OIDC - cannot be signed into at all.

Done looks like: the login flow list is read, SSO opens a browser and completes through the redirect, and the token is stored like any other.

Only `m.login.password` is implemented (`backend/matrix/mod.rs`'s login path). A homeserver configured for SSO - which includes most corporate and many public ones, and is where the spec is heading with OIDC - cannot be signed into at all. **Done looks like:** the login flow list is read, SSO opens a browser and completes through the redirect, and the token is stored like any other.
Salastil added the feature label 2026-09-03 13:11:33 -04:00
Author
Owner

Finished — https://git.salastil.com/Salastil/nobilis/commit/9882812 and https://git.salastil.com/Salastil/moho/commit/1a31ee4

The login flows are read first, so a server offering only SSO is not shown a password form. SSO listens on loopback for the redirect, answers the browser with a page saying it can be closed, and exchanges the one-time token for a real one. The URL opens in the real browser, where a password manager and second factor already work. Read live from three homeservers — password only, password with SSO, and one that would not resolve — and the loopback handler is tested end to end.

An SSO account has no stored password, so anything password-gated will need the homeserver's own interactive auth.

Finished — https://git.salastil.com/Salastil/nobilis/commit/9882812 and https://git.salastil.com/Salastil/moho/commit/1a31ee4 The login flows are read first, so a server offering only SSO is not shown a password form. SSO listens on loopback for the redirect, answers the browser with a page saying it can be closed, and exchanges the one-time token for a real one. The URL opens in the real browser, where a password manager and second factor already work. Read live from three homeservers — password only, password with SSO, and one that would not resolve — and the loopback handler is tested end to end. An SSO account has no stored password, so anything password-gated will need the homeserver's own interactive auth.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Salastil/moho#103