[OAUTH-WG] Request for Review: Delegated Refresh Tokens for OAuth 2.0 Token Exchange (-04)

Larry Zhu <lzhu3@atlassian.com> Fri, 24 July 2026 09:27 UTC

Return-Path: <lzhu3@atlassian.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 10EC711E04677 for <oauth@mail2.ietf.org>; Fri, 24 Jul 2026 02:27:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1784885233; bh=p+Xq1PuzAyThdIGAIAEOmJnOAkm7SOJocvp3tf0H7uY=; h=From:To:Subject:Date; b=TFB9On9QdP3Wz+TBflmHnWPkRD2eJ05RHrE/ba0RQGAopqyBEaO+NaZtmldhEQ70t avbVMTXik1S9/5c0KnagHPyc6ZGX3/AMU3FGEC1Dx/XwX3ebIBr1HHjpflaM8Q5VDY C0BWwI8CwLJctxSEoAjfewi/PbZJ/hW+3rAemcvA=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 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] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=atlassian.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 aSgBJiOOhCiz for <oauth@mail2.ietf.org>; Fri, 24 Jul 2026 02:27:11 -0700 (PDT)
Received: from mail-pl1-x62c.google.com (mail-pl1-x62c.google.com [IPv6:2607:f8b0:4864:20::62c]) (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 E4E4D11E04670 for <oauth@ietf.org>; Fri, 24 Jul 2026 02:26:56 -0700 (PDT)
Received: by mail-pl1-x62c.google.com with SMTP id d9443c01a7336-2cf6d65d8a7so3478635ad.0 for <oauth@ietf.org>; Fri, 24 Jul 2026 02:26:56 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=atlassian.com; s=google; t=1784885216; x=1785490016; darn=ietf.org; h=mime-version:content-type:content-language:accept-language :message-id:date:thread-index:thread-topic:subject:to:from:from:to :cc:subject:date:message-id:reply-to:content-type; bh=XIzX6kzsfeFNciVkt6D3tCCm2ERVZqk2hHmiIEK/q70=; b=aHFnNGjfDDZl9pNbNe+yxBDAwi8pMnX3/tggak4nC6lnEZITnKn/v8meDTNpqcfz8p M5LO8Ga1pV/3zlxE28BVeUubRGvDFBwXp3wH75x/tLJF67XJTHW6O0toY7LmtOmoSVmj cFAW+Ldfq+OOFQtr+5czFsBdUwCsOVF1XO2c50Oo6URy/t8ytBNHhev38dXNc2J4C21u zc+DAB7V3ju9kp4U3SrO6vKvHtKjHSrMkj4/DkFrkNFCrPmS54Od0owOTja4SH2F0QTA NnUbHCKgo00Ove16G77yoNwJ1N93N3L2YKQVd9ej1hAWvBPXGdQVCd4yKx1rg0UNJ665 Qi6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784885216; x=1785490016; h=mime-version:content-type:content-language:accept-language :message-id:date:thread-index:thread-topic:subject:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=XIzX6kzsfeFNciVkt6D3tCCm2ERVZqk2hHmiIEK/q70=; b=jPwQQhi8AqJVRlAINeSLrYyt2i+R4j7VMP5xaiY01+p7roYogCaWOCm35bfAhA5wnG CyZ4W1Al/jQWmoA0A1L22wdJou1m1sQ+j31vfiMLRfjKGCWyBavVqAU0sqbzDZ4f3rfa cj0RL5ZqS+EWBmU1RKcbOW/ZoPmZHie01HLvEof5N76zi+siYpo6yDFK3ejigyRpQR2+ apBsq4fhnj+7YAzji0DUifyx0ceVBHiWz87mGG01O9e+S8NMDfetPhQc10/fpZ8fsEVx Zp2yaFJD3B6mmiIKNwJCmB9Ycxki8GM8rm2CMljhZ0dd++OwX7GaZNebo7rayrWDiw3X BNKQ==
X-Gm-Message-State: AOJu0YyMFDAQKI1/U/ucP0Haf68SY6VA/rRqblmopqR4kNwuSwlpYOhf fd8hAUVXGZxS5X9AbYIr3G1kvCTByXcr4CzlxVNWtKcLCuTe23bhUQL+459IUK0qI2aextJ4jwy pMNAwWxx6
X-Gm-Gg: AR+sD12M7ZaYqzzjxzJEidb9qjG2EOp/zjymolF+ERRQcLu1YwIE+6T4CLEMM9MPd7e Ka/e/sqGdzY7zfsoGPEXGj8wNATspgU8i0NiLgvu6aANwKOQUdCoyXg5ZjxUg0tLiQGkCMCIZ17 6b00x9/oaitnRK1yjyhnUr+czgqZMSQ/cBJeB3LxqToBk6Gf6IVRx2FpyEf10/m5SYV/k4w6iv9 70RO5NgI9T07ke3kGUWD71wF+LSrxMSHiD0+g/+XysOR33rFldTO3BoNeprkJYICiqwlknXs7BE vILK279ieP4ta5XjxhQfPX0FBsHl5hLP+UMATFDZlvMPUl6a5MOAdv6pWl8+hdxaS8khQ4oSIwM 079l+r6vcl6Z6jKJb+vszxHHYW+MhgMB+ddimI9K7jLTnMZLFQhr+MezscXlAqmsT6e3rL7bMsf 8wW68RL9MAZ4AlrmUvjAKaf9Pb/HDO9vlw69kr+rk91qvbDqxW7wRxxJFjyYwDkCrE+hjvxQSWw VUG+fQ5+TshyLRyYAhAZ/Kp
X-Received: by 2002:a17:903:22cb:b0:2bf:dd0:c8b1 with SMTP id d9443c01a7336-2cfa6b890d7mr74517035ad.0.1784885215759; Fri, 24 Jul 2026 02:26:55 -0700 (PDT)
Received: from IA2P221MB1539.NAMP221.PROD.OUTLOOK.COM ([2603:1036:207:1409::5]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2cf8f38a40fsm48506595ad.78.2026.07.24.02.26.55 for <oauth@ietf.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Jul 2026 02:26:55 -0700 (PDT)
From: Larry Zhu <lzhu3@atlassian.com>
To: oauth <oauth@ietf.org>
Thread-Topic: [OAUTH-WG] Request for Review: Delegated Refresh Tokens for OAuth 2.0 Token Exchange (-04)
Thread-Index: AQHdG02qF90mF0F+sUG4WyvOIEei5A==
X-MS-Exchange-MessageSentRepresentingType: 1
Date: Fri, 24 Jul 2026 09:26:54 +0000
Message-ID: <IA2P221MB15391A75E652666DF78735A7AECF2@IA2P221MB1539.NAMP221.PROD.OUTLOOK.COM>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-Exchange-Organization-SCL: -1
X-MS-TNEF-Correlator:
X-MS-Exchange-Organization-RecordReviewCfmType: 0
x-ms-reactions: allow
Content-Type: multipart/alternative; boundary="_000_IA2P221MB15391A75E652666DF78735A7AECF2IA2P221MB1539NAMP_"
MIME-Version: 1.0
Message-ID-Hash: 6WCX23YGDDYDV4PXDOXS563DAJI5TOXE
X-Message-ID-Hash: 6WCX23YGDDYDV4PXDOXS563DAJI5TOXE
X-MailFrom: lzhu3@atlassian.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
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [OAUTH-WG] Request for Review: Delegated Refresh Tokens for OAuth 2.0 Token Exchange (-04)
List-Id: OAUTH WG <oauth.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/mHvS1q88D3JhU9CHlpdMcbmcEMY>
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 OAuth WG,

We have published draft-zhu-oauth-async-delegation-04, which is the reviewable version of the proposal. I also ran into Yaron in the hallway here in Vienna and gave him a quick heads-up on the current design.

I would like to thank Arndt Schwenkschuster for his valuable feedback. In particular, his observation that RFC 8693 already permits refresh-token issuance for offline Token Exchange scenarios helped us frame this work as a profile of existing refresh tokens rather than a new continuation credential.

The draft addresses a specific interoperability gap: although RFC 8693 permits an authorization server to return a refresh token from Token Exchange, it does not define how delegated authorization state—particularly the subject, complete actor chain, client binding, permitted resources, and scope restrictions—is preserved and enforced when that refresh token is subsequently used.

The proposal profiles an RFC 8693-issued refresh token for asynchronous and long-running delegated workflows. In brief, it defines:

  *   RFC 8414 authorization-server metadata for discovering support for the profile;
  *   an explicit Token Exchange request signal for requesting delegated asynchronous continuation;
  *   preservation of the original subject and complete actor chain;
  *   binding of the refresh token to the acting client and current actor;
  *   confinement to the originally authorized resources;
  *   scope that can remain unchanged or narrow, but cannot expand;
  *   authorization re-evaluation on every refresh;
  *   refresh-token rotation without extending the absolute delegation lifetime; and
  *   a one-to-one association between a refresh-token family and an asynchronous task, with RFC 7009 revocation when the task completes, is cancelled, or otherwise reaches a terminal state.

Step-up authentication and new user authorization remain separate concerns. This profile allows an already-authorized task to continue without expanding its authority; it does not allow a refresh token to bypass authentication-context or step-up requirements. If current authorization-server policy requires fresh user authentication, step-up, or additional approval for a requested resource or operation, the refresh request must fail and that requirement must be satisfied through an appropriate, separate interaction.

The profile uses the existing refresh_token response parameter, refresh-token grant, and resource parameter. It defines no new token format, token type, grant type, or token-response parameter. It also does not make refresh tokens portable across authorization servers; each refresh token remains bound to and usable only at its issuing authorization server.

Under the clustering proposal presented at IETF 126, we suggest categorizing the draft as follows:

Requested cluster: Same-Domain Chaining
Related clusters: Token Lifecycle and Discovery

We would greatly appreciate review of -04, particularly on:

  1.  Whether the interoperability gap is clear and sufficiently narrow.
  2.  Whether profiling RFC 8693-issued refresh tokens is the right approach.
  3.  Whether the discovery and request signals are appropriate.
  4.  Whether the subject and actor preservation, resource and scope confinement, bounded lifetime, rotation, authorization re-evaluation, and task-scoped revocation requirements are complete and implementable.
  5.  Whether the boundary between delegated continuation and separate step-up or user-authorization mechanisms is sufficiently clear.
  6.  Whether any part of this work should instead be incorporated into an existing OAuth specification.

Draft -04:
https://www.ietf.org/archive/id/draft-zhu-oauth-async-delegation-04.html

Datatracker:
https://datatracker.ietf.org/doc/draft-zhu-oauth-async-delegation/

Thank you,

Larry Zhu