From 8464edcb2d6d700c62b6eb0718ae06df310cffd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Commaille?= Date: Sat, 21 Jun 2025 09:32:32 +0200 Subject: [PATCH] Add warnings about incompatibility with OAuth 2.0 to endpoints that use UIA MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Kévin Commaille --- data/api/client-server/administrative_contact.yaml | 5 +++++ data/api/client-server/cross_signing.yaml | 11 ++++++++--- data/api/client-server/device_management.yaml | 10 ++++++++++ 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/data/api/client-server/administrative_contact.yaml b/data/api/client-server/administrative_contact.yaml index eddb2b01..13ebff16 100644 --- a/data/api/client-server/administrative_contact.yaml +++ b/data/api/client-server/administrative_contact.yaml @@ -201,6 +201,11 @@ paths: Homeservers should prevent the caller from adding a 3PID to their account if it has already been added to another user's account on the homeserver. + + {{% boxes/warning %}} + Since this endpoint uses UIA, it cannot be used when the access token was obtained + via the [OAuth 2.0 API](/client-server-api/#oauth-20-api). + {{% /boxes/warning %}} operationId: add3PID security: - accessTokenQuery: [] diff --git a/data/api/client-server/cross_signing.yaml b/data/api/client-server/cross_signing.yaml index 8f499d23..3878d24c 100644 --- a/data/api/client-server/cross_signing.yaml +++ b/data/api/client-server/cross_signing.yaml @@ -26,7 +26,7 @@ paths: Publishes cross-signing keys for the user. This API endpoint uses the [User-Interactive Authentication API](/client-server-api/#user-interactive-authentication-api). - + User-Interactive Authentication MUST be performed, except in these cases: - there is no existing cross-signing master key uploaded to the homeserver, OR - there is an existing cross-signing master key and it exactly matches the @@ -34,11 +34,16 @@ paths: keys provided in the request (self-signing key, user-signing key) they MUST also match the existing keys stored on the server. In other words, the request contains no new keys. - + This allows clients to freely upload one set of keys, but not modify/overwrite keys if - they already exist. Allowing clients to upload the same set of keys more than once + they already exist. Allowing clients to upload the same set of keys more than once makes this endpoint idempotent in the case where the response is lost over the network, which would otherwise cause a UIA challenge upon retry. + + {{% boxes/warning %}} + When this endpoint requires UIA, it cannot be used when the access token was obtained + via the [OAuth 2.0 API](/client-server-api/#oauth-20-api). + {{% /boxes/warning %}} operationId: uploadCrossSigningKeys security: - accessTokenQuery: [] diff --git a/data/api/client-server/device_management.yaml b/data/api/client-server/device_management.yaml index b2bcb8ce..fe9f5ba4 100644 --- a/data/api/client-server/device_management.yaml +++ b/data/api/client-server/device_management.yaml @@ -137,6 +137,11 @@ paths: This API endpoint uses the [User-Interactive Authentication API](/client-server-api/#user-interactive-authentication-api). Deletes the given device, and invalidates any access token associated with it. + + {{% boxes/warning %}} + Since this endpoint uses UIA, it cannot be used when the access token was obtained + via the [OAuth 2.0 API](/client-server-api/#oauth-20-api). + {{% /boxes/warning %}} operationId: deleteDevice security: - accessTokenQuery: [] @@ -189,6 +194,11 @@ paths: This API endpoint uses the [User-Interactive Authentication API](/client-server-api/#user-interactive-authentication-api). Deletes the given devices, and invalidates any access token associated with them. + + {{% boxes/warning %}} + Since this endpoint uses UIA, it cannot be used when the access token was obtained + via the [OAuth 2.0 API](/client-server-api/#oauth-20-api). + {{% /boxes/warning %}} operationId: deleteDevices security: - accessTokenQuery: []