[OAUTH-WG] Re: New I-D: Identity Continuation Assertion for OAuth 2.0 Token Exchange (request for review)

Mohamad Khalil Yossif <mohamad@yuthent.com> Wed, 05 August 2026 23:07 UTC

Return-Path: <mohamad@yuthent.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 11B271246B272 for <oauth@mail2.ietf.org>; Wed, 5 Aug 2026 16:07:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1785971245; bh=7nVWtvLO6kbWZecLJoOAyTBxrEgfx+imk7cNIBIilCA=; h=From:Subject:Date:Cc:To; b=Vf0F53zxo/p9jtymRNe+FWUrZyovjIWbr45cD3X4BEzZMCZAb4jbvCHK8OiMYiZg7 47+f1f6FHV6xM6cI2WJ/poxIMaO4Q/tOfgwKOLUDgPW7G8ZeDq/OgB62PYltmtb3xV GinIySyfDkm1rKfY4Yy55qdXUUfWamKnOJqzNcFM=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: 1.238
X-Spam-Level: *
X-Spam-Status: No, score=1.238 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, RCVD_IN_MSPIKE_H2=0.001, RCVD_IN_SBL_CSS=3.335, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=yuthent.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 MR9twrNszH2g for <oauth@mail2.ietf.org>; Wed, 5 Aug 2026 16:07:24 -0700 (PDT)
Received: from out-07.pe-bsn.jellyfish.systems (out-07.pe-bsn.jellyfish.systems [66.29.159.85]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id EBAC31246B26D for <oauth@ietf.org>; Wed, 5 Aug 2026 16:07:23 -0700 (PDT)
Received: from MTA-05.privateemail.com (unknown [10.50.14.15]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by BSN-02.privateemail.com (Postfix) with ESMTPS id 4hFmJh6mGSz3hhT9; Wed, 5 Aug 2026 19:07:16 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=yuthent.com; s=default; t=1785971236; bh=7nVWtvLO6kbWZecLJoOAyTBxrEgfx+imk7cNIBIilCA=; h=From:Subject:Date:Cc:To:From; b=A1IL3vYvOn7MyGyMhWBIWqSBMXTNQX2FgtgPKvnBj47GlfKruwt6JSVH9r0+8SBVm NUbRIx+h6XgIt/8jXXvNXY8F8ZIRkQY5VB5nSwkPbX2vbx++j2d1RI4E4saSuKdwA4 RwVt54krF+FBKpwdH1uvWURPWnGjktvT46ZsPk5YpCnOQqAlzfSy+iQYncbuUbHGgm xyDB42eVM4br3UIBmaXzfAO1PTSbABcBWKxlPwe7WnJeIIyac9Q4t6Fzn11nqVNshw QiucM41ctEBC/BluEgtlJ1PIhAWd6GWBqMYgmY8jAivrMTgLh3jDOcwZAPa4PdclGK Fcf72hHACcGiw==
Received: from mail.privateemail.com (K8S-PROD-WORKER-07 [79.177.147.64]) by mta-05.privateemail.com (Postfix) with ESMTPA id 4hFmJf5ny2z3hhTD; Wed, 5 Aug 2026 19:07:14 -0400 (EDT)
From: Mohamad Khalil Yossif <mohamad@yuthent.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_3248EACB-D418-4827-8758-30F454D51994"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3864.700.51.1.1\))
Message-Id: <52478815-8D57-4B43-86B0-E8A1D692449E@yuthent.com>
Date: Thu, 06 Aug 2026 02:07:02 +0300
To: oauth@ietf.org
X-Mailer: Apple Mail (2.3864.700.51.1.1)
Message-ID-Hash: VYQJF2S22UYQAKXSRFMRZMXPEBKTU66K
X-Message-ID-Hash: VYQJF2S22UYQAKXSRFMRZMXPEBKTU66K
X-MailFrom: mohamad@yuthent.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: me@karlmcguinness.com
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [OAUTH-WG] Re: New I-D: Identity Continuation Assertion for OAuth 2.0 Token Exchange (request for review)
List-Id: OAUTH WG <oauth.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/Gsggqr8Jp9x4HdPR45K9s5GbjAY>
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>

> Karl,
> 
> Nothing to correct. The three-layer split is right, and the sentence I
> would have argued with — PSEA at the hop where the human is present,
> ICA at the hop where they are not — is one I wrote myself, so I will
> leave it standing.
> 
> Open item 9 is where I can be useful, and I think it turns on a
> distinction that is easy to lose because both halves are called
> "testable".
> 
> A representation carried in the envelope and evaluated by the
> receiving authorization server is testable by that server. That is
> useful and it is probably what ICA should carry: scopes are the
> natural form, since scopes are what the receiving server already
> evaluates, and it needs nothing a mint does not already know.
> 
> What it does not give you is a representation a third party can check
> after the fact. The evaluation is performed by a party inside the
> trust boundary the ceiling exists to constrain — the receiving domain
> is bounded by the ceiling and is also the one applying it. A relying
> party that trusts neither the identity provider nor the receiving
> domain cannot re-run the check. That is not hypothetical: a regulator
> reconstructing a decision, a card issuer in a chargeback, a
> counterparty in a dispute. All three arrive after the fact and none of
> them can ask the receiving server to do it again.
> 
> The two are not in tension and they want different things.
> 
> The narrow suggestion: alongside whatever representation the envelope
> carries for evaluation, carry a commitment to it — a digest over a
> canonical form of the ceiling, bound into the assertion. It changes no
> evaluation, adds no field a mint has to understand, and costs a hash.
> What it buys is that a later artifact can reference the exact ceiling
> in force at establishment without ICA having to define what a ceiling
> contains, or take a position on whether it is scopes or an
> authorization detail.
> 
> The reason to want the commitment separate from the representation is
> the one my own draft turns on. A ceiling the identity provider
> computes and the receiving server evaluates establishes what those two
> agreed. It does not establish what the human agreed, because neither
> of them is the human. Keeping the commitment canonical and
> recomputable is what lets an artifact from the layer that does speak
> for the human point at the same bytes.
> 
> So the form matters more than the content. If item 9 resolves toward
> something a third party can recompute over canonical bytes, the layers
> join. If it resolves toward a policy-bound representation only, they
> do not, and the authorization layer has to carry its own copy of the
> ceiling — duplication, and somewhere for the two to drift.
> 
> That is a preference about encoding rather than about scope, and it
> does not ask ICA to carry anything it would not carry anyway.
> 
> On Mission-Bound: I owe you a proper read rather than another
> paragraph. draft-yossif-agent-mandate-problem states requirements and
> deliberately proposes no mechanism, so if Mission-Bound meets them it
> belongs there as related work rather than as an alternative. That
> revision is held on an unrelated question in RATS; when it moves, that
> is the change it carries.
> 
> Mohamad Khalil-Yossif
> 
>   draft-yossif-psea
>   https://datatracker.ietf.org/doc/draft-yossif-psea/
>   draft-yossif-agent-mandate-problem
>   https://datatracker.ietf.org/doc/draft-yossif-agent-mandate-problem/
>   draft-yossif-enrollment-problem
>   https://datatracker.ietf.org/doc/draft-yossif-enrollment-problem/