[OAUTH-WG] Re: New Version Notification for draft-chen-oauth-agent-authz-use-cases-01.txt
Christopher Emerson <christopher@agentadmit.com> Wed, 08 July 2026 16:41 UTC
Return-Path: <christopher@agentadmit.com>
X-Original-To: oauth@mail2.ietf.org
Delivered-To: oauth@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 2E9A411322BB4 for <oauth@mail2.ietf.org>; Wed, 8 Jul 2026 09:41:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1783528894; bh=xZ57k/6KvwpINFTOR1eJWL2rw5AkCczAqwCeuhihF2k=; h=References:In-Reply-To:From:Date:Subject:To:Cc; b=sIdUJyr9nNBOM8ET67hZeyU+A15ScHCqH51trXO+8tBQcQme6PMyiKTw6W+IeBMpw cYdPxMs+YRfp6SvVZV0bwo/ed58vouqUthl8Ep1e6LkhY6qOjs8GoGZeIKEm1NJMb5 rTZj2a10pboLK8uLZ9w4caT1I0lOy6MUyFzT/Ico=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level:
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_FONT_FACE_BAD=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=agentadmit-com.20251104.gappssmtp.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wdOtGZeZ8K0S for <oauth@mail2.ietf.org>; Wed, 8 Jul 2026 09:41:32 -0700 (PDT)
Received: from mail-pl1-x629.google.com (mail-pl1-x629.google.com [IPv6:2607:f8b0:4864:20::629]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 8049611322B04 for <oauth@ietf.org>; Wed, 8 Jul 2026 09:40:56 -0700 (PDT)
Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-2cad4170e8eso12494145ad.3 for <oauth@ietf.org>; Wed, 08 Jul 2026 09:40:56 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1783528855; cv=none; d=google.com; s=arc-20260327; b=E1JinY5psAt6C6VkHRdJ0QofyPopws1zF1RSLTTs4K9tIOczbIpy+ebfSxAmgXMvGO Pr8wT83jddycW9k6u4lVVmpru/iJnXMyytpi4HGpVFvLfOmtTGOwhtbsz4qOIsLL/bYd +GkZDYljIPpghcp6OXXvO6TiIXrEHT+IIfo2AXO0MZwILbJRzrtIQ3xNfpaJgZPqvtlZ npQdlBp2cYz00OVXjhDnRxCnCRB7mFyvTXOjqAz7NBl1UH5DnXw2hUqkSkKQmQadkM1U OD+tXrWJVBYeC3anfvD565oQpFTMAkJwi52HUthHLOLaZru70ooVBKvb/ZHVsWUqT9Jp FfyQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=pGBmvCwZj0owRu+yC4c27YPvYQZPKtRbQR13K3rugcI=; fh=d8GxiuRGPNM95GJKg3eJVNTBGmkS5OcE2yvDwxFJvpU=; b=kyNYp6ty70lxZrQXmEXJYr1lUp0csAPcRevSdFAg3u0YLu3eUpYlO04QzGVFlNlVVK z1lWtNINn/kMBOieRuR+p2T4+tPum8bfOkQQVv7rW5OdZFuyrwgi9qIXPQsm+FLcJ8gG +rKpPZMm9aDlSqP3vrrMvztEnrSjxNQfJmPNwtrhSidkS/tpb/LCDCGZRHheMtOlYGyC ThZMHo7vUhbVT0bjyt0akZza7yNu+qevEcIkXBEsxJdQ/9a66Zivccp/RizE9PjG7uVx dwDoxWsMt2ewL/7NOUqRosr2nI+iWpgzzJ6th78vYmAGmFagIiHLxNiqi8aFKpEDB6Ok llPg==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=agentadmit-com.20251104.gappssmtp.com; s=20251104; t=1783528855; x=1784133655; darn=ietf.org; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:from:to:cc:subject:date:message-id:reply-to :content-type; bh=pGBmvCwZj0owRu+yC4c27YPvYQZPKtRbQR13K3rugcI=; b=vHs4YbL0J7kw52f4pw0cmMbt8+6Ip3dyO9ESZVwx1W+GjoY/BRl/BJ49aATrke2YHc I40X5GVMqvm2EVw+w0Qh9E8PbIp0ZTX+R0TKTHfRz2jUC5aPrnTAeWmPflrcAw4x2CLw E6GePkhFLhfiCWaD82MnFaDjtN7d2doDY3T/3sMutEZxer0FjH1x4IcpUAzJjrGEAknq wjW3QH7KplRYjOBPF/Q7HODVrTBxdFjvDSBJOkyDz8xLfOs0Ax9KK1UauQxNKyvaMuis PaLSPk/dXOAg7PZVcxiSa7hDr3/JeHgRjEYlWuPSlArgHhjePz8FTxkCxP0xNRBnzOno tl9w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783528855; x=1784133655; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=pGBmvCwZj0owRu+yC4c27YPvYQZPKtRbQR13K3rugcI=; b=ej9JiPQVd8fAb6+UedRoqwqT2WWisMjfHNEgOgteJsnj2vDz0OfUFUL0x1sCeZuP9K TrRraSjUmm/J1dM/NwvU+iiskti4dMj6E+Z9NB7leraQHzbhumUf86KXcwA4rghB4ngH wK3wui86533nZOmk17NQjRAeQXQ1u/3y1giQ6/ICDXKzyGGlP8Wd0zN3CaKmbEC7dB76 Dqmsulqnu4CVzTgQX8l0KwrbWJk4AIjFgI71uFJRF/YUL07lKJ8ffLWqddUKSfGOdDsS Y8uoKeG3dMObvRgx8YGZclgmOFgyKr1HIg8AriCbLf04xtwGVaKjeZOOig0cPwvekkjX x04w==
X-Gm-Message-State: AOJu0YzN4zcBefGK/0fpNYJWMIzr8GnFwjnd0cb3RXoqz5YndCbb5VZG ZkZL//zZ2es54hJ+NeQ+mt0V8G96JzsXCwH1U/iEk0f69znJCkI9NISWH2T4tS9ro553NqxA5n7 rhCVCDB3Y0p+0+SBRwOJZOMe27uZtu0G5fSGw0h/Us3I=
X-Gm-Gg: AfdE7ckrpr9hFnfqm5p1RJVgF8UAqjCrfTjmUKYSbS+Z7R1xODsEOFpAZkk45HE5FG4 NHve8mJDaROXoPEL8tKKm7wic9Lemtqt3nmL15jTsvyOEhZusv99T4Mu5J1QU5/onNhwy/BLp7B ZO9kd/P36L3YQneZy1hXmqXcUrdiLD6vmMbeICcYZ3CI6LewpznE5SjwxNuRLThsosOoiTzOXFy 6/1IE4yQmcjfutGA38UZPuGYaNi35GlfbzoetePQaMK/bm42EfNEhU2YQM8s8pZWBWqKTqLm+yr pIBRqoLZ2s9ht5/nFheOFWzgUfREZZRKMr24kE9P+pWdwI84Qr88FDPcJPPWBEzfYpBgD6dMIJY 3te4WsF4=
X-Received: by 2002:a17:902:ef08:b0:2ca:d151:383a with SMTP id d9443c01a7336-2ccea3ca6bdmr34318805ad.20.1783528855292; Wed, 08 Jul 2026 09:40:55 -0700 (PDT)
MIME-Version: 1.0
References: <178326844691.267540.6806897697824010077@dt-datatracker-57b5d8f849-zrqfx> <202607061225540639426@chinamobile.com> <CADroBVpvEYtwE_ibDm3y-is18C2S6NvvrGrqZqh5yQHXLK0w7w@mail.gmail.com> <2026070817381917121418@chinamobile.com>
In-Reply-To: <2026070817381917121418@chinamobile.com>
From: Christopher Emerson <christopher@agentadmit.com>
Date: Wed, 08 Jul 2026 09:40:43 -0700
X-Gm-Features: AVVi8Ccmakt-Jmv7bg8N3Ra-JHLU-EQEPfQcuMqGAMZoxfDCXoBtQqI_phgMEIc
Message-ID: <CADroBVp7bS7z--EOawzcjthnwQmxR0ORV4T__xqt_v6FwfZPFA@mail.gmail.com>
To: "chenmeiling@chinamobile.com" <chenmeiling@chinamobile.com>
Content-Type: multipart/alternative; boundary="000000000000dddb6e06561c2bc8"
Message-ID-Hash: AT56DNP5NUQF4E3FTVM6J3O724EATJJ3
X-Message-ID-Hash: AT56DNP5NUQF4E3FTVM6J3O724EATJJ3
X-MailFrom: christopher@agentadmit.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-oauth.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: oauth <oauth@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [OAUTH-WG] Re: New Version Notification for draft-chen-oauth-agent-authz-use-cases-01.txt
List-Id: OAUTH WG <oauth.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/yFXYDV5YSjz31x_Dzqoy0p5Ju0U>
List-Archive: <https://mailarchive.ietf.org/arch/browse/oauth>
List-Help: <mailto:oauth-request@ietf.org?subject=help>
List-Owner: <mailto:oauth-owner@ietf.org>
List-Post: <mailto:oauth@ietf.org>
List-Subscribe: <mailto:oauth-join@ietf.org>
List-Unsubscribe: <mailto:oauth-leave@ietf.org>
Hi Meiling, Thank you for the kind words and for both questions. Taking them in turn. On the use cases: Section 3 covers most of what I encounter in practice; Use Case 1 in particular matches my experience closely. Three scenarios I have had to solve for are not yet represented, and may be worth considering: 1. Credential bootstrapping for services with no OAuth front channel. A long tail of agent-facing services (plain APIs, including many MCP servers that predate or do not implement the MCP authorization framework) has not adopted an authorization server relationship, its own or a delegated one, and exposes no browser-facing authorization endpoint. The agent side is often headless or remote, with no co-located browser. In practice these connections are commonly worked around with static API keys passed through environment variables: long-lived, broad, and invisible to the user after setup. The Device Authorization Grant [RFC8628] covers browserless clients, but it still assumes an authorization server with a browser-facing verification page, and the client initiates the request and proposes the scopes. What I have not seen represented is the first-connection case where no front channel exists on either side: the user needs a way to grant scoped, revocable access, and the agent needs a way to obtain the resulting credential. This precedes the scenarios in Section 3; Use Case 1's gap analysis, for example, notes that the Authorization Code flow can obtain the initial permissions, which assumes that front channel is available. 2. Caller-class consent within a single API surface. Use Case 3 distinguishes an agent from its user for rate and policy purposes. A related but distinct situation: the same API serves three classes of caller (interactive human sessions, the application's own internal AI features, and external user-delegated agents), and the user's consent decision for each class is independent. A user may permit the application's built-in AI to process their data while denying external agents, or the reverse. Today the internal-AI class typically never traverses the authorization layer at all, so there is nothing to attach that consent decision to. There is no standard representation of a caller class beyond the human-versus-agent distinction in Use Case 3, and no standard way to express consent that is evaluated per class without inheritance between classes. This could be an extension of Use Case 3 or a separate use case; it becomes acute as applications add native AI features alongside external agent access. 3. Consent channels that the agent itself can operate. Gap 2 calls for a standardized way for an agent to pause and securely ask the user. Implementation experience suggests a requirement worth stating explicitly: as agents gain browser-automation and computer-use capabilities, any consent interface reachable from the agent's execution context can be completed by the agent itself. An injected or compromised agent can click its own "Approve" button. This applies to any consent surface reachable from the agent's machine, including the connection interface in my own draft. A pause-and-ask mechanism therefore needs a ceremony the agent cannot complete from where it runs: an approval on a device outside the agent's control, or a user-verified assertion (for example WebAuthn with user verification) from an authenticator registered before the task began. A plain confirmation click is not evidence of a human decision. Even then, binding the approval to what the user was actually shown remains an open problem. The same consideration applies to the secure privilege escalation requirement in Use Case 4: on a device where the agent controls the input, an ordinary approval dialog proves nothing. This may belong in Section 5 as a security consideration for whatever interactive channel the group standardizes. On the gap analysis: Gaps 1, 2, and 4 are precisely the problems I faced; they are why my draft exists. Two subtler challenges from implementation are not yet on the list: First, evidence of the authorization event itself. Section 5 calls for agent actions to be auditable and non-repudiable. Implementation surfaced the complementary need: a durable record of the grant, capturing who authorized it, which scopes, when, and under which policy version. When an agent's later actions are disputed, the first question is what the human actually authorized. There is no standard shape for that record (consent-receipt work exists outside OAuth); introspection responses and access token claims describe the live grant while it exists, not a durable record of the event that created it. Second, redemption semantics for one-time credentials under adversarial concurrency. Any design in this space mints some single-use artifact: an authorization code, a user code, or the connection credential in my draft. Whether a failed redemption attempt consumes the artifact, and which attempt wins when two redemptions race, is implementation-defined today. I ended up burning the credential on any redemption attempt that presents it, successful or not, to close the case where a failed attempt leaves a still-live credential behind. Small surface, but it decides whether an intercepted credential is recoverable by an attacker. On Gap 4 specifically: since my earlier note, I have implemented bulk (per-user) and label-scoped (task-handle) revocation on top of the per-connection model described in my draft (draft-emerson-oauth-user-mediated-delivery). Both are a single server-side operation. As with the per-connection case, tokens are validated online on every call, so revocation takes effect on the agent's next request. I mention this only as evidence that the revocation gap you identify is closable; my draft does not standardize a revocation API surface. For standardization, Global Token Revocation (draft-parecki-oauth-global-token-revocation) already defines the per-user bulk case at the authorization server, and the OpenID Grant Management API's grant_id is the closest handle-scoped mechanism I know of, though a task handle spanning multiple grants is not quite the same thing. Happy to propose text for any of these if useful for the next revision. Best regards, Christopher Emerson On Wed, Jul 8, 2026 at 2:38 AM chenmeiling@chinamobile.com < chenmeiling@chinamobile.com> wrote: > Hi Christopher, > > Thank you for your email and for sharing your draft, > draft-emerson-oauth-user-mediated-delivery-00. We are very pleased to > hear that our use case and gap analysis was helpful in contextualizing > your work. > > The primary goal of our draft is to help the community clarify the problem > space for agent authorization. Your hands-on experience in building a > real-world solution is precisely the kind of input that can help us make > our document more accurate and comprehensive. Your insights would be > invaluable in ensuring we are mapping the territory correctly. > > To that end, we have two key questions for you, based on your practical > experience: > > 1. Regarding the Use Cases: Do the scenarios currently described in > Section 3 of our draft (draft-chen-oauth-agent-authz-use-cases-01) > adequately cover the situations you have encountered in practice? Or are > there significant agent authorization scenarios you've had to solve for > that are not yet represented? > 2. Regarding the Gap Analysis: Does our gap analysis fully capture the > fundamental problems you've faced? Your draft provides a brilliant solution > pattern that addresses several of the gaps we identified. We are curious > if, during your development process, you encountered other, perhaps more > subtle, gaps or challenges that are not yet on our list. > > Your feedback on these points would be extremely valuable as we prepare > the next revision. A more robust problem definition will benefit the entire > working group as we move towards developing solutions. > > Thank you again for initiating this important conversation. > > Best regards, > Meiling > ------------------------------ > chenmeiling@chinamobile.com > > > *From:* Christopher Emerson <christopher@agentadmit.com> > *Date:* 2026-07-07 11:23 > *To:* chenmeiling@chinamobile.com > *CC:* oauth <oauth@ietf.org> > *Subject:* Re: [OAUTH-WG] Re: New Version Notification for > draft-chen-oauth-agent-authz-use-cases-01.txt > >> >> Hi Meiling, >> >> Thank you for this draft. The gap analysis is a useful catalogue, and it >> matches what we see building agent access against real applications. >> >> Gap 2 in your summary ("the framework has no built-in mechanism for an >> agent to 'pause' and securely ask the user for an intermediate decision") >> is the problem I tried to address in >> draft-emerson-oauth-user-mediated-delivery-00, posted last week: >> >> >> https://datatracker.ietf.org/doc/draft-emerson-oauth-user-mediated-delivery/ >> >> It proposes user-mediated credential delivery as a complementary >> primitive: the credential is delivered to the user through >> human-controlled channels, and the user hands it to the agent, so the >> authorization decision happens outside the agent's execution context. >> There is no redirect, callback, or other agent-addressable path for an >> injected instruction to exploit. >> >> The same primitive gives a concrete shape to two of your other gaps: >> >> - Gap 1 (just-in-time authorization): when an agent attempts an >> operation outside its granted scope, the system returns an error >> identifying the specific missing scope, and the escalation runs >> through the user as a renewed user-mediated grant (Section 4.2 of >> the draft). Scope changes always terminate at a human decision. >> >> - Gap 4 (revocation): grants are per-connection and validated by >> introspection on each request, so revoking one agent's access is >> immediate and does not affect other connections. >> >> I would welcome the group's thoughts on whether user-mediated delivery >> is a useful primitive for the requirements you catalogue, particularly >> the personal and consumer scenarios in section 3.1, where the end user >> rather than an enterprise administrator is the authority. >> >> Best regards, >> Christopher Emerson >> >
- [OAUTH-WG] Re: New Version Notification for draft… chenmeiling@chinamobile.com
- [OAUTH-WG] Re: New Version Notification for draft… Christopher Emerson
- [OAUTH-WG] Re: New Version Notification for draft… chenmeiling@chinamobile.com
- [OAUTH-WG] Re: New Version Notification for draft… Christopher Emerson
- [OAUTH-WG] Re: New Version Notification for draft… Mohamad Khalil Yossif
- [OAUTH-WG] Re: New Version Notification for draft… ~blake
- [OAUTH-WG] Re: New Version Notification for draft… Mohamad Khalil Yossif
- [OAUTH-WG] Re: New Version Notification for draft… chenmeiling@chinamobile.com
- [OAUTH-WG] Re: New Version Notification for draft… chenmeiling@chinamobile.com
- [OAUTH-WG] Re: New Version Notification for draft… Blake Morrison
- [OAUTH-WG] Re: New Version Notification for draft… Meiling Chen
- [OAUTH-WG] Re: New Version Notification for draft… Blake Morrison
- [OAUTH-WG] Re: New Version Notification for draft… jiangyuning (A)
- [OAUTH-WG] Re: New Version Notification for draft… Meiling Chen
- [OAUTH-WG] Re: New Version Notification for draft… Blake Morrison
- [OAUTH-WG] Re: New Version Notification for draft… chenmeiling@chinamobile.com
- [OAUTH-WG] Re: New Version Notification for draft… Mohamad Khalil Yossif
- [OAUTH-WG] Re: New Version Notification for draft… chenmeiling@chinamobile.com
- [OAUTH-WG] Re: New Version Notification for draft… chenmeiling@chinamobile.com
- [OAUTH-WG] Re: New Version Notification for draft… Christopher Emerson
- [OAUTH-WG] Re: New Version Notification for draft… Blake
- [OAUTH-WG] Re: New Version Notification for draft… chenmeiling@chinamobile.com
- [OAUTH-WG] Re: New Version Notification for draft… Lombardo, Jeff
- [OAUTH-WG] Re: New Version Notification for draft… chenmeiling@chinamobile.com
- [OAUTH-WG] Re: New Version Notification for draft… Mohamad Khalil Yossif
- [OAUTH-WG] Re: New Version Notification for draft… chenmeiling@chinamobile.com
- [OAUTH-WG] Re: New Version Notification for draft… Mohamad Khalil Yossif
- [OAUTH-WG] Re: New Version Notification for draft… Thi Nguyen-Huu
- [OAUTH-WG] Re: New Version Notification for draft… chenmeiling@chinamobile.com
- [OAUTH-WG] Re: New Version Notification for draft… Blake
- [OAUTH-WG] Re: New Version Notification for draft… Mohamad Khalil Yossif
- [OAUTH-WG] Re: New Version Notification for draft… Mohamad Khalil Yossif
- [OAUTH-WG] Re: New Version Notification for draft… morganLR
- [OAUTH-WG] Re: New Version Notification for draft… chenmeiling@chinamobile.com
- [OAUTH-WG] Re: New Version Notification for draft… morganLR
- [OAUTH-WG] Re: New Version Notification for draft… morganLR
- [OAUTH-WG] Re: New Version Notification for draft… Meiling Chen
- [OAUTH-WG] Re: New Version Notification for draft… chenmeiling@chinamobile.com
- [OAUTH-WG] Re: New Version Notification for draft… Mohamad Khalil Yossif
- [OAUTH-WG] Re: New Version Notification for draft… Meiling Chen
- [OAUTH-WG] Re: New Version Notification for draft… Blake
- [OAUTH-WG] Re: New Version Notification for draft… jiangyuning (A)
- [OAUTH-WG] 回复: Re: New Version Notification for d… niyuan
- [OAUTH-WG] Re: New Version Notification for draft… Mohamad Khalil Yossif