Commit Graph

4 Commits

Author SHA1 Message Date
dasha_uwu
ce8abf6bf1 feat: implement OIDC server for next-gen auth (MSC2965/2964/2966/2967)
Implements a built-in OIDC authorization server that allows Matrix clients
like Element X to authenticate via OIDC, delegating user authentication
to upstream identity providers (e.g. Kanidm) through the existing SSO flow.

## Endpoints
- GET /_matrix/client/unstable/org.matrix.msc2965/auth_issuer
- GET /.well-known/openid-configuration
- POST /_tuwunel/oidc/registration (Dynamic Client Registration)
- GET /_tuwunel/oidc/authorize → SSO redirect → _complete bridge
- POST /_tuwunel/oidc/token (auth code exchange + refresh)
- POST /_tuwunel/oidc/revoke
- GET /_tuwunel/oidc/jwks
- GET /_tuwunel/oidc/userinfo
- GET /_tuwunel/oidc/account (placeholder)

## Spec compliance fixes
- OAuth error responses use RFC 6749 §5.2 format ({"error": "...", "error_description": "..."})
- PKCE code_verifier validation per RFC 7636 §4.1
- Scope token matching uses exact whitespace-delimited comparison per RFC 6749 §3.3
- Typed ProviderMetadata struct for the discovery document
- DCR includes policy_uri, tos_uri, software_id, software_version per RFC 7591

Refs: #246, #266
2026-03-20 14:48:31 +00:00
dasha_uwu
e48101a6a6 Adverstise support for stable MSC3827, fixes room type search in element web 2026-02-16 07:46:11 +00:00
Jason Volk
289eaa57a3 Cleanup/simplify client versions and unstable_features listing.
Signed-off-by: Jason Volk <jason@zemos.net>
2026-02-14 18:59:43 +00:00
Jason Volk
4d2845dd54 Split out and eliminate api/client/unversioned.rs.
Signed-off-by: Jason Volk <jason@zemos.net>
2026-02-14 18:59:43 +00:00