Skip to content

MSC4484: Server Administration OAuth Scope#4484

Open
gingershaped wants to merge 4 commits into
matrix-org:mainfrom
gingershaped:ginger/msc/admin-oauth-scope
Open

MSC4484: Server Administration OAuth Scope#4484
gingershaped wants to merge 4 commits into
matrix-org:mainfrom
gingershaped:ginger/msc/admin-oauth-scope

Conversation

@gingershaped
Copy link
Copy Markdown

@gingershaped gingershaped commented May 27, 2026

Rendered

Signed-off-by: Ginger ginger@gingershaped.computer

@gingershaped gingershaped changed the title MSCXXXX: Server Administration OAuth Scope MSC4484: Server Administration OAuth Scope May 27, 2026
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Implementation requirements:

  • Server (supporting)
  • Client (using)

@turt2live turt2live added T-Feature Suggestion for a significant extension which needs considerable consideration proposal A matrix spec change proposal. Process state. A-Client Server Client-Server API needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. kind:feature MSC for not-core and not-maintenance stuff and removed T-Feature Suggestion for a significant extension which needs considerable consideration labels May 27, 2026
This MSC is explicitly not backwards-compatible. Existing clients using OAuth will no longer be able to use the
admin API endpoints unless and until they begin requesting the scope. To the best of the author's knowledge, there
are no clients in widespread use that support OAuth _and_ the Server Administration endpoints, and therefore the
impact of this change is currently minimal.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doesn't Synapse/MAS already require a special scope for all admin endpoints?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It does, but I don't know if that scope is only for the Synapse-specific admin endpoints or if it also includes the specced admin endpoints.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd assume it includes the specced ones, but someone should check. If it does, then this potential issue doesn't really exist in the first place (and the MSC may even already be implemented with a different prefix?)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It appears that it does include the specced ones (logic checking if a user is an admin, call to that logic in the whois endpoint). However, the urn:synapse:admin:* scope also requires the urn:matrix:client:api:* scope, so it doesn't behave the same as the scope described in the proposal.

Comment thread proposals/4484-admin-oauth-scope.md Outdated
## Proposal

A new scope is added to the specification, which clients using OAuth MAY request:
`urn:matrix:client:api:server_administration` (herein referred to as "the scope" for brevity). Clients using OAuth
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

urn:matrix:client:api:* implies it includes everything in that namespace, so if you were to introduce a new scope that is not to be granted by that scope, it should be different at a higher level (like urn:matrix:client:admin or urn:matrix:admin for example).

Worth considering if it should also be defined with a wildcard in the end (e.g. urn:matrix:admin:*) for more fine-grained control in the future like is planned for client-server API

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

urn:matrix:client:api:* implies it includes everything in that namespace, so if you were to introduce a new scope that is not to be granted by that scope, it should be different at a higher level (like urn:matrix:client:admin or urn:matrix:admin for example).

Good point. I've changed the scope to urn:matrix:client:server_administration.

Worth considering if it should also be defined with a wildcard in the end (e.g. urn:matrix:admin:*) for more fine-grained control in the future like is planned for client-server API

It seems unlikely to me on the face of it that this will happen -- I would assume that clients generally either want full admin access or no admin access.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-Client Server Client-Server API kind:feature MSC for not-core and not-maintenance stuff needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. proposal A matrix spec change proposal. Process state.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants