[OAUTH-WG] Re: Call for interest: fine-grained authorization in OAuth (IETF 126 follow-up)

Ron Bartor <roniamdev@gmail.com> Thu, 01 October 2026 01:58 UTC

Received: from mail-ej2-x0f.google.com (mail-ej2-x0f.google.com [IPv6:2a00:1450:4864:34::f]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by mx.ietf.org (Postfix) with ESMTPS id 9E33242 for <oauth@ietf.org>; Thu, 01 Oct 2026 01:58:35 +0000 (UTC)
Authentication-Results: mx.ietf.org; dkim=pass header.d=gmail.com header.s=20251104 header.b="U4A/supQ"; dmarc=pass (policy=none) header.from=gmail.com; arc=pass ("google.com:s=arc-20260327:i=1"); spf=pass (mx.ietf.org: domain of roniamdev@gmail.com designates 2a00:1450:4864:34::f as permitted sender) smtp.mailfrom=roniamdev@gmail.com
Received: by mail-ej2-x0f.google.com with SMTP id a640c23a62f3a-c2e17363b97so233599766b.0 for <oauth@ietf.org>; Wed, 30 Sep 2026 18:58:35 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1790819914; cv=none; d=google.com; s=arc-20260327; b=PBjrvtEQbqvOKTbS0XfIEWUuH6G539rIEgRU2kwXrO3p7nA7IOz3FxxasTGzobriay XDjjBrzHMmQxRogRCfdXh8q72kHvJ3W+CiSyAua4lpxvmspdz39TKXh4Q4KSMAuzC/9S dvqwR9VIweoD0FnPVpGsjB/rN3se+K4Cdwbwr3hjMM4S51QWYCFe0LqgEpbQWknK0yPR kIzKVvZGi7eOg++rb87o6P0FteX6HOUheOZVeUdxhTv3JEKlawmY1me7bxG0jZIa/bKU DAve+eA8yMURWD7qNCYKnzKttHabkTLqeM7EnZGEXhyoxe2eyQh3+kiSGa82odyzGdEF eVAA==
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=3LyinQ1Un49JT4gMzGyixhKPzbO1WoSQ5LOPX2lCu34=; fh=pDXSYx9/JbXH1b8tUimSEnPhulfZmj9CguJZx//b3hk=; b=ZJwdT37xmsuDVFcMzmvwlhPdRQxsGitLeG3f20WfduyUGYmhQ7PxgSB/OjKn7ON0M5 Su7ZF/L8sTX2vdzSTbLqYRU6CIc/r1P/HF2+OczddVmS4me0f41xuQNEofryY4OfD65M OVA1fnXH7RjRtBvF/KwdJ7Pcy8m/kK8ylwX/mb3ZMPE8YKMctaR1Rr87OJ4E+lSd+s1l FSqQ/i+MilZOyZbk0qoEvuyExMX20+a0qD4p4CDpnHOP9PhSSYOoPm8K6LUu4aVajY24 gfuOIssjt0rrlLHysgXliCPMy8/mbnV6F0w/Ttgq2p7kU6DgLgkFy0ye5zqD90Mf/oIP eh2w==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1790819914; x=1791424714; 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=3LyinQ1Un49JT4gMzGyixhKPzbO1WoSQ5LOPX2lCu34=; b=U4A/supQ6zRfgFswUrVBxm1Y4xX7tiW4hc4vXbko+4Y0U2eTjcjy36Hbo8rslWi4Z/ xiixUz+wmXAGEKF0uQkfnOvKD+QOyXd/5RJZuyZ+yhsQ4xuQJIiSCWJRkd2T4cXR6vjm lZAUWVRhAzNauaxb6QnDeW1rhtOzZyvWLOamk6Gg1d9zg1MklGh139EaV6RNDFVzBraa Nbqcy3wGzp225aijY9EXIAV4ajwYDP57p+TP2Ep33DKCwES/vIr/TdS07GpuhvzvAmML BeIbjB5fgFhBTv1zQPcvnzCG8XDkQesgE5fuqNfhSxg5xi8G8mKgjIYiUAOdJIOwwl8i t7+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790819914; x=1791424714; 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=3LyinQ1Un49JT4gMzGyixhKPzbO1WoSQ5LOPX2lCu34=; b=gxEKz9EX67bt1+6WiiO4fthwb0FiJnj2CWIe9OYKLkAusXBdvDfctXOC3oHdlLzvQr OAiHtPoiIw5kLbEpX/OIz3HLZoRc4ycNXeY/G3SvnucgNCGRBtqQB3T0og0K48MY5tM+ IRTpPwPepb5HITL3rSD7KklhYCSsJSOiXAP6Wu2LqKp1H3NjDgy1UsvKs8RfelUbtXK6 Ytw3pA2GNt87rhUtLGAqx8BdQcp+C+Ic20khaHTh+tsJ6pO6+Cz5dTzyLe6DOYiacA8p IdUlDOvQT3uqmP/dYEKri8+82YNAj7lzW+k+HQK6PNeSUawhyrt9wGU1Z+NAPeop3I4o /02Q==
X-Forwarded-Encrypted: i=1; AKwUvBzfp2eRz0v0gTezBdWtVUfngtqr3WJb9OKygosMCxax5BIabQATATOMOQaEm5iG49cGhioUIQ==@ietf.org
X-Gm-Message-State: AFq9FYID3WMpnaO/Yc+jHyx2aj8rNctY8Do/sbb1HelySAShQfHrZ0aV K99k1ojx/hYLBRydlGDfINK4q7kxQxYhleqZyW9C8/t1IkWAkPUm7zUI2GdqkKAOdLVm030RjzF q3q7dHKWvQJnDhNZa0alMLB0X7iBIBZo=
X-Gm-Gg: AYBFou1UcYHihx4fXBbl+okQuL21e+T6zNld7KOEDiGy4GoB15b8m8gzuRqw8RDyw4i WqEwKq/cJINnsxT9UtWZ2ymeEKKImpEyhw2iWUYkSi7O28XaP+XlizHDPZ8KcwMHbhqBvWFJAJ4 eEiU6QyF6C+wOwO8C2FBUw6rOMgK8QAaf/IK/h8tUKMld9u/MXMLgRubxerl1qZ9Bm084LAxkT0 08YENnREQMA+uYwopEOIZ5ozcP2reEg3LSW+qrYmqQTyVGlug4yKDRzIcaWHbfL1oy5HeqSAjQF 00PvNborcZ3BeTZjKbRtVHg388kXMhlP7Bzkbx4PXTnsMst8lbLxmHKn
X-Received: by 2002:a17:906:c155:b0:c2a:f5c2:5cfb with SMTP id a640c23a62f3a-c2e237618d9mr276482566b.7.1790819914192; Wed, 30 Sep 2026 18:58:34 -0700 (PDT)
MIME-Version: 1.0
References: <db89ae6c-f90e-4fee-add3-0c66a7746053.max.ldp@alibaba-inc.com> <CAOfgHgo7qVMu0iGAdsyQySs91YrcOpcnLXfGtV_maSW8ncV56Q@mail.gmail.com> <CANr0dJFS98Wvum5MERgS_TLx07XTjNx6e8vuxLkEexTi_Q_HLA@mail.gmail.com> <PH0PR18MB46859723EAEE7FF14514E822D98B2@PH0PR18MB4685.namprd18.prod.outlook.com> <MMZPR04MB481271FA9666C306914202FFBD938B2@MMZPR04MB481271.eurprd04.prod.outlook.com>
In-Reply-To: <MMZPR04MB481271FA9666C306914202FFBD938B2@MMZPR04MB481271.eurprd04.prod.outlook.com>
From: Ron Bartor <roniamdev@gmail.com>
Date: Wed, 30 Sep 2026 18:58:23 -0700
X-Gm-Features: AclHuK-6Ns7qTxU9o7q4GEQMErLamNd3gSDFUcgE22QbHrKXW6zy2SenschvI1k
Message-ID: <CANr0dJEOSqvqqKOO+URUdg9Lf1qDHYib+LCM1b=5BJfqTZ+Fsw@mail.gmail.com>
To: Yaron ZEHAVI <yaron.zehavi@rbinternational.com>
Content-Type: multipart/alternative; boundary="000000000000d79b67065cbdc075"
X-Spamd-Bar: --
Message-ID-Hash: U2BV57Q7AFOIRFWIYHYPWCMJFNFLGTIC
X-Message-ID-Hash: U2BV57Q7AFOIRFWIYHYPWCMJFNFLGTIC
X-MailFrom: roniamdev@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-oauth.ietf.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: "oauth@ietf.org" <oauth@ietf.org>, Iman Schrock <team@emiliaprotocol.ai>
X-Mailman-Version: 3.3.10
Precedence: list
Subject: [OAUTH-WG] Re: Call for interest: fine-grained authorization in OAuth (IETF 126 follow-up)
List-Id: OAUTH WG <oauth.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/co8CS_E5rnknEB-v6Bfx39XAjcM>
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 Jeff, Yaron,

Yaron, thanks for the correction, and good to meet you. I was citing the
old draft, my mistake. I'll cite draft-ietf-oauth-rar-metadata-remediation
from here on and stop saying "per-RS discovery", since that's not what it
does. The way I read it now, the metadata endpoint tells a client what the
AS can issue, and what a particular resource actually needs you find out by
calling it and getting the remediation back. I also take the gateway point.
It relays the call and relays the remediation and doesn't need to know
anything about the downstream types to do that.

Jeff, agreed on the rest. Each RS says what it needs in RAR terms, the AS
normalizes, and if there's a broker in front it adds one more layer and
normalizes for its own client. That's the per-RS problem, and I think the
draft handles it well. My write-up says as much.

What I'm trying to point at is one step above that, and a concrete case is
clearer than my first mail was. Say the goal is "buy product A". It turns
into a reservation at an inventory service and a charge at a payments
service (two RSs with their own vocabularies, and quite possibly two
different ASs). Each RS remediates in its own terms, each remediation gets
normalized correctly, each request gets authorized. Except the reservation
is for A and the charge is for B. Nothing in that path compares the two,
and I don't think anything in it can, because comparing them needs the
goal, and the AS that has authority over the payments service doesn't hold
the goal. It holds a grant for one service, not what the user was trying to
do across several.

Yaron's correction actually makes this a bit sharper. If there's no
discovery ahead of time, whoever holds the goal can't decompose it into
typed parts up front. It only learns what each RS needs when that RS
refuses. So the question "is this remediation still within the goal" has to
be asked on every remediation as it comes back, and then once more across
all of them at the end. The gateway relays those without reading them,
which is the right thing for a gateway. But somebody still has to read them
against the goal, and that's the party I'd like the design team to name,
whether it ends up being the client, the AS, the broker, or each RS for its
own slice. If the answer is "the broker, when there is one", fine, that's
an answer, but I'd rather it was said out loud, because it means the goal,
and whatever evidence is needed to judge against it, lives at the
intermediary.

Jeff, I think your token exchange idea fits here. If an exchange can hand
back a RAR remediation, the broker gets a typed remediation at token time,
in the RS's own vocabulary, without having to be refused by the RS first.
For the per-RS half of this across a broker hop that's probably the
cleanest carrier, and I'll put it in the write-up next to ID-JAG.

Ron

On Wed, 30 Sept 2026 at 08:18, Yaron ZEHAVI <
yaron.zehavi@rbinternational.com> wrote:

> Hello everyone,
>
>
>
> @Lombardo, Jeff <jeffsec@amazon.com> thanks for the shout out.
>
> @Ron Bartor <roniamdev@gmail.com>, pleased to meet you 😊
>
>
>
> One comment, OAuth 2.0 RAR Metadata and Error Remediation does not offer
> per-RS metadata discovery.
>
> This idea was explored in earlier drafts:
>
>
> https://www.ietf.org/archive/id/draft-zehavi-oauth-rar-metadata-03.html#name-oauth-20-protected-resource
>
>
>
> And removed following feedback from WG members.
>
> The idea was add to RFC 9728 RS metadata:
>
>
>
>     "authorization_details_types_required": {
>
>         "oneOf": ["payment_initiation", "payment_approval",
>
>                   "beneficiary_designation"]
>
>     }
>
>
>
> With Boolean expressions allOf, and, or.
>
> This was deemed not very helpful as:
>
>    - Different resources have different requirements (but in MCP the
>    resource is not expressed on the http path)
>    - Lots of logic which in the end doesn’t tell the client exactly which
>    RAR types to request.
>
>
>
> Then the next idea was include the Boolean logic in the WWW-Authenticate
> header. Opted instead to return the actionable RAR object to remediate the
> failure.
>
>
>
> That being said, I think the task of RS-Gateways was made simpler.
>
> They don’t need to have foreknowledge to combine downstream RS metadata.
>
>
>
> Instead, client makes a request, a failing downstream RS may return the
> remediation payload. Gateway relays the calls without requiring additional
> metadata.
>
>
>
> Yaron
>
>
>
> Classification: GENERAL
>
> *From:* Lombardo, Jeff <jeffsec@amazon.com>
> *Sent:* Wednesday, September 30, 2026 4:08 PM
> *To:* Ron Bartor <roniamdev@gmail.com>
> *Cc:* oauth@ietf.org; Yaron ZEHAVI <yaron.zehavi@rbinternational.com>;
> Iman Schrock <team=40emiliaprotocol.ai@dmarc.ietf.org>; Lombardo, Jeff <
> jeffsec@amazon.com>
> *Subject:* RE: [OAUTH-WG] Re: Call for interest: fine-grained
> authorization in OAuth (IETF 126 follow-up)
>
>
>
> This message is from an external sender - be cautious, particularly with
> links and attachments.
>
>
>
> Hi Ron,
>
> Speaking under the supervision of Yaron. I am not sure I follow the multi-RS
> decomposition problem you try to point at here.
>
>
>
> draft-zehavi-oauth-rar-metadata now
> draft-ietf-oauth-rar-metadata-remediation [
> https://datatracker.ietf.org/doc/draft-ietf-oauth-rar-metadata-remediation/]
> allows each RS to express the RAR-based mediated response along what the AS
> that has authority can speak in terms of RAR schema.
>
>
>
> It means that it is up to each AS to normalize the mediated response, If
> brokered through an API Gateway, this is just adding another layer and it
> is now up to the Gateway / Broker to normalize it for its client.
>
>
>
> As ID-JAG supports RAR, there could be an extension to Token Exchange to
> return a RAR remediation to ease this path.
>
>
>
> Jeff
>
>
>
>
>
> *Jean-François “Jeff” Lombardo* | Amazon Web Services
>
>
> Principal Standards Specialist, Identity Services
> Montréal, Canada
>
>
>
> *From:* Ron Bartor <roniamdev@gmail.com>
> *Sent:* September 29, 2026 7:09 PM
> *To:* Iman Schrock <team=40emiliaprotocol.ai@dmarc.ietf.org>
> *Cc:* oauth@ietf.org
> *Subject:* [EXT] [OAUTH-WG] Re: Call for interest: fine-grained
> authorization in OAuth (IETF 126 follow-up)
>
>
>
> *CAUTION*: This email originated from outside of the organization. Do not
> click links or open attachments unless you can confirm the sender and know
> the content is safe.
>
>
>
> *AVERTISSEMENT*: Ce courrier électronique provient d’un expéditeur
> externe. Ne cliquez sur aucun lien et n’ouvrez aucune pièce jointe si vous
> ne pouvez pas confirmer l’identité de l’expéditeur et si vous n’êtes pas
> certain que le contenu ne présente aucun risque.
>
>
>
> Hi Dapeng, all,
>
>
>
> I support continuing this direction and would like to contribute to the
> design team.
>
>
>
> I wasn't in the room at 126, so apologies if this was covered, but I'd
> like to put one scenario on the table for the "goal state management" and
> "discoverable schema" pillars. I operate an enterprise API gateway that
> fronts MCP and agent traffic. A single agent request routinely fans out to
> several downstream resource servers, and each of those RSs owns its own
> authorization semantics: its own notion of what a task is, what the
> constraining attributes are, and how a request is scoped. Those semantics
> are not shared across services, and in some cases cannot be. A concrete
> example is an RS that was integrated from a separate business unit; its
> authorization model reflects its own history and is materially different
> from the rest of our services, and harmonizing it is neither quick nor, for
> some of its consumers, desirable.
>
>
>
> In that setting, per-RS schema discovery (as in
> draft-zehavi-oauth-rar-metadata) solves the local problem but not the
> cross-RS one: the goal has to be carried across trust domains that are
> mutually opaque, and something has to decide whether each downstream task
> is still within the goal without any RS seeing the others' vocabulary. The
> slides put "task in goal" evaluation out of scope, which I understand, but
> I think the design team should at least be explicit about where that
> evaluation lives in a multi-RS decomposition (client, AS,
> gateway/intermediary, or each RS independently) and what the goal-state
> representation needs to look like so that it remains meaningful to an RS
> that only understands its own schema.
>
>
>
> I'd be glad to write this up as a concrete use case, and I think it fits
> naturally with the RS-to-client signaling work already in the WG
> (txn-challenge, client-challenge, RAR-metadata) rather than requiring new
> machinery.
>
>
>
> Best regards,
>
> Ron Bar-Tor
>
>
>
> On Tue, Sep 29, 2026 at 3:13 PM Iman Schrock <team=
> 40emiliaprotocol.ai@dmarc.ietf.org> wrote:
>
> Hi Dapeng,
>
> I support continuing this work. One boundary I would like the design team
> to test: a goal-level authorization can help a client negotiate what an RS
> requires, but it is not approval of the eventual exact action. A changed
> payment destination after negotiation, or a lost response after provider
> entry, needs its own decision and recovery rule.
>
> We have published AEB
> <https://datatracker.ietf.org/doc/draft-schrock-action-evidence-boundary/>
> and an open vector pack
> <https://github.com/emiliaprotocol/emilia-protocol/tree/main/conformance/aeb-1>
> for that boundary. I would be glad to bring a small cross-system case to
> the design team and see where it belongs alongside existing OAuth work.
>
> Best,
> Iman
>
>
>
> On Wed, 30 Sep 2026 00:19:52 +0800, "刘大鹏(鹏成)" <max.ldp=
> 40alibaba-inc.com@dmarc.ietf.org> wrote:
>
> Hello all, During IETF 126 we had a discussion on how OAuth can support
> fine-grained authorization for AI agents [1]. The topic generated a lot of
> interest in the room, and the poll showed support for continuing the
> discussion [2]. A quick summary of the problem space as presented in the
> session [3]: 1. Enabling clients to construct fine-grained authorization
> requests using: a. Goal state management, b. Discoverable domain-specific
> schemas for task and authorization definition, c. Task-in-goal evaluation
> requests 2. Establishing a negotiation pattern that allows a resource
> server to guide clients towards the required authorization The session also
> proposed forming a design team to explore this space [3]. Before IETF 127,
> we would like to hear from the WG: - Is this a direction the community is
> interested in pursuing? Replies on the list will help shape the discussion
> at IETF 127. [1]
> https://datatracker.ietf.org/meeting/126/materials/minutes-126-oauth-202607240700-00
> [2] https://datatracker.ietf.org/doc/polls-126-oauth-202607240900/ [3]
> https://datatracker.ietf.org/meeting/126/materials/slides-126-oauth-sessb-policy-language-binding-for-oauth-00
> Best regards,Dapeng Liu
>
> _______________________________________________
> OAuth mailing list -- oauth@ietf.org
> To unsubscribe send an email to oauth-leave@ietf.org
>
> 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 purposes.
> RBI neither makes nor accepts legally binding statements via e-mail unless
> explicitly agreed otherwise. Information pursuant to § 14 Austrian
> Companies Code: Raiffeisen Bank International AG; Registered Office: Am
> Stadtpark 9
> <https://www.google.com/maps/search/Am+Stadtpark+9?entry=gmail&source=g>,
> 1030 Vienna, Austria; Company Register Number: FN 122119m at the Commercial
> Court of Vienna (Handelsgericht Wien).
>