Return-Path: <info@sangamdas.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 A95DC132F82B8
	for <oauth@mail2.ietf.org>; Tue,  1 Sep 2026 03:32:19 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1;
	t=1788258739; bh=/BUfrEZtBxbqRRBxfHWbz2mVl4MxfnQM4L4vqeaHrW8=;
	h=References:In-Reply-To:From:Date:Subject:To:Cc;
	b=y348PzDH3ptW9PLanpi5M5GTUrPe8LcbYfjk5QmuyhWC0EvDPCEgVx2X4KFm8cK0I
	 EFc9+aQLfwlikYg/BBqaMAYjN/1Z/NW3jGMSyEJR8d7Uci+YrMn2rgLPPuR3VmI61g
	 CxcZV1MgJO4jiL93p3hnpniAw5ROBdRkdA9kYTSY=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level: 
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5
	tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1,
	HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
	SPF_NONE=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key)
	header.d=sangamdas-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 ZdD03TPqYf5W for <oauth@mail2.ietf.org>;
	Tue,  1 Sep 2026 03:32:18 -0700 (PDT)
Received: from mail-yx1-xb12d.google.com (mail-yx1-xb12d.google.com
 [IPv6:2607:f8b0:4864:20::b12d])
	(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 73A86132F825D
	for <oauth@ietf.org>; Tue,  1 Sep 2026 03:32:18 -0700 (PDT)
Received: by mail-yx1-xb12d.google.com with SMTP id
 956f58d0204a3-66bd7857841so969858d50.3
        for <oauth@ietf.org>; Tue, 01 Sep 2026 03:32:18 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1788258732; cv=none;
        d=google.com; s=arc-20260327;
        b=XxVsDKrcThOfmSAgIoLs1L/YWFFvhE8kuu2BYRbBfdcPNoyyyRE3u0Fc4L38JpJRKj
         TuMiRZ5CDtbWEk4QIQFNt3wSYNMIfWBpY9AaLccDOr/PHy1uAI78TDZOfEOZRk4EmNfd
         O4LLn7Qle5SDipe+1I2d72y8OLxyzO/suGZxs+dgAFgpXVKyIrYftlnkxCRwSeCMEWll
         JuPeNzbOZa28UYwg4QxirkafiIbrgfhPowrZsPoLiaLyRKibWwhVXgqPQNyySUKNWuZM
         xj2i/FA9iuRPtI7F9rLmcyVwYsio3tHAKgllKHr/P7qHzP1bayLa/ijalssWPAYfjmYG
         WTJw==
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=CZOviko0W3pON+lHJAg0MUddQYAFkC/N/0a5auE7fGA=;
        fh=USDI95/S6vjYIsSeR03SP0x5uiZfXVCKj6cMxo1x9nU=;
        b=JbRa13ef0b+xPRJxtK8wKqXmT+R8wTwwCTcXGpwqzUgutAZJDbyObiTkBXtRW/qYo6
         2sP4nH6Qvt/ZhbLqtGPcUAu+NemhHL5a8AjupYqvFbNVJGrLS+rtbA2ob4GVyXt03sGH
         8d9OqmnLm4aPoKcq8kq6Q45Q5MODflSz8A8xMpN2YBdO/v/jNXsKGCs9uUdsoiPdaDUk
         lGt2ZXHI+PWNKN7RQsvN602CDcZGPfeFziEyIIlA54QZb3WDJBnAH+iZiBCN/8b5sQnd
         UP00AwIcTBmQ8h+58H2J+6UKBKJwvK8WMfkVo/Mr9y+qzFyhOM9qk/O5mmOo7ANOwk+H
         bzGQ==;
        darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=sangamdas-com.20251104.gappssmtp.com; s=20251104; t=1788258732;
 x=1788863532; 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=CZOviko0W3pON+lHJAg0MUddQYAFkC/N/0a5auE7fGA=;
        b=aZ/ZUBYXtdVoDJZIuDkHqZNyIKbSdOXFhaKuFjl6olyLgfQnVEgwLHprVtZJk1vul4
         vBhTqY55Iqn4HGG1B6STAPiXYGoPNv9gkvTfsB6X+pOSla4Zy7DT+AuHr/P2m8Zm/w9P
         lPi5wyHOGegfgB5nuUytQMyG1xno9QQ76epdJCvNiLsfJHoGYOn4936OGgO23Ukx1m2s
         sQ2hMET+Bh0fOuRxM6I5E/DV3DJXNkeYlPGcs2gT2ZUg8VPcm7st+L8P/TwV9okwVe6O
         I7U9Bryplo+Fn9+++PdH++cJWGW6El7cZIFxklIYttNMwp3h9mOsIrWrE7p18QiTatI1
         o1/A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1788258732; x=1788863532;
        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=CZOviko0W3pON+lHJAg0MUddQYAFkC/N/0a5auE7fGA=;
        b=P2L/G6RnQFrGQueWF28Px/zFQFpS35pSXcyXBk2fjUAoT5YRgmB90rNqMaHHDqNUOD
         PhE1zmTN9fFqI8Ps38/ekQVuYw929KBjVf/RrN6XjasOZVBpisO3wxGkPAy0VEn3EQ6u
         S/MUOcjzg5YwYP2IW4LXXUCP/jVWhrx4QeCQPTscRhKdhP/GBU4hyKCpY8Vw6Hb/b9RP
         rV4+shNEEGKkc0ouE/WGUZFWbuHwTB9klWKkOcCXpK9L4KsqqO3OiriLu0+gQEdK7iBy
         iCzIkztdexZJUDKADfP9p4g4B6vh1ysEocO7FKRCPLJxnnXaQpl5dqVBsx1cJbpgTJcd
         U+vQ==
X-Gm-Message-State: AFuF++kEb07c3ziqjxPUdaLms63k/GnkEuyMXEIpP2Ufyxp6XOmAzh+S
	cKUV0YU2uQu7Fw2HS8ScBWTri+rqFf6Inr4y0GNGyg1X/qNKSrg7th1KtzjxVF2yAMl36gLhTSY
	NVJXRM7Xw3jJswMOhRsfOHNazQxosc2EoptUZc2zNLkk+J+IpluAJGGp4
X-Gm-Gg: AYBFou0xj6IivtvMwzFg4gDscopjPijF2EtbFKAQUD5WEHjoahr4EACyedFe2VN2OmR
	8AIQTUchHenF35kjKtIFmJxrSFycpm7R9YUGVKUevgz4a10mDyxyW5MtwQw/3IXmq4kU1yaotTf
	AxT3HJWfn2f4+AGoElgbqROfyeH6IytNUM7LupaTbD+plSm0I/RYXdN1mJBbYt2Cpux+Or1gi0i
	X4+4/5JQS/O+TZSybUWtKrJ4V9nViPQg3tsO7+4P8cYw3EC0kUIKdRxzSt3q6lRvv7VrUa1nhAQ
	SisfL3aLwNNNTEtRzM5v4Cu4ZJ9T9jez0738uwFDaOl0D+Ey6Eg+yyaXAF778FAyd2hqTBsmx34
	yUA==
X-Received: by 2002:a05:690e:1720:b0:668:180c:bf6a with SMTP id
 956f58d0204a3-66e4c776c07mr6997625d50.37.1788258731854; Tue, 01 Sep 2026
 03:32:11 -0700 (PDT)
MIME-Version: 1.0
References: 
 <CAHCJH6HA8EWiP63o+RcW4vum-xvZCob23GDYqgJZU3LjkcU2TA@mail.gmail.com>
 <VI0PR04MB11841BA3C26AAAC8B9CBA0B6E93A82@VI0PR04MB11841.eurprd04.prod.outlook.com>
In-Reply-To: 
 <VI0PR04MB11841BA3C26AAAC8B9CBA0B6E93A82@VI0PR04MB11841.eurprd04.prod.outlook.com>
From: Sangam Das <info@sangamdas.com>
Date: Tue, 1 Sep 2026 16:02:00 +0530
X-Gm-Features: AcwNN1VAwafq7GSMOedwa6HGB0Y3BDdx0Fdzh-8W3wtl39S4wA97SKC3aCXov2U
Message-ID: 
 <CAHCJH6GBRzt6QL910BJb3nzqRdMzzcZprntHEu-P4N7-uwzkFg@mail.gmail.com>
To: Yaron ZEHAVI <yaron.zehavi@rbinternational.com>
Content-Type: multipart/alternative; boundary="0000000000007aa5a2065a696e7f"
Message-ID-Hash: EWW34ARPKHYDIJPLSJGY277YJL4H4C4T
X-Message-ID-Hash: EWW34ARPKHYDIJPLSJGY277YJL4H4C4T
X-MailFrom: info@sangamdas.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@ietf.org" <oauth@ietf.org>, "wimse@ietf.org" <wimse@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: =?utf-8?q?=5BOAUTH-WG=5D_Re=3A_Binding_OAuth-authorized_calls_to_specific_to?=
 =?utf-8?q?ol-call_arguments_in_agentic/MCP_flows?=
List-Id: OAUTH WG <oauth.ietf.org>
Archived-At: 
 <https://mailarchive.ietf.org/arch/msg/oauth/6eaX7QYN1Mz0hmIKQ0rnZfpjBKU>
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>

--0000000000007aa5a2065a696e7f
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Yaron,

Agreed on the payment example.

If a client already has a concrete intent =E2=80=94 Merchant A, EUR 123.50,=
 that
IBAN =E2=80=94 puts those values into authorization_details, and the Resour=
ce
Server compares the actual POST /payments against the approved values, RFC
9396 is doing exactly what it was designed to do. I am not identifying a
gap in that pattern.

The distinction I am trying to understand is between *expressiveness of the
authority* and *how a dynamically generated invocation becomes authorized
and eventually effective*.

There seem to be three separate questions.

First, who establishes the authoritative values?

In an agent loop, the concrete {tool, arguments} may originate only after
the model executes:

standing/delegated authority
=E2=86=92 model emits {name, arguments}
=E2=86=92 host considers invoke(name, arguments)

RAR can represent those arguments precisely. But copying the same untrusted
model-generated arguments into a finer-grained authorization object does
not by itself establish an independent authorization decision. There still
needs to be some trusted basis =E2=80=94 user intent, policy, prior validat=
ed
state, or another authority source =E2=80=94 against which that concrete Ca=
ndidate
Act is approved.

So the issue is not that model-generated values can never become
authorized. It is that the same untrusted output should not effectively
define both the act and its own authority without an independent validation
step.

Second, reusable authority and per-invocation authority are different
deployment shapes.

A host may already possess authority permitting use of a tool/API across
multiple calls. RAR can express a much narrower per-call grant, but
obtaining such a grant after each model emission is itself an additional
authorization lifecycle. RFC 9396 does not by itself require a host holding
reusable authority to stop before each invoke() and obtain or construct
act-specific authority.

Third, there is the effectuation boundary.

Even where exact arguments are authorized, the property I am exploring is:

   - verify the finalized live arguments against the act that was actually
   validated;
   - verify current authority and the intended effectuation sink;
   - handle concurrent/replayed use appropriately;
   - and only then permit the external consequence.

This also matters for sinks that are not naturally OAuth Resource Servers,
such as local function dispatch, computer-use submission, local
persistent-state writes, or other host-controlled effects.

I have also been looking at Transaction Tokens and
draft-niyikiza-oauth-attenuating-agent-tokens. They clearly cover parts of
this space already =E2=80=94 including transaction context, tool/argument
constraints, per-invocation PoP, audience binding, and replay controls =E2=
=80=94 so
I would not claim OAuth work stops at coarse resource/action scope.

The residual invariant I am trying to identify is broader:

the concrete Candidate Act remains non-effective until independently
authorized act-bound state is verified at the boundary capable of creating
the external effect, and equivalent execution paths cannot bypass that
boundary.

If the OAuth view is that this last property belongs entirely to the
host/resource implementation, with OAuth providing the sufficiently
specific authority object, that is itself a useful answer. If it belongs
partly in OAuth, then I think the interesting question becomes where the
trustworthy act-specific authorization originates and how it is carried to
the final effectuation point.

Thanks =E2=80=94 your example helped me separate these issues much more pre=
cisely.

Sangam


On Tue, 1 Sep 2026 at 3:35=E2=80=AFPM, Yaron ZEHAVI <
yaron.zehavi@rbinternational.com> wrote:

> Dear Sangdam,
>
> Thanks for sharing.
>
>
>
> I believe effective enforcement depends in a large part on how specific
> and fine-grained the approved authority is.
>
> For example in RFC 9396 is this RAR example:
>
> {
>
>       "type": "payment_initiation",
>
>       "actions": [
>
>          "initiate",
>
>          "status",
>
>          "cancel"
>
>       ],
>
>       "locations": [
>
>          "https://example.com/payments"
>
>       ],
>
>       "instructedAmount": {
>
>          "currency": "EUR",
>
>          "amount": "123.50"
>
>       },
>
>       "creditorName": "Merchant A",
>
>       "creditorAccount": {
>
>          "iban": "DE02100100109307118603"
>
>       },
>
>       "remittanceInformationUnstructured": "Ref Number Merchant"
>
>    }
>
>
>
> Which defines an exact payment amount and beneficiary.
>
> A resource server can leverage these to deny a request with non-matching
> arguments.
>
>
>
> Could you please explain what gaps you identify, which cannot be mitigate=
d
> with fine-grained authority properties?
>
>
>
> Regards,
>
> Yaron
>
>
>
>
>
> Classification: CONFIDENTIAL
>
> *From:* Sangam Das <info@sangamdas.com>
> *Sent:* Tuesday, September 1, 2026 9:52 AM
> *To:* oauth@ietf.org
> *Cc:* wimse@ietf.org
> *Subject:* [OAUTH-WG] Binding OAuth-authorized calls to specific
> tool-call arguments in agentic/MCP flows
>
>
>
> You don't often get email from info@sangamdas.com. Learn why this is
> important <https://aka.ms/LearnAboutSenderIdentification>
>
> This message is from an external sender - be cautious, particularly with
> links and attachments.
>
>
>
> Hi all,
>
> A question prompted by watching how MCP/tool-use agents actually fail in
> practice:
>
> DPoP sender-constrains a token to a key. RAR and ID-JAG can scope a token
> to a resource and a set of permitted actions. But once an agent holds a
> valid token, none of these constrain the *specific call* it's about to
> make =E2=80=94 the tool name and arguments the model just emitted. A
> prompt-injected or poisoned-context agent can hold a fully valid,
> correctly-scoped token and still invoke the right tool with
> attacker-controlled arguments, and OAuth has no visibility into that
> argument payload at all.
>
> Is there existing or in-flight work that binds authorization to the
> content of a specific call (e.g., a digest of the tool name + arguments)
> rather than just to the resource/scope class =E2=80=94 something closer t=
o a
> per-invocation proof tying a grant to *this exact call*, not *this class
> of calls*? Or is this considered out of scope for OAuth/WIMSE and better
> handled at the host-application layer?
>
> I*'ve written up one possible approach in more detail as *
> *draft-das-agentic-tool-binding-02** ("tool_use Is Not invoke(): Binding
> Execution-Finality to Agentic Tool-Call Interfaces and MCP"), if useful a=
s
> a starting point rather than a
> proposal: https://datatracker.ietf.org/doc/draft-das-agentic-tool-binding=
/02/
> <https://datatracker.ietf.org/doc/draft-das-agentic-tool-binding/02/>*
>
> (Note: this builds on architecture covered by my pending patent
> applications, disclosed per RFC 8179 for transparency =E2=80=94 flagging =
this now
> rather than later.)
>
> Mainly interested in whether this gap is already solved somewhere I'm
> missing.
>
> Thanks,
> Sangam
> This message and any attachment ("the Message") are confidential. If you
> have received the Message in error, please notify the sender immediately
> and delete the Message from your system, any use of the Message is
> forbidden. Correspondence via e-mail is primarily for information purpose=
s.
> RBI neither makes nor accepts legally binding statements via e-mail unles=
s
> explicitly agreed otherwise. Information pursuant to =C2=A7 14 Austrian
> Companies Code: Raiffeisen Bank International AG; Registered Office: Am
> Stadtpark 9
> <https://www.google.com/maps/search/Am+Stadtpark+9?entry=3Dgmail&source=
=3Dg>,
> 1030 Vienna, Austria; Company Register Number: FN 122119m at the Commerci=
al
> Court of Vienna (Handelsgericht Wien).
>

--0000000000007aa5a2065a696e7f
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div><div style=3D"font-size:inherit"><div style=3D"font-size:inherit">

<p>Hi Yaron,</p>
<p>Agreed on the payment example.</p>
<p>If a client already has a concrete intent =E2=80=94 Merchant A, EUR 123.=
50, that IBAN =E2=80=94 puts those values into <code>authorization_details<=
/code>, and the Resource Server compares the actual <code>POST /payments</c=
ode> against the approved values, RFC 9396 is doing exactly what it was des=
igned to do. I am not identifying a gap in that pattern.</p>
<p>The distinction I am trying to understand is between <b>expressiveness o=
f the authority</b> and <b>how a dynamically generated invocation becomes a=
uthorized and eventually effective</b>.</p>
<p>There seem to be three separate questions.</p>
<p>First, who establishes the authoritative values?</p>
<p>In an agent loop, the concrete <code>{tool, arguments}</code> may origin=
ate only after the model executes:</p>
<p>standing/delegated authority<br>
=E2=86=92 model emits <code>{name, arguments}</code><br>
=E2=86=92 host considers <code>invoke(name, arguments)</code></p>
<p>RAR can represent those arguments precisely. But copying the same untrus=
ted model-generated arguments into a finer-grained authorization object doe=
s not by itself establish an independent authorization decision. There stil=
l needs to be some trusted basis =E2=80=94 user intent, policy, prior valid=
ated state, or another authority source =E2=80=94 against which that concre=
te Candidate Act is approved.</p>
<p>So the issue is not that model-generated values can never become authori=
zed. It is that the same untrusted output should not effectively define bot=
h the act and its own authority without an independent validation step.</p>
<p>Second, reusable authority and per-invocation authority are different de=
ployment shapes.</p>
<p>A host may already possess authority permitting use of a tool/API across=
 multiple calls. RAR can express a much narrower per-call grant, but obtain=
ing such a grant after each model emission is itself an additional authoriz=
ation lifecycle. RFC 9396 does not by itself require a host holding reusabl=
e authority to stop before each <code>invoke()</code> and obtain or constru=
ct act-specific authority.</p>
<p>Third, there is the effectuation boundary.</p>
<p>Even where exact arguments are authorized, the property I am exploring i=
s:</p>
<ul><li>verify the finalized live arguments against the act that was actual=
ly validated;</li><li>verify current authority and the intended effectuatio=
n sink;</li><li>handle concurrent/replayed use appropriately;</li><li>and o=
nly then permit the external consequence.</li></ul>
<p>This also matters for sinks that are not naturally OAuth Resource Server=
s, such as local function dispatch, computer-use submission, local persiste=
nt-state writes, or other host-controlled effects.</p>
<p>I have also been looking at Transaction Tokens and <code>draft-niyikiza-=
oauth-attenuating-agent-tokens</code>. They clearly cover parts of this spa=
ce already =E2=80=94 including transaction context, tool/argument constrain=
ts, per-invocation PoP, audience binding, and replay controls =E2=80=94 so =
I would not claim OAuth work stops at coarse resource/action scope.</p>
<p>The residual invariant I am trying to identify is broader:</p>
<p>the concrete Candidate Act remains non-effective until independently aut=
horized act-bound state is verified at the boundary capable of creating the=
 external effect, and equivalent execution paths cannot bypass that boundar=
y.</p>
<p>If the OAuth view is that this last property belongs entirely to the hos=
t/resource implementation, with OAuth providing the sufficiently specific a=
uthority object, that is itself a useful answer. If it belongs partly in OA=
uth, then I think the interesting question becomes where the trustworthy ac=
t-specific authorization originates and how it is carried to the final effe=
ctuation point.</p>
<p>Thanks =E2=80=94 your example helped me separate these issues much more =
precisely.</p>
<p>Sangam</p>

</div></div><br></div><div><br><div class=3D"gmail_quote gmail_quote_contai=
ner"><div dir=3D"ltr" class=3D"gmail_attr">On Tue, 1 Sep 2026 at 3:35=E2=80=
=AFPM, Yaron ZEHAVI &lt;<a href=3D"mailto:yaron.zehavi@rbinternational.com"=
>yaron.zehavi@rbinternational.com</a>&gt; wrote:<br></div><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex">





<div lang=3D"EN-US" link=3D"blue" vlink=3D"purple" style=3D"word-wrap:break=
-word">
<div class=3D"m_-795815996660785426WordSection1">
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">Dear Sangdam,<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">Thanks for sharing.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">I believe effective enforcement depends in a large pa=
rt on how specific and fine-grained the approved authority is.<u></u><u></u=
></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">For example in RFC 9396 is this RAR example:<u></u><u=
></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">{<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 &quot;type&quot;: &quo=
t;payment_initiation&quot;,<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 &quot;actions&quot;: [=
<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 &quo=
t;initiate&quot;,<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 &quo=
t;status&quot;,<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 &quo=
t;cancel&quot;<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ],<u></u><u></u></span=
></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 &quot;locations&quot;:=
 [<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 &quo=
t;<a href=3D"https://example.com/payments" target=3D"_blank">https://exampl=
e.com/payments</a>&quot;<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ],<u></u><u></u></span=
></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 &quot;instructedAmount=
&quot;: {<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 &quo=
t;currency&quot;: &quot;EUR&quot;,<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 &quo=
t;amount&quot;: &quot;123.50&quot;<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 },<u></u><u></u></span=
></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 &quot;creditorName&quo=
t;: &quot;Merchant A&quot;,<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 &quot;creditorAccount&=
quot;: {<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 &quo=
t;iban&quot;: &quot;DE02100100109307118603&quot;<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 },<u></u><u></u></span=
></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 &quot;remittanceInform=
ationUnstructured&quot;: &quot;Ref Number Merchant&quot;<u></u><u></u></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">=C2=A0=C2=A0 }<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">Which defines an exact payment amount and beneficiary=
.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">A resource server can leverage these to deny a reques=
t with non-matching arguments.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">Could you please explain what gaps you identify, whic=
h cannot be mitigated with fine-grained authority properties?<u></u><u></u>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">Regards,<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">Yaron<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif"><u></u>=C2=A0<u></u></span></p>
<div><br>
<p style=3D"font-family:Calibri;font-size:10pt;color:#000000;margin:5pt;fon=
t-style:normal;font-weight:normal;text-decoration:none" align=3D"Right">
Classification: CONFIDENTIAL<br>
</p>
<div style=3D"border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:11.0pt;font-family:&quot=
;Calibri&quot;,sans-serif">From:</span></b><span style=3D"font-size:11.0pt;=
font-family:&quot;Calibri&quot;,sans-serif"> Sangam Das &lt;<a href=3D"mail=
to:info@sangamdas.com" target=3D"_blank">info@sangamdas.com</a>&gt;
<br>
<b>Sent:</b> Tuesday, September 1, 2026 9:52 AM<br>
<b>To:</b> <a href=3D"mailto:oauth@ietf.org" target=3D"_blank">oauth@ietf.o=
rg</a><br>
<b>Cc:</b> <a href=3D"mailto:wimse@ietf.org" target=3D"_blank">wimse@ietf.o=
rg</a><br>
<b>Subject:</b> [OAUTH-WG] Binding OAuth-authorized calls to specific tool-=
call arguments in agentic/MCP flows<u></u><u></u></span></p>
</div>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<table border=3D"0" cellspacing=3D"0" cellpadding=3D"0" align=3D"left" widt=
h=3D"100%" style=3D"width:100.0%">
<tbody>
<tr>
<td width=3D"0" style=3D"width:.3pt;background:#a6a6a6;padding:5.25pt 1.5pt=
 5.25pt 1.5pt">
</td>
<td width=3D"100%" style=3D"width:100.0%;background:#eaeaea;padding:5.25pt =
3.75pt 5.25pt 11.25pt;background:revert!important;border:revert!important;c=
olor:revert!important;direction:revert!important;display:revert!important;f=
ont-size:revert!important;height:revert!important;letter-spacing:revert!imp=
ortant;line-height:revert!important;margin:revert!important;opacity:revert!=
important;outline:revert!important;overflow:revert!important;padding:revert=
!important;table-layout:revert!important;text-align:revert!important;text-i=
ndent:revert!important;text-orientation:revert!important;text-overflow:reve=
rt!important;text-transform:revert!important;vertical-align:revert!importan=
t;white-space:revert!important;width:revert!important;word-break:revert!imp=
ortant;word-spacing:revert!important;writing-mode:revert!important;zoom:rev=
ert!important">
<div>
<p class=3D"MsoNormal">
<span style=3D"font-size:9.0pt;font-family:&quot;wf_segoe-ui_normal&quot;,s=
erif;color:#212121">You don&#39;t often get email from
<a href=3D"mailto:info@sangamdas.com" target=3D"_blank">info@sangamdas.com<=
/a>. <a href=3D"https://aka.ms/LearnAboutSenderIdentification" target=3D"_b=
lank">
Learn why this is important</a> <u></u><u></u></span></p>
</div>
</td>
<td width=3D"75" style=3D"width:56.25pt;background:#eaeaea;padding:5.25pt 3=
.75pt 5.25pt 3.75pt;background:revert!important;border:revert!important;col=
or:revert!important;direction:revert!important;display:revert!important;fon=
t-size:revert!important;height:revert!important;letter-spacing:revert!impor=
tant;line-height:revert!important;margin:revert!important;opacity:revert!im=
portant;outline:revert!important;overflow:revert!important;padding:revert!i=
mportant;table-layout:revert!important;text-align:revert!important;text-ind=
ent:revert!important;text-orientation:revert!important;text-overflow:revert=
!important;text-transform:revert!important;vertical-align:revert!important;=
white-space:revert!important;width:revert!important;word-break:revert!impor=
tant;word-spacing:revert!important;writing-mode:revert!important;zoom:rever=
t!important">
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal" align=3D"center" style=3D"text-align:center"><span s=
tyle=3D"font-size:10.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:r=
ed">This message is from an external sender - be cautious, particularly wit=
h links and attachments.<u></u><u></u></span></p></div></div><div lang=3D"E=
N-US" link=3D"blue" vlink=3D"purple" style=3D"word-wrap:break-word"><div cl=
ass=3D"m_-795815996660785426WordSection1">
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<p>Hi all,<u></u><u></u></p>
<p>A question prompted by watching how MCP/tool-use agents actually fail in=
 practice:<u></u><u></u></p>
<p>DPoP sender-constrains a token to a key. RAR and ID-JAG can scope a toke=
n to a resource and a set of permitted actions. But once an agent holds a v=
alid token, none of these constrain the
<em><span style=3D"font-family:&quot;Aptos&quot;,sans-serif">specific call<=
/span></em> it&#39;s about to make =E2=80=94 the tool name and arguments th=
e model just emitted. A prompt-injected or poisoned-context agent can hold =
a fully valid, correctly-scoped token and still invoke the
 right tool with attacker-controlled arguments, and OAuth has no visibility=
 into that argument payload at all.<u></u><u></u></p>
<p>Is there existing or in-flight work that binds authorization to the cont=
ent of a specific call (e.g., a digest of the tool name + arguments) rather=
 than just to the resource/scope class =E2=80=94 something closer to a per-=
invocation proof tying a grant to
<em><span style=3D"font-family:&quot;Aptos&quot;,sans-serif">this exact cal=
l</span></em>, not
<em><span style=3D"font-family:&quot;Aptos&quot;,sans-serif">this class of =
calls</span></em>? Or is this considered out of scope for OAuth/WIMSE and b=
etter handled at the host-application layer?<u></u><u></u></p>
<p>I<b>&#39;ve written up one possible approach in more detail as </b><code=
><b><span style=3D"font-size:10.0pt">draft-das-agentic-tool-binding-02</spa=
n></b></code><b> (&quot;tool_use Is Not invoke(): Binding Execution-Finalit=
y to Agentic Tool-Call Interfaces and MCP&quot;),
 if useful as a starting point rather than a proposal:=C2=A0<span style=3D"=
color:#0b5394"><a href=3D"https://datatracker.ietf.org/doc/draft-das-agenti=
c-tool-binding/02/" target=3D"_blank">https://datatracker.ietf.org/doc/draf=
t-das-agentic-tool-binding/02/</a></span></b><u></u><u></u></p>
<p>(Note: this builds on architecture covered by my pending patent applicat=
ions, disclosed per RFC 8179 for transparency =E2=80=94 flagging this now r=
ather than later.)<u></u><u></u></p>
<p>Mainly interested in whether this gap is already solved somewhere I&#39;=
m missing.<u></u><u></u></p>
<p>Thanks,<br>
Sangam<u></u><u></u></p>
</div></div><div lang=3D"EN-US" link=3D"blue" vlink=3D"purple" style=3D"wor=
d-wrap:break-word"><div class=3D"m_-795815996660785426WordSection1"></div>
This message and any attachment (&quot;the Message&quot;) are confidential.=
 If you have received the Message in error, please notify the sender immedi=
ately and delete the Message from your system, any use of the Message is fo=
rbidden. Correspondence via e-mail is primarily
 for information purposes. RBI neither makes nor accepts legally binding st=
atements via e-mail unless explicitly agreed otherwise. Information pursuan=
t to =C2=A7 14 Austrian Companies Code: Raiffeisen Bank International AG; R=
egistered Office: <a href=3D"https://www.google.com/maps/search/Am+Stadtpar=
k+9?entry=3Dgmail&amp;source=3Dg">Am Stadtpark 9</a>, 1030
 Vienna, Austria; Company Register Number: FN 122119m at the Commercial Cou=
rt of Vienna (Handelsgericht Wien).
</div>

</blockquote></div></div>

--0000000000007aa5a2065a696e7f--

