[OAUTH-WG] Re: DPoP for the OAuth token exchange grant?

Brian Campbell <bcampbell@pingidentity.com> Wed, 22 October 2025 21:06 UTC

Return-Path: <bcampbell@pingidentity.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 323527A92530 for <oauth@mail2.ietf.org>; Wed, 22 Oct 2025 14:06:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, 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] autolearn=unavailable autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=pingidentity.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 AZskOrhYCsJl for <oauth@mail2.ietf.org>; Wed, 22 Oct 2025 14:06:27 -0700 (PDT)
Received: from mail-vs1-xe30.google.com (mail-vs1-xe30.google.com [IPv6:2607:f8b0:4864:20::e30]) (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 37A3E7A9251F for <oauth@ietf.org>; Wed, 22 Oct 2025 14:06:27 -0700 (PDT)
Received: by mail-vs1-xe30.google.com with SMTP id ada2fe7eead31-5ce093debf6so38903137.1 for <oauth@ietf.org>; Wed, 22 Oct 2025 14:06:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pingidentity.com; s=google; t=1761167181; x=1761771981; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=A6AoKXcxyOaSAfkdHRR0JZ5BmvwJNiXjiHxrhWeHHnc=; b=Fo4Nabdvk8Z7i/qkWoJroD9oBJzOCeDig6gbPzhdxqVDrh2aklI0w0jnL5pLRxJlCH wlvLipxkShS6OFy3qHvxPSqD0CuU5lDbZU3o1urNgK459VVKj1Pfy2i8oOOANL97vmOg taQoaUtEEgO3A76RPW68Ly+xJ3HFgNCJr9vN615IcHWch0QMRwQgYhzB26E4moOppeHm 5iZ5QB1VUBVGHGaRwVikoUpcrresdg+XrCERvqnw4VDutasTcRV/L4jYGz3IuMmKNbHi io0xiKInH0TIsTyptDW3GAlQWmtuuNAHdt4HgFSsEn5tEI5MBcdabLCNJldE+Y3lGS1o u6Yg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761167181; x=1761771981; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=A6AoKXcxyOaSAfkdHRR0JZ5BmvwJNiXjiHxrhWeHHnc=; b=ajh4qatUWgm9zzv1Zak8B6R6yXSmcfHLYzfDLj0A8lGkKJ/uU8bzWtOMhDxllILa7O JPYVn1F6NW5rtIHVOmnfFYtum9sUp8s07kcjWfTdK4peSezgJPw1lS1kN+3CbVpEEsl4 NX4e5XzREdSMs5k7gzQ91YxvhcFTIhAbp5k3/rqcWSIkYBIQoxR9y8pi3DB1q3o0tsQ1 SYHPzzk8VSQHGLVqvcBmrLU6qxi5eZ4I6ZWnwlGlBsirNdmxidI6zsRdq1C5hYnPErc8 oLUEOOCPt4EqWW+6C1GQh4q2xDWySjvk1+IJRUqnrHxVe0TWj5NMgdNomiehxAXcr7pC 8PJA==
X-Forwarded-Encrypted: i=1; AJvYcCVQIqhCKYik15bv5bZHMTzSpe80uCGPZ+b/7vN2eCSPI78J7T10/ntpQjBcJaIUJepXnxGGUQ==@ietf.org
X-Gm-Message-State: AOJu0YyImyhWxZI+Ove7XassSycOkZ34YPHX/KbVpY5FqFj0B8ebg23E h8f3V3qVJHx+QKkOpE73Ge/V31fxhcBfR5251dn6iEGSbLCYKQZJLWAS1HEYnVp55OIGqEqJsFR vEmiXOifOXFyc6apAjBZ2BBblO6ZhJzEP+kTYx8zVHkEEQ4dQNzsNdQ271myC0TImQ9u9g/vEns rbxcKdnWmhS/arqA==
X-Gm-Gg: ASbGncvjoWCBFPvaUMw8esFQKRV4/QoTslnH9fJYeFDZAQZBdk4Jd0RkWE1V+t7IykP IK6+XU/9a5toqR56UGpGUlSLxepvYpEPpJSrq6bRa8AymBvHbD2+TcLYE65+AymdjmkPbKb/KVG w4843Pj2wYafkSX4DfITERXlsaCFNKer+EsYo2J329hUrByTa2QJCMbjXtk/xQjJw7EGY9IyuUE BkxH0iOmDDI9QhVy3tADXVsI9PDPjzO4k9/le3FNYMyD78X/qUN0zyT8DlXd1IXeeXYyCnv899S CHixerROia/rnNHXMw==
X-Google-Smtp-Source: AGHT+IFENSuEUAmkW/+Ejs53SvPoAXh8fIhnuzHL3ZRMAYv1qmXRTGEAHUk2856OV2C3Dd8O7qEIBcoG4iNGizBANaY=
X-Received: by 2002:a05:6102:d8d:b0:5d6:66f:a8ce with SMTP id ada2fe7eead31-5d7dd661da8mr1374365137.20.1761167180674; Wed, 22 Oct 2025 14:06:20 -0700 (PDT)
MIME-Version: 1.0
References: <96dce651-5a3e-4d91-ad69-6ec11cc683db@connect2id.com> <CALAqi_9zJJALxB9w53JiJTser6KTYPstHZ3-Vx2cu6p+UXR-gA@mail.gmail.com> <CO1PR18MB4684545525122A080B5E74B5D9EAA@CO1PR18MB4684.namprd18.prod.outlook.com> <CA+k3eCS30vUXpF3DBXtd0cNFwOzoFBRHpZUtFBSUQCXgy63Tgw@mail.gmail.com> <72d441ef-7b11-415e-8ec2-6d2c24d342b4@connect2id.com>
In-Reply-To: <72d441ef-7b11-415e-8ec2-6d2c24d342b4@connect2id.com>
From: Brian Campbell <bcampbell@pingidentity.com>
Date: Wed, 22 Oct 2025 15:05:54 -0600
X-Gm-Features: AWmQ_blpWgSX7In-BCpCOGozLrT2S0bmIozG74IxNPcBdYNxsk1dZl6kd_PuvwA
Message-ID: <CA+k3eCTzUdq23tMJvWX=4ssQAAyw2-9zWG9RKwyec+cwv06moQ@mail.gmail.com>
To: Vladimir Dzhuvinov | Connect2id <vladimir@connect2id.com>
Content-Type: multipart/alternative; boundary="00000000000031cfe80641c5b0b3"
Message-ID-Hash: FYZZ2KPGB7D2MH2M27UFQYGUZFYX4FR6
X-Message-ID-Hash: FYZZ2KPGB7D2MH2M27UFQYGUZFYX4FR6
X-MailFrom: bcampbell@pingidentity.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: "Lombardo, Jeff" <jeffsec=40amazon.com@dmarc.ietf.org>, OAuth WG <oauth@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [OAUTH-WG] Re: DPoP for the OAuth token exchange grant?
List-Id: OAUTH WG <oauth.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/teCtQputdKH9pmZKjNiBOTQ-Jpo>
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>

I suspect a general recommendation for dealing with DPoP in token exchange
("T-eX"!) scenarios is unattainable due to the wide variance in how T-eX
gets used. It's not exhaustive but this comment on an issue about sender
constraining in the chaining repo
<https://github.com/oauth-wg/oauth-identity-chaining/issues/168#issuecomment-3146485550>
points to the difficulties that some of us have had in even just talking
about the concepts. I share that not necessarily with the expectation that
people look through it all but similarly that there'll be something about
it in the list archives for me to be able to reference it when I need it :)


On Wed, Oct 22, 2025 at 5:18 AM Vladimir Dzhuvinov | Connect2id <
vladimir@connect2id.com> wrote:

> Thanks everyone for responding here.
>
> I reread the entire RFC 9449 to make sure we have nothing that was written
> down to forestall the use of a DPoP RS structured proof (+ath claim) at the
> token endpoint. So, it looks like that's okay.
>
> So far in our PoC we realised three things: 1) the client minting a single
> DPoP proof for the entire token exchange request makes good sense in terms
> of efficiency - nice! ; 2) when the client rotates its DPoP key it has an
> extended context of tokens to consider, but that's okay; 2) in our
> particular server implementation we had to make sure the DPoP proof is only
> once checked for single use - that's because it was once "seen" as the
> proof that comes with the subject token, plus a second time to bind the
> newly minted token. If the server is exercising the nonce option there
> might be similar considerations.
>
> To repeat, I was aiming for a general, perhaps let's say universal,
> recommendation how to deal with DPoP in token exchange scenarios. I was not
> thinking of a specific OAuth / OIDC profile. Even if the WG never publishes
> a proper document for DPoP in "T-eX" , it's nice to have an informal
> agreement here, for me to be able to reference it when I have to :)
>
> Vladimir Dzhuvinov
>
> On 22/10/2025 01:31, Brian Campbell wrote:
>
> I think that when Filip wrote "TX-issued token" in his message below, he
> meant it as shorthand for "Token eXchange-issued token" meaning the thing
> returned from the token exchange call in general. Rather than the similar
> looking "Txn-Token" which is the shortened version of Transaction Token in
> https://datatracker.ietf.org/doc/draft-ietf-oauth-transaction-tokens/
>
> Key bound Transaction Tokens don't make a lot of sense, for the reasons
> you've hinted at and more.
>
> But a single DPoP key being used through an ID Assertion Authorization
> Grant
> <https://datatracker.ietf.org/doc/html/draft-ietf-oauth-identity-assertion-authz-grant> flow,
> as Karl described, does make some sense to me and I think the single
> existing proof works fine for that case.
>
>
>
>
> On Mon, Oct 13, 2025 at 10:40 AM Lombardo, Jeff <jeffsec=
> 40amazon.com@dmarc.ietf.org> wrote:
>
>> Are you pointing at TX-Tokens cause then multiple parties of the
>> transaction could generate a DPoP header when they are using the TX-Token?
>>
>>
>>
>> This would establish the requirement that all the parties of the
>> transaction then share the key material. It can see being the case like not
>> , which now triggers a new question: would a multi-party DPoP bound
>> TX-token would have a sense?
>>
>>
>>
>> *Jean-François “Jeff” Lombardo* | Amazon Web Services
>>
>>
>>
>> Architecte Principal de Solutions, Spécialiste de Sécurité
>> Principal Solution Architect, Security Specialist
>> Montréal, Canada
>>
>> *Commentaires à propos de notre échange? **Exprimez-vous **ici*
>> <https://urldefense.com/v3/__https:/feedback.aws.amazon.com/?ea=jeffsec&fn=Jean*20Francois&ln=Lombardo__;JQ!!Pe07N362zA!0k9CkAV8Djpw_8EfIAKrbhP3TQrJr0oMnznlUgBJ3V3NoEk6hihx7dNHnQuejn6SSH2CP8Iow3G-tTzppHeg$>
>> *.*
>>
>>
>>
>> *Thoughts on our interaction? Provide feedback **here*
>> <https://urldefense.com/v3/__https:/feedback.aws.amazon.com/?ea=jeffsec&fn=Jean*20Francois&ln=Lombardo__;JQ!!Pe07N362zA!0k9CkAV8Djpw_8EfIAKrbhP3TQrJr0oMnznlUgBJ3V3NoEk6hihx7dNHnQuejn6SSH2CP8Iow3G-tTzppHeg$>
>> *.*
>>
>>
>>
>> *From:* Filip Skokan <panva.ip@gmail.com>
>> *Sent:* October 13, 2025 9:24 AM
>> *To:* Vladimir Dzhuvinov | Connect2id <vladimir@connect2id.com>
>> *Cc:* OAuth WG <oauth@ietf.org>
>> *Subject:* [EXT] [OAUTH-WG] Re: DPoP for the OAuth token exchange grant?
>>
>>
>>
>> *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.
>>
>>
>>
>> I think we should ask whether there's a need for the TX-issued token to
>> use a different DPoP Private Key than the tokens being exchanged? That's as
>> far as I can tell the only scenario when the existing single header
>> wouldn't cut it.
>>
>>
>>
>> S pozdravem,
>> *Filip Skokan*
>>
>>
>>
>>
>>
>> On Mon, 13 Oct 2025 at 09:40, Vladimir Dzhuvinov | Connect2id <
>> vladimir@connect2id.com> wrote:
>>
>> The new document clarifying the use of DPoP with device grants is giving
>> me hope that we'll agree on a similar DPoP spec for the token exchange.
>> Have there been thoughts on this in the WG?
>>
>> The token exchange specs a *subject_token* and an optional *actor_token*.
>> If any of these are DPoP bound, say the *subject_token* is a DPoP access
>> token, the client has to include the DPoP + ath proof in the request. The
>> DPoP header in token requests (according to RFC 9449) is reserved to enable
>> a DPoP binding for the issued token. This means a DPoP header will not work
>> for the *subject* / *actor_token*. My preference has been to use a
>> dedicated form parameter - *subject_token_dpop* and *actor_token_dpop* for
>> this purpose.
>>
>> Thoughts / comments on this?
>>
>>
>>
>> https://datatracker.ietf.org/doc/html/draft-parecki-oauth-dpop-device-flow
>>
>> --
>>
>> Vladimir Dzhuvinov
>>
>> _______________________________________________
>> OAuth mailing list -- oauth@ietf.org
>> To unsubscribe send an email to oauth-leave@ietf.org
>>
>> _______________________________________________
>> OAuth mailing list -- oauth@ietf.org
>> To unsubscribe send an email to oauth-leave@ietf.org
>>
>
> *CONFIDENTIALITY NOTICE: This email may contain confidential and
> privileged material for the sole use of the intended recipient(s). Any
> review, use, distribution or disclosure by others is strictly prohibited.
> If you have received this communication in error, please notify the sender
> immediately by e-mail and delete the message and any file attachments from
> your computer. Thank you.*
>
>

-- 
_CONFIDENTIALITY NOTICE: This email may contain confidential and privileged 
material for the sole use of the intended recipient(s). Any review, use, 
distribution or disclosure by others is strictly prohibited.  If you have 
received this communication in error, please notify the sender immediately 
by e-mail and delete the message and any file attachments from your 
computer. Thank you._