Return-Path: <mgerber@twilio.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 66FE511CF1526
	for <oauth@mail2.ietf.org>; Wed, 22 Jul 2026 22:34:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1;
	t=1784784865; bh=wpITrLFRZu+fsVqcoNzGoY+ZPu7oRtVZTsBEOqR3czc=;
	h=References:In-Reply-To:From:Date:Subject:To:Cc;
	b=a+ol8EKbvpCrTrl/E1tQdRFME208nlYd8TEtti+rOnyBwHM50Z92PJfQflYgdauwZ
	 cVl3vMT4oFB+usXHz/CtrA4AdQnDULA5qL+ONH6rtsra9lPsx13FDq8WkdXAoUzCjq
	 JHgIv5Ebz6Fp9sU05OdIxyA1Fy/5yDPuIQx9ryMI=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.088
X-Spam-Level: 
X-Spam-Status: No, score=-2.088 tagged_above=-999 required=5
	tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1,
	DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
	HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
	SPF_NONE=0.001, T_KAM_HTML_FONT_INVALID=0.01]
	autolearn=unavailable autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (1024-bit key)
	header.d=twilio.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 DNTAOlakARgn for <oauth@mail2.ietf.org>;
	Wed, 22 Jul 2026 22:34:22 -0700 (PDT)
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com
 [IPv6:2a00:1450:4864:20::235])
	(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 C88A911CF151F
	for <oauth@ietf.org>; Wed, 22 Jul 2026 22:34:21 -0700 (PDT)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-39c953950dfso1475781fa.1
        for <oauth@ietf.org>; Wed, 22 Jul 2026 22:34:21 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1784784853; cv=none;
        d=google.com; s=arc-20260327;
        b=B7nKWoORRNk47ACDHoMOQKNeDWRQHaz50OEySKhCuxO+bfX+MLNcD5Ta0IVs4flFwl
         k4Gmd4fVXmoRd7IANSYRgnn5QMSZXNM9L22qFSyAzRs9yxL/9UYI8IuuI4HwDZkKBAAx
         7sDT6Ue+UHaxn5LPO/n0Xrue5CaHr9YO5m4nMm+rcF/j/D3I3EQFg7eftvq4YrPm8zux
         YnNK9unrTHWMhdosfQZC52Uq9tmubqJMeeuEGAjdZ0nI08+F0JtCryM3m9lKCj0Ivn+0
         Bvr49j8e+AujUrvPUvZjLOA/y1737v22NVGimMXDyD+DBtB0iYnUoTSOxP3wYkc91No8
         Al9g==
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=JUMA1IpXk43MT2fSGp7RVz4t+9GMN1r0K9p3AeKAD/g=;
        fh=UwO3gArrOaWz4sBc/heWkUjWWhP8NZF7FTtq297N+fE=;
        b=GdILcuKm/Jx7ZaJNNRhj3OIPCBJuQ0oHJGuzFgMg8Ff8LOmTijFWC+aB4kBxmPkWNC
         FEf5cn5jqCNVBSHKMHGOFQtKnanAFR8JdFRO1zWJrV9UnLmrDKGraKYwdBilQgcONZRV
         lTRTRGPGc99FiLeTrMs8HvJScqC/kEDeX315C7GXMVPEjBUjCb0CROTb+QAK2GjH/Pbq
         bzSrWJ7p/Kus5dBLZWTprThcJxRWZHXUpB/UXkmi/V6jDXlEtZn2mqev1uJSfT3WMlhe
         NhH1wuLjcpodl26oIyBuUcmvhqeZWAZpqtxTmXWZzrSKySM1JEfemcaZb9ZmeVlVGOjl
         G4rQ==;
        darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=twilio.com; s=google1024; t=1784784853; x=1785389653; 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=JUMA1IpXk43MT2fSGp7RVz4t+9GMN1r0K9p3AeKAD/g=;
        b=Q+io/XZvBCIr7bP1H63vduSypS5OMtA/s80g8CkOaIpzaWB77OF/pQ+8ErcY+EbFcP
         BWK7TwjoBawouH5eP4ssr+eMorsEGMHNyZ/Y1Zd0DJTD5Cs8qRoiqqBiBMsNugP8pbJw
         LesF2By0oRuSowg9D67m7ECiHQBYxkrDepKyA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1784784853; x=1785389653;
        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=JUMA1IpXk43MT2fSGp7RVz4t+9GMN1r0K9p3AeKAD/g=;
        b=Af9KwLOodBEiw1ZYco4WrWMGs1xdC0eI6JTbZJA1UJmJ695y22fc0ckIbXCud55dEJ
         osZmfJBUwfpKmeozUbONeZXqgPamK1kmkBRT255pUD+fZcUa88Xn6gfHN5B1EYh5Ea3v
         XPe8s66ePMQbgPxoG29R46xRmI84SkyqqyFFcW6T6ZIAVy2xJUUYaQVgh8jnwvr4dY6n
         5yGJmr/k0e8gB0d+adEwkrt0ZyNtZ3YXyyQUiKeHltGBI7Znvd8LJ0Bgvm18YwFpOnw6
         EKSNqzu9THqIxGgZnsLrA595PzIHHncjJnYUHim/AasBJ5C/goTXbPTrBnoaB7jbpQ7d
         o8mQ==
X-Forwarded-Encrypted: i=1;
 AHgh+RoOp7bYP/HE1xyqnj8MScron3LWJtue2BB1fz3/lRz3eDt5LYT5HLUTedR2sFmtf0jq7/w+EA==@ietf.org
X-Gm-Message-State: AOJu0YwC5N1O+4KAGWVkXQ/OZW7PoD6qSsFwJXJcJ69d2d1V0B3YfmS6
	q+TRxwNDkpyWA3hdeH8H+LqY5TL19Do42SFsZ5UF2cpZxvqguXHkNf5DMZ9YaVlmIrH2cAoDbpk
	FysbfqUefdSdKa3ZhPWkb/dHWN7U50sda4cDkQ4PPxA==
X-Gm-Gg: AR+sD11P7dZw6MX3oJ0n0as/zt5F1dBFGv8v7dEjbph9TDFOMuxVE/u8C4XNk3RsYq+
	zODT6YjEacjUob0sLA/7NCFwFU2iabtLwsSohiMwyRuY/mNfEmGuMmctrnQ9A1Xk/vlXKcQ8Lh8
	oDKSH2R3+Lj/vrTyI/5BGp1h91lnBJFeoRSj6z7cgKx/GMcFlDxbiVV1K7XIQSVV66L4wAno33t
	X30SP2mAymXL1jYgDFcbB81fFWhvZX7jeP7LY2i2+I0w2I0MLgAMU41EEEhHruf
X-Received: by 2002:a05:651c:2cb:b0:39e:f501:c816 with SMTP id
 38308e7fff4ca-39f07e9eaa8mr2141791fa.24.1784784853317; Wed, 22 Jul 2026
 22:34:13 -0700 (PDT)
MIME-Version: 1.0
References: 
 <CAMM5n7w-CFEUSNQBKcopmeu7qenvVr_R-btQMYa29JAiyOvcSw@mail.gmail.com>
 <Gv_xNENanFNpCGf1PlE-6FhPPrAb27XsQFOZmDfZYIyiPaJAd36FSuE5LI3uMllc98ffw6vNr_CBoRaEs_EFCJk6QLifiU3yqzjYklvweck=@proton.me>
 <CAPVrLW3SUzJfxjM7P-3F8zqnmtWoG=6mELQ9OcmpPpcOF3ENEQ@mail.gmail.com>
 <CAMM5n7wXsu3i+Ch-gS+gDeJN0D8VJCH-Z1Q9epwcEH-zOJbr3A@mail.gmail.com>
 <NLIphYTuGVD_ZqD6BQNNBW-Ch5COwhJxH4dGMGtl1n46y6KzY5mSZK4mY6GCuvrrXZda223dGrr2FO-Z1wUTAvaU3fuc5ssZ8nKL96psCJ4=@proton.me>
In-Reply-To: 
 <NLIphYTuGVD_ZqD6BQNNBW-Ch5COwhJxH4dGMGtl1n46y6KzY5mSZK4mY6GCuvrrXZda223dGrr2FO-Z1wUTAvaU3fuc5ssZ8nKL96psCJ4=@proton.me>
From: Max Gerber <mgerber@twilio.com>
Date: Thu, 23 Jul 2026 07:34:02 +0200
X-Gm-Features: AUfX_mysQtpfUnuql6YIaaEzrxpE2XzTJXzmYrFG_FTFwyJjaSLhgYw93-WCZQU
Message-ID: 
 <CAH8kd8T2yduwX8=ve_23a06mnN+sw8_wqccHM-voP3bvrOacPA@mail.gmail.com>
To: morganLR <morganLR=40proton.me@dmarc.ietf.org>
Content-Type: multipart/alternative; boundary="0000000000002ee91b0657409b44"
Message-ID-Hash: NKXFDOYM2YWO5KKNIH6A5BYO4YYXWACY
X-Message-ID-Hash: NKXFDOYM2YWO5KKNIH6A5BYO4YYXWACY
X-MailFrom: mgerber@twilio.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: Eric Leleu <eric.leleu=40graviteesource.com@dmarc.ietf.org>,
 Karl McGuinness <me@karlmcguinness.com>, oauth <oauth@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: =?utf-8?q?=5BOAUTH-WG=5D_Re=3A_Question_on_ID-JAG_topology=3A_Public_Agent_+?=
 =?utf-8?q?_API_Gateway_/_MCP_Proxy_scenario?=
List-Id: OAUTH WG <oauth.ietf.org>
Archived-At: 
 <https://mailarchive.ietf.org/arch/msg/oauth/rRhwFWj8yBo12fVz394JJVrY2gU>
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>

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

Thinking out loud: One way to do this today is for the MCP Gateway to *also=
*
act as a client to the IDP, requiring the end user to log in to both the
Gateway and the Agent. This can be done with URL Elicitation in the MCP
space, or if the Gateway runs its own OAuth AS as a shim. The Agent gets a
regular access token, and the Gateway gets an ID Token with the Gateway
client as the audience.

When the Agent makes requests to the Gateway, the Gateway can use the ID
Token to retrieve an ID-JAG for the upstream MCP AS. This ID-JAG will only
identify the Gateway client, not the Agent itself. This would make the
Gateway responsible for access control decisions & auditing, and it cuts
off the IDP from observing per-Agent behavior - which undoes a lot of the
benefits of ID-JAG in the first place.

Would having the Gateway pass in the Agent's access token as an
`actor_token` in the token exchange request to the IDP help here? That
would give the IDP a mechanism to identify the Agent (and also bind both
the Agent identity + Gateway identity within the ID-JAG). Actor tokens are
deliberately out of scope of the ID-JAG spec, but they could be defined in
a future profile.

On Thu, Jul 23, 2026 at 3:58=E2=80=AFAM morganLR <morganLR=3D
40proton.me@dmarc.ietf.org> wrote:

> Eric,
>
> Good question, it is my understanding that the two paths you named do
> different jobs, so I'd suggest both, in this order given the timing this
> week.
>
> 1. GitHub issue against the ID-JAG repo, today if you can. That's the
> right vehicle for the narrow question: does ID-JAG address this topology,
> or is it out of scope by design?
>
> 2. The use-case record, for the broader point. The chairs have been clear
> that use cases and requirements come before mechanism selection, and ther=
e
> is an active collection effort (draft-chen-oauth-agent-authz-use-cases is
> the current gathering point).
>
> 3. If you want it durable under your own name, a short individual
> problem-statement I-D is always an option.
>
> Happy to look over the issue text before you file it if that's useful.
>
> Best,
> Morgan
> On Wednesday, July 22nd, 2026 at 2:12 PM, Eric Leleu <eric.leleu=3D
> 40graviteesource.com@dmarc.ietf.org> wrote:
>
> Morgan, Karl,
>
> Thank you both for the detailed and thoughtful responses. I'll block out
> time to properly go through the references you both pointed to.
>
> Morgan, one practical question on process: you mentioned this topology
> deserves to be in the record the working group is building this week.
> I'm not familiar with the actual procedure for that. Should I open a
> GitHub issue against the ID-JAG repo, or write it up as a separate
> use-case/problem statement?
> If the latter, where should that go? Happy to follow whichever path is
> expected.
>
> Thanks again,
> Eric
>
> Le mer. 22 juil. 2026 =C3=A0 18:44, Karl McGuinness <me@karlmcguinness.co=
m> a
> =C3=A9crit :
>
>> Extending ID-JAG to support public clients is an open topic for
>> discussion. I encourage you to read these issues and chime in with
>> additional use cases, concerns, or feedback
>>
>> https://github.com/oauth-wg/oauth-identity-assertion-authz-grant/issues/=
85
>>
>> https://github.com/oauth-wg/oauth-identity-assertion-authz-grant/issues/=
113
>>
>> The gateway scenario you outlined is similar to one where folks need to
>> make a second hop after exchanging the ID-JAG for an access token and no
>> longer have access to the original identity assertion to obtain a new
>> ID-JAG. I've been exploring this scenario as an identity continuation
>> pattern (
>> https://notes.karlmcguinness.com/notes/identity-continuation-assertion/)=
.
>> A key premise of ID-JAG is that re-subjecting across trust domains is a
>> mint and not an attenuation (
>> https://notes.karlmcguinness.com/notes/re-subjecting-is-a-mint-not-an-at=
tenuation/
>> ). This may not be relevant to your specific gateway deployment
>> scenarios, but it is common in deployments where a gateway fronts existi=
ng
>> SaaS apps for example.
>>
>> I'm not super happy with the solution I arrived at (
>> https://mcguinness.github.io/draft-mcguinness-oauth-id-continuation-asse=
rtion/draft-mcguinness-oauth-id-continuation-assertion.html
>> and for this reason I haven't submitted it yet as an I-D because it stil=
l
>> needs workshopping. I'm sharing this only to see if it aligns with your =
use
>> case. I expect smarter people will find better solutions as this particu=
lar
>> solution isn't pretty.
>>
>> For scenarios that don't need re-subjecting then an attentuation based
>> soluton may be attractive but that it outside the scope of the ID-JAG
>> profile.
>>
>> -Karl
>>
>>
>>
>>
>> On Wed, Jul 22, 2026 at 8:58=E2=80=AFAM morganLR <morganLR=3D
>> 40proton.me@dmarc.ietf.org> wrote:
>>
>>> Eric,
>>>
>>> The dilemma is real and I do not think you missed a mechanism. It is
>>> worth naming why it arises structurally: an identity assertion is
>>> audience-locked to the party it was issued to, and delegation through a=
n
>>> intermediary requires either re-minting at the issuer or a way for the
>>> intermediary's participation to be first-class in the exchange. Section
>>> 4.3.3 as written admits neither, so every gateway hop reproduces your
>>> dilemma.
>>>
>>> Two resolution families exist, and the draft could name which it intend=
s.
>>>
>>> Within the current model, RFC 8693 already has the missing piece: the
>>> actor_token. A composite exchange where the gateway authenticates as
>>> itself, presents the agent's assertion as subject_token and its own
>>> credential as actor_token, and the IdP applies the audience check to th=
e
>>> subject token's original audience while separately authorizing the acto=
r as
>>> a registered intermediary for that audience, resolves your topology wit=
hout
>>> new machinery. The cost is that the IdP must now hold policy about whic=
h
>>> intermediaries may act for which clients, and the exchange remains a
>>> per-upstream, per-hop round trip to the IdP: the gateway mints one ID-J=
AG
>>> per upstream AS, on the critical path.
>>>
>>> The other family carries the delegation as a verifiable artifact instea=
d
>>> of re-minting it: the agent delegates narrowed authority to the gateway=
 in
>>> a form the upstream can verify directly against the original issuer's k=
ey,
>>> so the intermediary attenuates rather than exchanges, and no per-hop tr=
ip
>>> to the IdP exists. That property class (attenuation verifiable from the
>>> artifact alone, no runtime callback to the issuing side, possession bou=
nd
>>> at each hop) is what R1, R3, and R4 in
>>> draft-reece-wimse-cross-org-delegation describe, and gateway aggregatio=
n is
>>> among the cleanest motivating topologies for it.
>>>
>>> Either way, your topology deserves to be in the record the working grou=
p
>>> is building this week: the chairs have asked for use cases and problem
>>> statements before solutions, and agent-behind-gateway with a public-cli=
ent
>>> agent is arguably the most common deployment shape MCP has produced. I
>>> would encourage writing it up exactly as you have here.
>>>
>>> Morgan
>>>
>>> On Wednesday, July 22nd, 2026 at 7:23 AM, Eric Leleu <eric.leleu=3D
>>> 40graviteesource.com@dmarc.ietf.org> wrote:
>>>
>>> Hi all,
>>>
>>> I'd like to raise a topology question about the ID-JAG draft
>>> (draft-ietf-oauth-identity-assertion-authz-grant) that I expect to come=
 up
>>> often as agentic/MCP deployments grow, and I don't think the current te=
xt
>>> resolves it from my understanding.
>>>
>>> Topology Description:
>>> ----------------------------
>>>
>>> - An AI coding agent (e.g. Claude Code) acts as an MCP Client. It is
>>> registered at the enterprise IdP as a *public* client (native/CLI app,
>>> PKCE, no client secret).
>>> - The agent authenticates directly against the enterprise IdP. As per
>>> OIDC Core, the resulting ID Token's `aud` is the agent's own client_id.=
 In
>>> the same flow the agent also obtains an access token whose
>>> audience/resource is an MCP Gateway sitting in front of it.
>>> - The MCP Gateway aggregates several upstream MCP servers. Each upstrea=
m
>>> server is protected by its own Resource Authorization Server, and each =
of
>>> those independently trusts the same enterprise IdP.
>>> - Per ID-JAG, to reach a given upstream server the Gateway needs an
>>> access token minted through the ID-JAG flow: Token Exchange at the IdP =
to
>>> mint an ID-JAG (aud =3D upstream AS) and then execute JWT-Bearer redemp=
tion
>>> at that AS.
>>>
>>> The conflict :
>>> -----------------
>>>
>>> Section 4.3.3 [1], "IdP Token Exchange Processing Rules", requires that
>>> when the subject_token presented in the Token Exchange call is an ident=
ity
>>> assertion (ID Token), "the IdP MUST validate the assertion and MUST
>>> validate that the audience of the assertion (e.g. the aud claim of the =
ID
>>> Token or SAML Audience) matches the client_id of the client authenticat=
ion
>>> of the request". In the Gateway topology above, this rule creates a dil=
emma
>>> where neither party can execute the exchange:
>>>
>>>
>>> 1. The agent is the audience of the ID Token, but the agent has no
>>> reason to call Token Exchange itself =E2=80=94 it doesn't know which up=
stream
>>> AS/audience a given MCP tool call needs, and as a public client it's al=
so
>>> not well positioned to be trusted with that capability directly. As def=
ined
>>> in the draft "this specification SHOULD only be supported for confident=
ial
>>> clients."
>>> 2. The Gateway is the party that actually needs the ID-JAG (it knows th=
e
>>> target upstream AS), and it is the Gateway that would authenticate the
>>> Token Exchange call. But the ID Token's `aud` is the agent's client_id,=
 not
>>> the Gateway's. Per the mandatory audience check above, the IdP must rej=
ect
>>> that exchange no matter how the ID Token reaches the Gateway (forwarded=
 by
>>> the agent or otherwise).
>>>
>>>
>>> From my understanding, neither party in this agent-to-gateway
>>> architecture can legally execute the ID-JAG exchange under the current
>>> specification.
>>>
>>>
>>> Did I miss a mechanism already defined in the draft (or in
>>> draft-ietf-oauth-identity-chaining) to handle this delegation/proxy pat=
tern?
>>> Is there ongoing work to address multi-hop or API Gateway patterns wher=
e
>>> the identity assertion's audience differs from the calling proxy's
>>> client_id?
>>>
>>>
>>> Thanks,
>>> Eric
>>>
>>>
>>> [1]
>>> https://datatracker.ietf.org/doc/html/draft-ietf-oauth-identity-asserti=
on-authz-grant#name-processing-rules
>>>
>>> --
>>>
>>>
>>>
>>> Eric LELEU
>>>
>>> Staff Software Engineer
>>>
>>> E eric.leleu@graviteesource.com <your.name@graviteesource.com>
>>>
>>> Hold Nothing Back
>>> <http://youtube.com/c/Graviteesource?sub_confirmation=3D1>
>>> <https://www.linkedin.com/company/gravitee-io>
>>>
>>>
>>> _______________________________________________
>>> OAuth mailing list -- oauth@ietf.org
>>> To unsubscribe send an email to oauth-leave@ietf.org
>>>
>>
>
> --
>
>
>
> Eric LELEU
>
> Staff Software Engineer / AM Teach Lead
>
> E eric.leleu@graviteesource.com <your.name@graviteesource.com>
>
> Hold Nothing Back
> <http://youtube.com/c/Graviteesource?sub_confirmation=3D1>
> <https://www.linkedin.com/company/gravitee-io>
>
>
> _______________________________________________
> OAuth mailing list -- oauth@ietf.org
> To unsubscribe send an email to oauth-leave@ietf.org
>

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

<div dir=3D"ltr"><div dir=3D"auto">Thinking out loud: One way to do this to=
day is for the MCP Gateway to <i>also</i> act as a client to the IDP, requi=
ring the end user to log in to both the Gateway and the Agent. This can be =
done with URL Elicitation in the MCP space, or if the Gateway runs its own =
OAuth AS as a shim. The Agent gets a regular access token, and the Gateway =
gets an ID Token with the Gateway client as the audience.</div><div dir=3D"=
auto"><br></div><div>When the Agent makes requests to the Gateway, the Gate=
way can use the ID Token to retrieve an ID-JAG for the upstream MCP AS. Thi=
s ID-JAG will only identify the Gateway client, not the Agent itself. This =
would make the Gateway responsible for access control decisions &amp; audit=
ing, and it cuts off the IDP from observing per-Agent behavior - which undo=
es a lot of the benefits of ID-JAG in the first place.</div><div><br></div>=
<div>Would having the Gateway pass in the Agent&#39;s access token as an `a=
ctor_token` in the token exchange request to the IDP help here? That would =
give the IDP a mechanism to identify the Agent (and also bind both the Agen=
t identity + Gateway identity within the ID-JAG). Actor tokens are delibera=
tely out of scope of the ID-JAG spec, but they could be defined in a future=
 profile.</div></div><div><br><div class=3D"gmail_quote"><div dir=3D"ltr" c=
lass=3D"gmail_attr">On Thu, Jul 23, 2026 at 3:58=E2=80=AFAM morganLR &lt;mo=
rganLR=3D<a href=3D"mailto:40proton.me@dmarc.ietf.org" target=3D"_blank">40=
proton.me@dmarc.ietf.org</a>&gt; wrote:<br></div><blockquote class=3D"gmail=
_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204=
,204);padding-left:1ex"><span>Eric,</span><div><br></div><div><span>Good qu=
estion, it is my understanding that the two paths you named do different jo=
bs, so I&#39;d suggest both, in this order given the timing this week.</spa=
n></div><div><br></div><div><span>1. GitHub issue against the ID-JAG repo, =
today if you can. That&#39;s the right vehicle for the narrow question: doe=
s ID-JAG address this topology, or is it out of scope by design?=C2=A0</spa=
n></div><div><br></div><div><span>2. The use-case record, for the broader p=
oint. The chairs have been clear that use cases and requirements come befor=
e mechanism selection, and there is an active collection effort (draft-chen=
-oauth-agent-authz-use-cases is the current gathering point).=C2=A0</span><=
/div><div><br></div><div><span>3. If you want it durable under your own nam=
e, a short individual problem-statement I-D is always an option.</span></di=
v><div><br></div><div><span>Happy to look over the issue text before you fi=
le it if that&#39;s useful.</span></div><div><br></div><div><span>Best,</sp=
an></div><span>Morgan</span><div>
        On Wednesday, July 22nd, 2026 at 2:12 PM, Eric Leleu &lt;eric.leleu=
=3D<a href=3D"mailto:40graviteesource.com@dmarc.ietf.org" target=3D"_blank"=
>40graviteesource.com@dmarc.ietf.org</a>&gt; wrote:<br>
        <blockquote type=3D"cite">
            <div dir=3D"ltr">Morgan, Karl,
<br><br>Thank you both for the detailed and thoughtful responses. I&#39;ll =
block out
time to properly go through the references you both pointed to. <div><br></=
div><div>Morgan, one practical question on process: you mentioned this topo=
logy
deserves to be in the record the working group is building this week. </div=
><div>I&#39;m not familiar with the actual procedure for that. Should I ope=
n a
GitHub issue against the ID-JAG repo, or write it up as a separate
use-case/problem statement? </div><div>If the latter, where should that go?=
 Happy
to follow whichever path is expected. </div><div><br></div><div>Thanks agai=
n, </div><div>Eric</div></div><br><div class=3D"gmail_quote"><div dir=3D"lt=
r" class=3D"gmail_attr">Le mer. 22 juil. 2026 =C3=A0 18:44, Karl McGuinness=
 &lt;<a href=3D"mailto:me@karlmcguinness.com" rel=3D"noreferrer nofollow no=
opener" target=3D"_blank">me@karlmcguinness.com</a>&gt; a =C3=A9crit :<br><=
/div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bo=
rder-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><di=
v>Extending ID-JAG to support public clients is an open topic for discussio=
n.  I encourage you to read these issues and chime in with additional use c=
ases, concerns, or feedback</div><div><br></div><div><a href=3D"https://git=
hub.com/oauth-wg/oauth-identity-assertion-authz-grant/issues/85" rel=3D"nor=
eferrer nofollow noopener" style=3D"word-break:break-word" target=3D"_blank=
">https://github.com/oauth-wg/oauth-identity-assertion-authz-grant/issues/8=
5</a></div><div><a href=3D"https://github.com/oauth-wg/oauth-identity-asser=
tion-authz-grant/issues/113" rel=3D"noreferrer nofollow noopener" style=3D"=
word-break:break-word" target=3D"_blank">https://github.com/oauth-wg/oauth-=
identity-assertion-authz-grant/issues/113</a></div><div><br></div><div>The =
gateway scenario you outlined is similar to one where folks need to make a =
second hop after exchanging the ID-JAG for an access token and no longer ha=
ve access to the original identity assertion to obtain a new ID-JAG.  I<spa=
n style=3D"background-color:transparent">&#39;ve been exploring this scenar=
io as an identity continuation pattern (</span><a href=3D"https://notes.kar=
lmcguinness.com/notes/identity-continuation-assertion/" rel=3D"noreferrer n=
ofollow noopener" style=3D"word-break:break-word" target=3D"_blank">https:/=
/notes.karlmcguinness.com/notes/identity-continuation-assertion/</a>)<span =
style=3D"background-color:transparent">. A key premise of ID-JAG is that re=
-subjecting across trust domains is a mint and not an attenuation (</span><=
a href=3D"https://notes.karlmcguinness.com/notes/re-subjecting-is-a-mint-no=
t-an-attenuation/" rel=3D"noreferrer nofollow noopener" style=3D"word-break=
:break-word" target=3D"_blank">https://notes.karlmcguinness.com/notes/re-su=
bjecting-is-a-mint-not-an-attenuation/</a>)<span style=3D"background-color:=
transparent">.   This may not be relevant to your specific gateway deployme=
nt scenarios, but it is common in deployments where a gateway fronts existi=
ng SaaS apps for example.<br><br>I&#39;m not super happy with the solution =
I arrived at (</span><span style=3D"background-color:transparent"><a href=
=3D"https://mcguinness.github.io/draft-mcguinness-oauth-id-continuation-ass=
ertion/draft-mcguinness-oauth-id-continuation-assertion.html" rel=3D"norefe=
rrer nofollow noopener" style=3D"word-break:break-word" target=3D"_blank">h=
ttps://mcguinness.github.io/draft-mcguinness-oauth-id-continuation-assertio=
n/draft-mcguinness-oauth-id-continuation-assertion.html</a> and for this re=
ason I haven&#39;t submitted it yet as an I-D because it still needs worksh=
opping.  I&#39;m sharing this only to see if it aligns with your use case. =
  I expect smarter people will find better solutions as this particular sol=
ution isn&#39;t pretty. <br><br>For scenarios that don&#39;t need re-subjec=
ting then an attentuation based soluton may be attractive but that it outsi=
de the scope of the ID-JAG profile. </span></div><div><span style=3D"backgr=
ound-color:transparent"><br></span></div><div><span style=3D"background-col=
or:transparent">-Karl<br></span></div><br><div><br><br></div></div><br><div=
 class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Wed, Jul 22=
, 2026 at 8:58=E2=80=AFAM morganLR &lt;morganLR=3D<a href=3D"mailto:40proto=
n.me@dmarc.ietf.org" rel=3D"noreferrer nofollow noopener" target=3D"_blank"=
>40proton.me@dmarc.ietf.org</a>&gt; wrote:<br></div><blockquote class=3D"gm=
ail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,=
204,204);padding-left:1ex"><div style=3D"font-family:Arial,sans-serif;font-=
size:14px"></div><p dir=3D"auto">Eric, </p><p dir=3D"auto"><span style=3D"f=
ont-size:0.875rem">The dilemma is real and I do not think you missed a mech=
anism. It is worth naming why it arises structurally: an identity assertion=
 is audience-locked to the party it was issued to, and delegation through a=
n intermediary requires either re-minting at the issuer or a way for the in=
termediary&#39;s participation to be first-class in the exchange. Section 4=
.3.3 as written admits neither, so every gateway hop reproduces your dilemm=
a.</span></p><p dir=3D"auto">Two resolution families exist, and the draft c=
ould name which it intends.</p><p dir=3D"auto">Within the current model, RF=
C 8693 already has the missing piece: the actor_token. A composite exchange=
 where the gateway authenticates as itself, presents the agent&#39;s assert=
ion as subject_token and its own credential as actor_token, and the IdP app=
lies the audience check to the subject token&#39;s original audience while =
separately authorizing the actor as a registered intermediary for that audi=
ence, resolves your topology without new machinery. The cost is that the Id=
P must now hold policy about which intermediaries may act for which clients=
, and the exchange remains a per-upstream, per-hop round trip to the IdP: t=
he gateway mints one ID-JAG per upstream AS, on the critical path.</p><p di=
r=3D"auto">The other family carries the delegation as a verifiable artifact=
 instead of re-minting it: the agent delegates narrowed authority to the ga=
teway in a form the upstream can verify directly against the original issue=
r&#39;s key, so the intermediary attenuates rather than exchanges, and no p=
er-hop trip to the IdP exists. That property class (attenuation verifiable =
from the artifact alone, no runtime callback to the issuing side, possessio=
n bound at each hop) is what R1, R3, and R4 in draft-reece-wimse-cross-org-=
delegation describe, and gateway aggregation is among the cleanest motivati=
ng topologies for it.</p><p dir=3D"auto">Either way, your topology deserves=
 to be in the record the working group is building this week: the chairs ha=
ve asked for use cases and problem statements before solutions, and agent-b=
ehind-gateway with a public-client agent is arguably the most common deploy=
ment shape MCP has produced. I would encourage writing it up exactly as you=
 have here.</p><p dir=3D"auto">Morgan</p><div style=3D"font-family:Arial,sa=
ns-serif;font-size:14px"><br><div>
        On Wednesday, July 22nd, 2026 at 7:23 AM, Eric Leleu &lt;eric.leleu=
=3D<a href=3D"mailto:40graviteesource.com@dmarc.ietf.org" rel=3D"noreferrer=
 nofollow noopener" style=3D"word-break:break-word" target=3D"_blank">40gra=
viteesource.com@dmarc.ietf.org</a>&gt; wrote:<br>
        <blockquote type=3D"cite">
            <div dir=3D"ltr"><div>Hi all,<br><br>I&#39;d like to raise a to=
pology question about the ID-JAG draft (draft-ietf-oauth-identity-assertion=
-authz-grant) that I expect to come up often as agentic/MCP deployments gro=
w, and I don&#39;t think the current text resolves it from my understanding=
.<br><br>Topology Description:<br> ----------------------------<br><br>- An=
 AI coding agent (e.g. Claude Code) acts as an MCP Client. It is registered=
 at the enterprise IdP as a *public* client (native/CLI app, PKCE, no clien=
t secret).<br>- The agent authenticates directly against the enterprise IdP=
. As per OIDC Core, the resulting ID Token&#39;s `aud` is the agent&#39;s o=
wn client_id. In the same flow the agent also obtains an access token whose=
 audience/resource is an MCP Gateway sitting in front of it. <br>- The MCP =
Gateway aggregates several upstream MCP servers. Each upstream server is pr=
otected by its own Resource Authorization Server, and each of those indepen=
dently trusts the same enterprise IdP. <br>- Per ID-JAG, to reach a given u=
pstream server the Gateway needs an access token minted through the ID-JAG =
flow: Token Exchange at the IdP to mint an ID-JAG (aud =3D upstream AS) and=
 then execute JWT-Bearer redemption at that AS.<br><br>The conflict : <br>-=
----------------<br><br>Section 4.3.3 [1], &quot;IdP Token Exchange Process=
ing Rules&quot;, requires that when the subject_token presented in the Toke=
n Exchange call is an identity assertion (ID Token), &quot;the IdP MUST val=
idate the assertion and MUST validate that the audience of the assertion (e=
.g. the aud claim of the ID Token or SAML Audience) matches the client_id o=
f the client authentication of the request&quot;.  In the Gateway topology =
above, this rule creates a dilemma where neither party can execute the exch=
ange:<br><br><br>1. The agent is the audience of the ID Token, but the agen=
t has no reason to call Token Exchange itself =E2=80=94 it doesn&#39;t know=
 which upstream AS/audience a given MCP tool call needs, and as a public cl=
ient it&#39;s also not well positioned to be trusted with that capability d=
irectly. As defined in the draft &quot;this specification SHOULD only be su=
pported for confidential clients.&quot;<br>2. The Gateway is the party that=
 actually needs the ID-JAG (it knows the target upstream AS), and it is the=
 Gateway that would authenticate the Token Exchange call. But the ID Token&=
#39;s `aud` is the agent&#39;s client_id, not the Gateway&#39;s. Per the ma=
ndatory audience check above, the IdP must reject that exchange no matter h=
ow the ID Token reaches the Gateway (forwarded by the agent or otherwise).<=
br><br><br>From my understanding, neither party in this agent-to-gateway ar=
chitecture can legally execute the ID-JAG exchange under the current specif=
ication.<br><br><br>Did I miss a mechanism already defined in the draft (or=
 in draft-ietf-oauth-identity-chaining) to handle this delegation/proxy pat=
tern?<br>Is there ongoing work to address multi-hop or API Gateway patterns=
 where the identity assertion&#39;s audience differs from the calling proxy=
&#39;s client_id?<br><br><br>Thanks,<br>Eric<br><br><br>[1] <a href=3D"http=
s://datatracker.ietf.org/doc/html/draft-ietf-oauth-identity-assertion-authz=
-grant#name-processing-rules" rel=3D"noreferrer nofollow noopener" style=3D=
"word-break:break-word" target=3D"_blank">https://datatracker.ietf.org/doc/=
html/draft-ietf-oauth-identity-assertion-authz-grant#name-processing-rules<=
/a></div><div><br></div><span class=3D"gmail_signature_prefix">-- </span><b=
r><div dir=3D"ltr" class=3D"gmail_signature"><div dir=3D"ltr"><span><div di=
r=3D"ltr" style=3D"margin-left:0pt" align=3D"left"><table style=3D"border-w=
idth:medium;border-style:none;border-color:currentcolor;border-collapse:col=
lapse"><colgroup><col width=3D"118"><col width=3D"305"></colgroup><tbody><t=
r style=3D"height:124.819pt"><td style=3D"border-width:0.990765pt;border-st=
yle:solid;border-color:rgb(255,255,255) rgb(217,217,217) rgb(255,255,255) r=
gb(255,255,255);vertical-align:top;padding:5pt;overflow:hidden"><br><span s=
tyle=3D"border-width:medium;border-style:none;border-color:currentcolor;dis=
play:inline-block;overflow:hidden;width:84px;height:80px"><img width=3D"84"=
 height=3D"80" style=3D"margin-left: 0px; margin-top: 0px;" src=3D"https://=
lh7-qw.googleusercontent.com/docsz/AD_4nXeTtsh5_4js2bF4xwLkbvfkWdnIscD4xAKf=
nNSsi2QQoLriRONykM18g_1VXwfPhLORdvpJrY0QzEe-2byI6GvDO_85u6zr9OjdE1Ni_6p1wtY=
3-qgQ_73zMwu5UainbPY8J8pq?key=3DkMQ5K8D4nlMb9fiw8P9jDP8s"></span><br><p dir=
=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span =
style=3D"font-size:11pt;font-family:Roboto,sans-serif;font-weight:700;verti=
cal-align:baseline;color:rgb(0,0,0);background-color:transparent">         =
           </span></p></td><td style=3D"border-width:0.990765pt;border-styl=
e:solid;border-color:rgb(255,255,255) rgb(255,255,255) rgb(255,255,255) rgb=
(217,217,217);vertical-align:top;padding:5pt;overflow:hidden"><br><p dir=3D=
"ltr" style=3D"line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span styl=
e=3D"font-size:11pt;font-family:Kanit,sans-serif;font-weight:700;vertical-a=
lign:baseline;color:rgb(0,0,0);background-color:transparent">Eric LELEU </s=
pan></p><p dir=3D"ltr" style=3D"line-height:1.2;margin-top:0pt;margin-botto=
m:0pt"><span style=3D"font-size:11pt;font-family:Kanit,sans-serif;vertical-=
align:baseline;color:rgb(0,0,0);background-color:transparent">Staff Softwar=
e Engineer </span></p><p dir=3D"ltr" style=3D"line-height:1.2;margin-top:0p=
t;margin-bottom:0pt"><span style=3D"font-size:11pt;font-family:Kanit,sans-s=
erif;vertical-align:baseline;color:rgb(0,0,0);background-color:transparent"=
>E </span><a href=3D"mailto:your.name@graviteesource.com" rel=3D"noreferrer=
 nofollow noopener" target=3D"_blank"><span style=3D"font-size:11pt;font-fa=
mily:Kanit,sans-serif;vertical-align:baseline;color:rgb(17,85,204);backgrou=
nd-color:transparent">eric.leleu@graviteesource.com</span></a><span style=
=3D"font-size:11pt;font-family:Kanit,sans-serif;vertical-align:baseline;col=
or:rgb(0,0,0);background-color:transparent"> </span></p><br><p dir=3D"ltr" =
style=3D"line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style=3D"f=
ont-size:11pt;font-family:Kanit,sans-serif;vertical-align:baseline;color:rg=
b(0,0,0);background-color:transparent">Hold Nothing Back</span></p></td></t=
r></tbody></table></div><span style=3D"font-size:11pt;font-family:Arial,san=
s-serif;font-weight:700;vertical-align:baseline;color:rgb(34,34,34);backgro=
und-color:transparent"> </span><a href=3D"http://youtube.com/c/Graviteesour=
ce?sub_confirmation=3D1" rel=3D"noreferrer nofollow noopener" target=3D"_bl=
ank"><span style=3D"font-size:11pt;font-family:Arial,sans-serif;font-weight=
:700;vertical-align:baseline;color:rgb(17,85,204);background-color:transpar=
ent"><span style=3D"border-width:medium;border-style:none;border-color:curr=
entcolor;display:inline-block;overflow:hidden;width:48px;height:48px"><img =
width=3D"48" height=3D"56.3649095411792" style=3D"margin-left: 0px; margin-=
top: 0px;" src=3D"https://lh7-qw.googleusercontent.com/docsz/AD_4nXfm2HQdKu=
pLwmOCISbirkl9St-opEPRa0VL4EscOnigRp0gmVtQvkvUtuQh86j8B3r2EbGJZias47w5nCoXH=
hiuiKumiMmvxqevYIkQs-Zq_KCwn4tmWNBl3xgFPpGKWg?key=3DkMQ5K8D4nlMb9fiw8P9jDP8=
s"></span></span></a><span style=3D"font-size:11pt;font-family:Arial,sans-s=
erif;font-weight:700;vertical-align:baseline;color:rgb(34,34,34);background=
-color:transparent">  </span><a href=3D"https://www.linkedin.com/company/gr=
avitee-io" rel=3D"noreferrer nofollow noopener" target=3D"_blank"><span sty=
le=3D"font-size:11pt;font-family:Arial,sans-serif;font-weight:700;vertical-=
align:baseline;color:rgb(17,85,204);background-color:transparent"><span sty=
le=3D"border-width:medium;border-style:none;border-color:currentcolor;displ=
ay:inline-block;overflow:hidden;width:36px;height:40px"><img width=3D"36" h=
eight=3D"39.99999999999998" style=3D"margin-left: 0px; margin-top: 0px;" sr=
c=3D"https://lh7-qw.googleusercontent.com/docsz/AD_4nXdanddCBT27CO9wUP7QJMI=
Yz6h4ee2gMwGH3Apc7JnSMhhPuqvE_Q2gK1WXdcPNLcTD5-BInLTyfPYOQoDkJWGolu5A8P0wZ8=
ZHtkxl68bHTlVGHUW2vOvDbqciAxUNnPyXlmh_Fg?key=3DkMQ5K8D4nlMb9fiw8P9jDP8s"></=
span></span></a></span></div></div></div>

        </blockquote><br>
    </div></div>_______________________________________________<br>
OAuth mailing list -- <a href=3D"mailto:oauth@ietf.org" rel=3D"noreferrer n=
ofollow noopener" target=3D"_blank">oauth@ietf.org</a><br>
To unsubscribe send an email to <a href=3D"mailto:oauth-leave@ietf.org" rel=
=3D"noreferrer nofollow noopener" target=3D"_blank">oauth-leave@ietf.org</a=
><br>
</blockquote></div>
</blockquote></div><div><br clear=3D"all"></div><div><br></div><span class=
=3D"gmail_signature_prefix">-- </span><br><div dir=3D"ltr" class=3D"gmail_s=
ignature"><div dir=3D"ltr"><span><div dir=3D"ltr" style=3D"margin-left:0pt"=
 align=3D"left"><table style=3D"border-width:medium;border-style:none;borde=
r-color:currentcolor;border-collapse:collapse"><colgroup><col width=3D"118"=
><col width=3D"305"></colgroup><tbody><tr style=3D"height:124.819pt"><td st=
yle=3D"border-width:0.990765pt;border-style:solid;border-color:rgb(255,255,=
255) rgb(217,217,217) rgb(255,255,255) rgb(255,255,255);vertical-align:top;=
padding:5pt;overflow:hidden"><br><span style=3D"border-width:medium;border-=
style:none;border-color:currentcolor;display:inline-block;overflow:hidden;w=
idth:84px;height:80px"><img width=3D"84" height=3D"80" style=3D"margin-left=
: 0px; margin-top: 0px;" src=3D"https://lh7-qw.googleusercontent.com/docsz/=
AD_4nXeTtsh5_4js2bF4xwLkbvfkWdnIscD4xAKfnNSsi2QQoLriRONykM18g_1VXwfPhLORdvp=
JrY0QzEe-2byI6GvDO_85u6zr9OjdE1Ni_6p1wtY3-qgQ_73zMwu5UainbPY8J8pq?key=3DkMQ=
5K8D4nlMb9fiw8P9jDP8s"></span><br><p dir=3D"ltr" style=3D"line-height:1.38;=
margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:11pt;font-family=
:Roboto,sans-serif;color:rgb(0,0,0);background-color:transparent;font-weigh=
t:700;vertical-align:baseline">                    </span></p></td><td styl=
e=3D"border-width:0.990765pt;border-style:solid;border-color:rgb(255,255,25=
5) rgb(255,255,255) rgb(255,255,255) rgb(217,217,217);vertical-align:top;pa=
dding:5pt;overflow:hidden"><br><p dir=3D"ltr" style=3D"line-height:1.2;marg=
in-top:0pt;margin-bottom:0pt"><span style=3D"font-size:11pt;font-family:Kan=
it,sans-serif;color:rgb(0,0,0);background-color:transparent;font-weight:700=
;vertical-align:baseline">Eric LELEU </span></p><p dir=3D"ltr" style=3D"lin=
e-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:11p=
t;font-family:Kanit,sans-serif;color:rgb(0,0,0);background-color:transparen=
t;vertical-align:baseline">Staff Software Engineer / AM Teach Lead</span></=
p><p dir=3D"ltr" style=3D"line-height:1.2;margin-top:0pt;margin-bottom:0pt"=
><span style=3D"background-color:transparent;font-size:11pt;font-family:Kan=
it,sans-serif;color:rgb(0,0,0);vertical-align:baseline">E </span><a href=3D=
"mailto:your.name@graviteesource.com" rel=3D"noreferrer nofollow noopener" =
target=3D"_blank"><span style=3D"font-size:11pt;font-family:Kanit,sans-seri=
f;color:rgb(17,85,204);background-color:transparent;vertical-align:baseline=
">eric.leleu@graviteesource.com</span></a><span style=3D"background-color:t=
ransparent;font-size:11pt;font-family:Kanit,sans-serif;color:rgb(0,0,0);ver=
tical-align:baseline"> </span></p><br><p dir=3D"ltr" style=3D"line-height:1=
.2;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:11pt;font-fam=
ily:Kanit,sans-serif;color:rgb(0,0,0);background-color:transparent;vertical=
-align:baseline">Hold Nothing Back</span></p></td></tr></tbody></table></di=
v><span style=3D"font-size:11pt;font-family:Arial,sans-serif;color:rgb(34,3=
4,34);background-color:transparent;font-weight:700;vertical-align:baseline"=
> </span><a href=3D"http://youtube.com/c/Graviteesource?sub_confirmation=3D=
1" rel=3D"noreferrer nofollow noopener" target=3D"_blank"><span style=3D"fo=
nt-size:11pt;font-family:Arial,sans-serif;color:rgb(17,85,204);background-c=
olor:transparent;font-weight:700;vertical-align:baseline"><span style=3D"bo=
rder-width:medium;border-style:none;border-color:currentcolor;display:inlin=
e-block;overflow:hidden;width:48px;height:48px"><img width=3D"48" height=3D=
"56.3649095411792" style=3D"margin-left: 0px; margin-top: 0px;" src=3D"http=
s://lh7-qw.googleusercontent.com/docsz/AD_4nXfm2HQdKupLwmOCISbirkl9St-opEPR=
a0VL4EscOnigRp0gmVtQvkvUtuQh86j8B3r2EbGJZias47w5nCoXHhiuiKumiMmvxqevYIkQs-Z=
q_KCwn4tmWNBl3xgFPpGKWg?key=3DkMQ5K8D4nlMb9fiw8P9jDP8s"></span></span></a><=
span style=3D"font-size:11pt;font-family:Arial,sans-serif;color:rgb(34,34,3=
4);background-color:transparent;font-weight:700;vertical-align:baseline">  =
</span><a href=3D"https://www.linkedin.com/company/gravitee-io" rel=3D"nore=
ferrer nofollow noopener" target=3D"_blank"><span style=3D"font-size:11pt;f=
ont-family:Arial,sans-serif;color:rgb(17,85,204);background-color:transpare=
nt;font-weight:700;vertical-align:baseline"><span style=3D"border-width:med=
ium;border-style:none;border-color:currentcolor;display:inline-block;overfl=
ow:hidden;width:36px;height:40px"><img width=3D"36" height=3D"39.9999999999=
9998" style=3D"margin-left: 0px; margin-top: 0px;" src=3D"https://lh7-qw.go=
ogleusercontent.com/docsz/AD_4nXdanddCBT27CO9wUP7QJMIYz6h4ee2gMwGH3Apc7JnSM=
hhPuqvE_Q2gK1WXdcPNLcTD5-BInLTyfPYOQoDkJWGolu5A8P0wZ8ZHtkxl68bHTlVGHUW2vOvD=
bqciAxUNnPyXlmh_Fg?key=3DkMQ5K8D4nlMb9fiw8P9jDP8s"></span></span></a></span=
></div></div>

        </blockquote><br>
    </div>_______________________________________________<br>
OAuth mailing list -- <a href=3D"mailto:oauth@ietf.org" target=3D"_blank">o=
auth@ietf.org</a><br>
To unsubscribe send an email to <a href=3D"mailto:oauth-leave@ietf.org" tar=
get=3D"_blank">oauth-leave@ietf.org</a><br>
</blockquote></div></div>

--0000000000002ee91b0657409b44--

