element-hq / element-hq/matrix-authentication-service

Validate signed software_statements in client registration

Open
#1,943 0 comments 0 reactions 0 assignees View on GitHub
A-Client-Registration S-Major T-Enhancement
Dominant language
Rust
Stars
280
Forks
111
Avg merge
3d 1h
Merged PRs (30d)
25

Description

*This issue was originally created by [**@sandhose**](https://github.com/sandhose) at .*

This should allow us to deduplicate client registrations, and therefore consider multiple instances of the same client to be the same client as they present the same software_statement.

The software statement should self-contain informations on how it should be verified. This should be done through the same proof-of-possession semantics defined in [RFC7800](https://www.rfc-editor.org/rfc/rfc7800.html), meaning that the JWT header should include a `cnf` field containing the JWK or a JWKS URI.

My plan is to:
- deliver the same client_id for the same client at the same version
- deliver different client_ids for the same client at different version, *but* group them in terms of user consent/UI. We would display the consent screen again only if something significant changed in the client metadata (like any of the tos_uri/privacy_uri/client_uri changed)

MAS should consider that the client is the same (but not necessarily the same version) if `(header.cnf, payload.software_id)` is the same.
It should consider it is the same version (therefore the same client_id) if `(header.cnf, payload.software_id, payload.software_version)` is the same.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.