Repository navigation
docs(rfd): add OAuth authorization for remote Agents RFD - #2796
Open
akos-zsolt-toth wants to merge 1 commit into
Open
akos-zsolt-toth wants to merge 1 commit into
akos-zsolt-toth wants to merge 1 commit into
Conversation
Proposes an oauth authentication method type and an auth.oauth client capability so remote Agents can authorize Clients with OAuth 2.1 and recognise them across connections, with transport-level token presentation and a connect ticket for browser WebSockets.
Preview approval requiredThis pull request comes from a fork, so Mintlify won't build a preview until someone with write access approves commit |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proposes an RFD for authorizing Clients to remote Agents with OAuth, so that a returning user is recognised on a new connection instead of having to log in again.
Problem
ACP's
agentandterminalauthentication methods assume a local Agent, which keeps credentials where any later connection can find them. A remote Agent serving many users has no such shared store: it can only recognise a returning user if the Client presents something, and ACP defines nothing for that.Today a remote Agent signs users in with a URL-mode elicitation inside
auth/login. Before login there is no authenticated user, so the result is bound to that elicitation and that connection, and must not be applied to another one (#2641). That rule is correct, but it means every reconnect is a fresh interactive login. The remote transport RFD doesn't cover this either: Clients only need to keep cookies for the duration of a connection.Proposal
oauthauthentication method type. It points at the Agent's Protected Resource Metadata (RFC 9728).capabilities.auth.oauth. Supplying it commits the Client to running the flow, storing and refreshing tokens per Agent resource, and presenting them on every connection. Agents only advertise the method to Clients that supply it, as withterminal.terminallogin ends with a reconnect. No credential travels in an ACP message.Authorization: Beareron Streamable HTTP, and on the WebSocket upgrade where the Client can set headers.401withWWW-Authenticate: Bearer resource_metadata=….4401, because a browser can't read the response to a failed upgrade.The FAQ covers the alternatives considered (an Agent-issued credential after URL login, persisting cookies, and MCP-style discovery via
401only) and the open questions.Relationship to existing work
streamable-http-websocket-transport). It could become a section of that RFD if the authors prefer.Changes
docs/rfds/remote-oauth-authorization.mdx: the new RFD, fromdocs/rfds/TEMPLATE.docs/docs.json: adds the RFD at the end of the Draft navigation group.Formatted with Prettier.
Looking for a champion. Happy to move the discussion to Zulip.