Skip to content

Commit 7ba8ee2

Browse files
committed
GSC327: TI-M on Matrix 1.15
1 parent bd7fb61 commit 7ba8ee2

File tree

1 file changed

+198
-0
lines changed

1 file changed

+198
-0
lines changed

proposals/327-matrix-1.15.md

Lines changed: 198 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,198 @@
1+
# GSC327: TI-M on Matrix 1.15
2+
3+
TI-M basiert im aktuellen Release auf [Matrix 1.11], welches im Juni 2024 veröffentlicht wurde.
4+
Seitdem gab es vier weitere Matrix-Release. Um neue Features und Verbesserungen in TI-M nutzbar zu
5+
machen ist ein Update der Matrix Version in TI-M erforderlich. Dieses Proposal listet die für TI-M
6+
relevanten Matrix-Neuerungen auf und leitet, sofern notwendig, entsprechende Änderungen an der
7+
Spezifikation ab.
8+
9+
## Änderungsvorschlag
10+
11+
### `server_name``via` Migration
12+
13+
Der `server_name` Query-Parameter auf [`/_matrix/client/v3/join/{roomIdOrAlias}`] and
14+
[`/_matrix/client/v3/knock/{roomIdOrAlias}`] wurde in [Matrix 1.12] als deprecated markiert und
15+
durch einen neuen Parameter `via` ersetzt. Server müssen dabei weiterhin beide Parameter akzeptieren
16+
aber `via` bevorzugen.
17+
18+
> - Deprecate the `server_name` query parameter on `POST /_matrix/client/v3/join/{roomIdOrAlias}`
19+
> and `POST /_matrix/client/v3/knock/{roomIdOrAlias}`, as per [MSC4156]. ([\#1933])
20+
> - Add `via` query parameter on `POST /_matrix/client/v3/join/{roomIdOrAlias}` and
21+
> `POST /_matrix/client/v3/knock/{roomIdOrAlias}`, as per [MSC4156]. ([\#1933])
22+
23+
In [Matrix 1.14][Matrix 1.12] wurde der `server_name` Parameter dann gänzlich aus der Spec entfernt.
24+
25+
> Remove `server_name` parameter from `/_matrix/client/v3/join/{roomIdOrAlias}` and
26+
> `/_matrix/client/v3/knock/{roomIdOrAlias}`, as per [MSC4213]. ([\#2059])
27+
28+
Da es bereits TI-M Clients im Feld gibt und diese `via` nicht kennen, müssen TI-M Fachdienste
29+
`server_name` weiterhin als Fallback unterstützen.
30+
31+
> **A_1 – Weitere Unterstützung von `server_name`**
32+
>
33+
> TI-M Fachdienste MÜSSEN bei den Requests `POST /_matrix/client/v3/join/{roomIdOrAlias}` und
34+
> `POST /_matrix/client/v3/knock/{roomIdOrAlias}` den Parameter `server_name` so wie in Matrix v1.12
35+
> weiterhin unterstützen. **\[\<=\]**
36+
>
37+
> Hinweis: `server_name` wurde in Matrix v1.14 entfernt und durch den in Matrix v1.12 eingeführten
38+
> `via` Parameter ersetzt. Die Unterstützung von `server_name` nach Matrix v1.12 beinhaltet, dass
39+
> `via` serverseitig bevorzugt wird falls beide Parameter gesetzt sind.
40+
41+
Clients können über [`/_matrix/client/versions`] erkennen ob ihr Server `via` unterstützt und
42+
wahlweise `via` oder `server_name` verwenden. Alternativ können Clients auch einfach beide Parameter
43+
gleichzeitig und mit identischem Inhalt setzen. TI-M-seitig bedarf es hier keiner weiteren Regelung.
44+
45+
### Einschränkung von Profilabfragen
46+
47+
In [Matrix 1.12] wurde für Server die Möglichkeit eingeführt Profilabfragen einzuschränken. Abfragen
48+
müssen nur noch beantwortet werden wenn der anfragende und der angefragte Nutzer gemeinsame Räume
49+
haben oder wenn der angefragte Nutzer Mitglied eines öffentlichen Raumes ist. In allen anderen
50+
Fällen dürfen Server Anfragen mit 403 `M_FORBIDDEN` ablehen.
51+
52+
> - Add 403 responses on `GET /_matrix/client/v3/profile/{userId}/avatar_url` and
53+
> `GET /_matrix/client/v3/profile/{userId}/displayname`, as per [MSC4170]. ([\#1867])
54+
> - Add 403 response on `GET /_matrix/federation/v1/query/profile`, as per [MSC4170]. ([\#1867])
55+
56+
Die Neuregelung der Fälle in denen Profilabfragen möglich sein müssen entspricht [A_26374] in TI-M
57+
Basis. Diese Anforderung kann daher entfallen.
58+
59+
Weiterhin verbietet [A_26290] auf ePA-Fachdiensten Profilabfragen in allen anderen Fällen. Diese
60+
Anforderung ist bis auf den fehlenden Fehlercode konform mit der neuen Matrix-Spezifikation. Der
61+
Fehlercode wird daher in die Anforderung eingefügt.
62+
63+
> **A_26290-1 - Verbot von Profilabfragen ohne gemeinsame Räume**
64+
>
65+
> Der TI-M Fachdienst ePA MUSS Requests zu den folgenden Endpunkten mit einer HTTP 403 Response *und
66+
> dem Fehlercode `M_FORBIDDEN`* ablehnen, sofern der anfragende Nutzer keine gemeinsamen Räume mit
67+
> dem angefragten Nutzer hat:
68+
>
69+
> - `GET /_matrix/client/v3/profile/{userId}`
70+
> - `GET /_matrix/client/v3/profile/{userId}/avatar_url`
71+
> - `GET /_matrix/client/v3/profile/{userId}/displayname`
72+
>
73+
> **\[\<=\]**
74+
75+
### `dont_notify` und `coalesce` Push Rule Actions
76+
77+
In [Matrix 1.12] wurde klargestellt, dass die Push Rule Actions `dont_notify` und `coalesce` nicht
78+
abzulehnen sondern zu ignorieren sind.
79+
80+
> - Clarify that the deprecated `dont_notify` and `coalesce` push rule actions MUST be ignored, not
81+
> rejected. ([\#1890])
82+
83+
Da gegenteilige Implementierungen nicht bekannt sind gibt es für TI-M an dieser Stelle eigentlich
84+
nichts zu tun. Gleichzeitig fällt aber auf, dass mit [A_26193] die Verwendung dieser Actions für
85+
TI-M Clients explizit verboten wurde. Dies erscheint überflüssig, da diese Actions von jedem Server
86+
ignoriert werden und ohnehin nicht mehr Teil der Matrix-Spezifikation sind. [A_26193] wird daher
87+
entfernt.
88+
89+
### OAuth 2.0 APIs
90+
91+
In [Matrix 1.15] wurden neue OAuth APIs eingeführt.
92+
93+
> Add the OAuth 2.0 based authentication API, as per [MSC3861] and its sub-proposals. ([\#2141],
94+
> [\#2148], [\#2149], [\#2150], [\#2151], [\#2159], [\#2164])
95+
96+
Im Vergleich zu den von TI-M verwendeten Authentication APIs bieten die OAuth APIs den Vorteil, dass
97+
PKCE und State verpflichtend integriert sind. Des Weiteren erleichtert die Verwendung von OAuth die
98+
Nachnutzung bestehender Libraries. Nachteilig ist hingegen, dass die neuen APIs nicht mit der
99+
[User-Interactive Authentication] kompatibel sind. Konkret davon betroffen ist allerdings nur das
100+
Reset der Cross-Signing Keys, wofür es mit [MSC4312] einen Workaround gibt.
101+
102+
In Summe überwiegen die Vorteile der neuen APIs. Neue TI-M Clients werden daher verpflichtet die
103+
OAuth APIs zu verwenden.
104+
105+
> **A_2 – Verwendung der OAuth-APIs**
106+
>
107+
> TI-M Clients MÜSSEN sofern ihr Fachdienste Matrix 1.15 unterstützt die [OAuth APIs] zur
108+
> Authentifizierung nutzen. **\[\<=\]**
109+
110+
Da wir bereits Clients im Feld haben, die Matrix 1.15 nicht unterstützen müssen Fachdienste die
111+
Authentifizierung allerdings weiterhin auch über die alten APIs erlauben.
112+
113+
> **A_3 – Authentication APIs**
114+
>
115+
> TI-M Fachdienste MÜSSEN die Authentifizierung sowohl über die [OAuth APIs] als auch über die
116+
> [Legacy APIs] erlauben. **\[\<=\]**
117+
118+
Weiterhin werden Clients und Fachdienste verpflichtet zum Reset der Cross-Signing Keys den
119+
Workaround aus [MSC4312] umzusetzen.
120+
121+
> **A_4 – Cross-Signing-Reset & OAuth APIs**
122+
>
123+
> TI-M Clients und Fachdienste MÜSSEN zum Reset der Cross-Signing-Keys das Verfahren aus [MSC4312]
124+
> implementieren sofern die Authentifizierung über die [OAuth APIs] erfolgt ist. **\[\<=\]**
125+
126+
## Nennenswerte Änderungen ohne Anpassungen in TI-M
127+
128+
### Raumversion 11
129+
130+
In [Matrix 1.14] wurde Raum Version 11 als neuer Standard festgelegt
131+
132+
> Update the default room version to 11, as per [MSC4239]. ([\#2105])
133+
134+
Für TI-M gelten wegen [Kapitel 5.4 in TI-M Basis] folgende Regeln:
135+
136+
- Version 9, 10 und 11 müssen unterstützt werden
137+
- Version 10 muss als Default verwendet werden
138+
- Räume mit Version 11 dürfen nicht erzeugt werden
139+
140+
Leider haben wir weiterhin Implementierungen aus der alten TI-M 1.x Linie im Feld. Diese basieren
141+
auf Matrix 1.3 und kennen Raumversion 11 nicht. Hier gibt es also vorerst keine Änderung.
142+
143+
### Mark as unread
144+
145+
Räume können seit [Matrix 1.12] explizit als ungelesen markiert werden.
146+
147+
> - Add support for marking rooms as unread, as per [MSC2867]. ([\#1895], [\#1941])
148+
149+
Dieses Feature ist Teil des Moduls [Receipts] und kann in TI-M ohne Einschränkung verwendet werden.
150+
151+
## Sicherheit und Datenschutz
152+
153+
Die Verwendung der neuen [OAuth APIs] erhöht durch PKCE die Sicherheit des Login-Verfahrens.
154+
155+
## Kompatibilität & Migration
156+
157+
Alle obigen Änderungen garantieren Kompatibilität zu bestehenden Implementierungen.
158+
159+
## Alternativen
160+
161+
Keine.
162+
163+
[Matrix 1.11]: https://spec.matrix.org/v1.15/changelog/v1.11/
164+
[`/_matrix/client/v3/join/{roomIdOrAlias}`]: https://spec.matrix.org/v1.15/client-server-api/#post_matrixclientv3joinroomidoralias
165+
[`/_matrix/client/v3/knock/{roomIdOrAlias}`]: https://spec.matrix.org/v1.15/client-server-api/#post_matrixclientv3knockroomidoralias
166+
[Matrix 1.12]: https://spec.matrix.org/v1.15/changelog/v1.12/
167+
[MSC4156]: https://github.com/matrix-org/matrix-spec-proposals/pull/4156
168+
[\#1933]: https://github.com/matrix-org/matrix-spec/issues/1933
169+
[MSC4213]: https://github.com/matrix-org/matrix-spec-proposals/pull/4213
170+
[\#2059]: https://github.com/matrix-org/matrix-spec/issues/2059
171+
[`/_matrix/client/versions`]: https://spec.matrix.org/v1.15/client-server-api/#get_matrixclientversions
172+
[MSC4170]: https://github.com/matrix-org/matrix-spec-proposals/pull/4170
173+
[\#1867]: https://github.com/matrix-org/matrix-spec/issues/1867
174+
[A_26374]: https://gemspec.gematik.de/prereleases/Draft_TI-Messenger_24_3/gemSpec_TI-M_Basis_V1.1.0_CC/#A_26374
175+
[A_26290]: https://gemspec.gematik.de/prereleases/Draft_TI-Messenger_24_3/gemSpec_TI-M_ePA_V1.1.0_CC/#A_26290
176+
[\#1890]: https://github.com/matrix-org/matrix-spec/issues/1890
177+
[A_26193]: https://gemspec.gematik.de/prereleases/Draft_TI-Messenger_24_3/gemSpec_TI-M_Basis_V1.1.0_CC/#A_26193
178+
[Matrix 1.15]: https://spec.matrix.org/v1.15/changelog/v1.15/
179+
[MSC3861]: https://github.com/matrix-org/matrix-spec-proposals/pull/3861
180+
[\#2141]: https://github.com/matrix-org/matrix-spec/issues/2141
181+
[\#2148]: https://github.com/matrix-org/matrix-spec/issues/2148
182+
[\#2149]: https://github.com/matrix-org/matrix-spec/issues/2149
183+
[\#2150]: https://github.com/matrix-org/matrix-spec/issues/2150
184+
[\#2151]: https://github.com/matrix-org/matrix-spec/issues/2151
185+
[\#2159]: https://github.com/matrix-org/matrix-spec/issues/2159
186+
[\#2164]: https://github.com/matrix-org/matrix-spec/issues/2164
187+
[User-Interactive Authentication]: https://spec.matrix.org/v1.15/client-server-api/#user-interactive-authentication-api
188+
[MSC4312]: https://github.com/matrix-org/matrix-spec-proposals/pull/4312
189+
[OAuth APIs]: https://spec.matrix.org/v1.15/client-server-api/#oauth-20-api
190+
[Legacy APIs]: https://spec.matrix.org/v1.15/client-server-api/#legacy-api
191+
[Matrix 1.14]: https://spec.matrix.org/v1.15/changelog/v1.14/
192+
[MSC4239]: https://github.com/matrix-org/matrix-spec-proposals/pull/4239
193+
[\#2105]: https://github.com/matrix-org/matrix-spec/issues/2105
194+
[Kapitel 5.4 in TI-M Basis]: https://gemspec.gematik.de/docs/gemSpec/gemSpec_TI-M_Basis/latest/#5.4
195+
[MSC2867]: https://github.com/matrix-org/matrix-spec-proposals/pull/2867
196+
[\#1895]: https://github.com/matrix-org/matrix-spec/issues/1895
197+
[\#1941]: https://github.com/matrix-org/matrix-spec/issues/1941
198+
[Receipts]: https://spec.matrix.org/v1.15/client-server-api/#receipts

0 commit comments

Comments
 (0)