[OAUTH-WG] Re: WGLC for Transaction Tokens
Pieter Kasselman <pieter@spirl.com> Mon, 25 August 2025 15:57 UTC
Return-Path: <pieter@spirl.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 1BA9758B45FE for <oauth@mail2.ietf.org>; Mon, 25 Aug 2025 08:57:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.1
X-Spam-Level:
X-Spam-Status: No, score=-2.1 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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=spirl.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 W5FWcqs5Sxk9 for <oauth@mail2.ietf.org>; Mon, 25 Aug 2025 08:57:36 -0700 (PDT)
Received: from mail-yw1-x112e.google.com (mail-yw1-x112e.google.com [IPv6:2607:f8b0:4864:20::112e]) (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 E45D758B45C5 for <oauth@ietf.org>; Mon, 25 Aug 2025 08:57:31 -0700 (PDT)
Received: by mail-yw1-x112e.google.com with SMTP id 00721157ae682-71d60528734so35908447b3.2 for <oauth@ietf.org>; Mon, 25 Aug 2025 08:57:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=spirl.com; s=google; t=1756137451; x=1756742251; darn=ietf.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=ZDs74XkmMdEk1v/f4+6Rf76OJc+KZ0AzvQjooOV5MNQ=; b=S++KO34wBejX2jgmqWloq17jZ2FW1mmcks6wFqhIE0a4BPml/6BOqXfWqmqwnXFytj fGCs0mI+mem17j0nlvT//milCLHHCuL2QX1zq4HTq7TWkwnqYOj8u0kc12Eg8LdtPy+Y 6RsXqAndSQc2RrfdAqkqNzH9rp+1QOJg614VWSoOb/By2EK6CM+6T2KkMlGO1snZkGqH NHyrCzu0qTxp4fK5J9cB3Dwpc2olUPnfddU4nM2mcKq248S9M1VgRzFJJQAT4vP7UHzr OVjkRNwrn8b6MO8E5HQPcFkbDGCmrCjmTiP96xK3i7bsjn1yJoxkaooFiHBNfjr7CCRr YLGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756137451; x=1756742251; h=content-transfer-encoding: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=ZDs74XkmMdEk1v/f4+6Rf76OJc+KZ0AzvQjooOV5MNQ=; b=mht/ntM1vZtLCAhAULIxe0DNPl3edKMKkZ9jdsbPtDxhPIZJB9L6AeCg5hujUb0KEu /7zHZEIWcZ1RhWxicDfEz+oLoacVVm+uURaFCBCnUtxtv7poCN9tss8T6mwV6Eu2SJfh 66Ivno5KDAGaVKf3bLkxg2/Za0yqMhQ2ZLQvxfu97QE6UjPzbtmaUdZxzXSznMvcMPRM 0X2hY0DqWCx0jb3SHPeh23iUv761RVs43NgCtD6VAXQJAsWVrW12qV3becyO7eJyCYVq gc2wEw5jbZamAJhHlcZgfSFaia1hLGqBiAo+Zyxa4KAc7X57YgbncfwDZALfJ4ZYLiYu crfg==
X-Gm-Message-State: AOJu0YyMwbXZz0jmlDuX95hC1ZJBmYC1h1wpQgsS+mmQiJHT5rUaaPKn wLkUf78bNQ39iBDcrfZAdJ92nZ2lsw9HdxnSB/vmxM+qNO1VB9N5bLDKihzfDQKuABSIpq5iaeg DI0yp4fLx3INAHOwr0EffrvFsB9aCXO4SBo9MB0Lnw4XR1BzUiZzb
X-Gm-Gg: ASbGnctXthiycjZwNiV7mMuHerx2N87OpJ7K3XJnUoB4xbtgq1aFPCZjCFQPxtT7Yr6 ZJVchCCIRKn1RFFlye/BF3YnAhMpbvS5mtXbZ1ANZf4gMoSsyZnY8p3kNXsxAlm6PRqKCrti/wW RWGWE2vukYojqOngPPJ+MiQo8z4yj6/yPz44fLIa7NHHJVlm2NErlkCNyH9NZrxF/qdXVp0GDF1 7H5UxNLLQT0g4GHA5WcF6Sk4DQqkcM0kw1GPfg=
X-Google-Smtp-Source: AGHT+IGiSqS419KG6N/mHimMbwPZeTRp2nXKZFPhWeX135IFILngKDggJ0mj3GhjmjBrW0+zB9+hQH6LzU3c6oObHZA=
X-Received: by 2002:a05:690c:6e05:b0:71f:db8f:3421 with SMTP id 00721157ae682-71fdc5b206dmr148133517b3.53.1756137451023; Mon, 25 Aug 2025 08:57:31 -0700 (PDT)
MIME-Version: 1.0
References: <CADNypP_VJrZa86AkeNapKy6ZkPUAD5Bqvrti36PRBS1tU+gcfQ@mail.gmail.com> <CACsn0ck_PQMeqABeAOLqtH+jfDJ7g-i944RtO+tQMYYb=6+nJw@mail.gmail.com> <CA+k3eCR1=Vy4-BJQi_A0VSUi31JwUEzLZPiMmcrDN00n7MZXEQ@mail.gmail.com> <CACsn0ck+FOV9aF0KD-4v9hnpWcb-XFD-B4jRsuQ7YwhLmbLibg@mail.gmail.com> <CANtBS9esyjBbXixrNwYJq-v1NtX-RzE-BKXPP1PHHLzcshLCKw@mail.gmail.com> <CACsn0cny4dTB=VgzCfnNfRWdwBQfYuZ-BuAF2p5whv7sxSU5Rw@mail.gmail.com> <CO1PR18MB468463B33C88DEE1E1002C63D934A@CO1PR18MB4684.namprd18.prod.outlook.com> <CAOgPGoDXzLtH8-BETNGcK=QyymNJLguvwkK41xgk+aer9s6H8g@mail.gmail.com>
In-Reply-To: <CAOgPGoDXzLtH8-BETNGcK=QyymNJLguvwkK41xgk+aer9s6H8g@mail.gmail.com>
From: Pieter Kasselman <pieter@spirl.com>
Date: Mon, 25 Aug 2025 16:57:20 +0100
X-Gm-Features: Ac12FXx8zCBWvi23gVtf9-em9pav839uxKh1RdYPyE-I0fJXcvWGpUeKQxwcjsk
Message-ID: <CALtWOA2X38dUFDQnz+HQdc4EwYFjhfSo19Rk=HOSgeLf9gmtcw@mail.gmail.com>
To: Joseph Salowey <joe@salowey.net>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Message-ID-Hash: IK3GAVZYYJ27JZLUKS37ZV2Z3DOMMNOR
X-Message-ID-Hash: IK3GAVZYYJ27JZLUKS37ZV2Z3DOMMNOR
X-MailFrom: pieter@spirl.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: oauth <oauth@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [OAUTH-WG] Re: WGLC for Transaction Tokens
List-Id: OAUTH WG <oauth.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/Ixo8xS9N1R-UWrn2m4MwPDn34Ck>
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>
Thanks Joe for the detailed review and comments. PRs are most welcome. If you want to raise a PR for Issue 8 in your list (Section 2.5) to start with it would be greatly appreciated. I will raise issues for the issues raised. With gratitude Pieter On Sat, Aug 23, 2025 at 3:20 AM Joseph Salowey <joe@salowey.net> wrote: > > Here are some comments on the draft. In general, I think this work is very useful and the spec is in pretty good shape despite the comments. I got through most of the specification, but still need to review the security considerations, will try to get that done in the next few days. I also would like to file issues and PRs for these, but have not had a chance yet. If you have chance let me know if there are ones I should prioritize (or deprioritize). > > THanks, > > Joe > > Should section 1 mention information disclosure. One of the issues that transaction tokens address is that it separates out the external and internal domains so that externally presented credentials (access tokens) are not used internally and therefore not vulnerable to disclosure within the internal domain. > Section 2 perhaps the last sentence should mention a "recent" intentionally invoked transaction > Section 2.2.1 first paragraph talks about "Txn-Tokens are typically created when a workload is invoked using an endpoint that is externally visible" . While I realize that this sentence leaves room for other cases such as when the request is internal. I think the document could do more to discuss this use case as it seems it would be important in most systems. Perhaps adding a short discussion in this section (perhaps in the last paragraph of this section) and in a few other relevant sections would be good. I'll try to get a list or PR together, but it will not be this week, > Section 2.2.1 lists a bunch of MAY items in the request. It seems like there should be some MUSTs somewhere in here? For example, the request MUST contain some information about the subject of the request which could be one of several options. I realize that 7.1 contains more normative information, but this section seems to be a bit out of sync and not very informative. It might also be useful to list the authentication requirements here at a high level. > section 2.3 In the following sentence "and as a result MAY be used only for the expected duration of an external invocation." the "MAY" seems incorrect as it doesn't add anything to the requirement. It should be "MUST". > Section 2.3 - the length of some transactions may be variable and unpredictable. Can the replacement workflow be used to extend the life of a token within certain limits? > Section 2.4 - I find this description a bit hard to parse and perhaps a bit restricted, for example it talks about externally invoked APIs. I think I like the text in the last paragraph in section 2 better, > Section 2.5 - I think we should have an internally initiated example. I'll work on some text to use in a PR, unless that would not be welcome. > Section 4.- Most of the terms in this section overlap with terms we define in WIMSE arch spec as well (Workload, trust domain, External Endpoint, Call Chain, etc). I don't think there is a lot of divergence, but it would be good to make sure there isn't and maybe make them more common where it makes sense. > Section 7.3 - does the validation of a self signed JWT require any signature validation or is it treated as a unsigned object by the authorization server? > Section 7.3 the request context probably should undergo some validation/authorization to make sure the caller is authorized to set specific values. > Section 7.5.1 Shouldn't the txn-ctx value also be unmodified in a replacement token? > Section 7.5.1 I can see value in the replacement token allowing for the lifetime of the JWT to be extended. Sometimes a transaction may take longer than expected. IF the token lifetime can be refreshed beyond the original time then the transaction can succeed. THis also seems better than trying to issue tokens with lifetimes that are longer than necessary for most transactions. In this case the IAT claim could still reflect the original token issue time so the token service can enforce a strict lifetime. > Section 7.6 could reference the WIMSE WIT as workload authentication option > > > On Fri, Aug 15, 2025 at 3:50 AM Lombardo, Jeff <jeffsec=40amazon.com@dmarc.ietf.org> wrote: >> >> From my reading, “a common security policy” is singular here to represent a functional stance, an authority, a delimited zone of control. >> >> Technically this security policy can be represented by multiple technical policies (decentralized, centralized, *BAC) that can apply and not, and if it does that could lead to a greenlight to process, a red light to stop, or a step up process. >> >> >> >> Which one is the outcome depends on the context of the request: which caller, which callee, for which purpose, under which conditions. >> >> >> >> But I respect that I might be too close to it to see an issue. >> >> >> >> 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 >> >> ( +1 514 778 5565 >> >> Commentaires à propos de notre échange? Exprimez-vous ici. >> >> >> >> Thoughts on our interaction? Provide feedback here. >> >> >> >> From: Watson Ladd <watsonbladd@gmail.com> >> Sent: August 14, 2025 6:05 PM >> To: Atul Tulshibagwale <atul@sgnl.ai> >> Cc: oauth <oauth@ietf.org> >> Subject: [EXT] [OAUTH-WG] Re: WGLC for Transaction Tokens >> >> >> >> 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. >> >> >> >> >> >> >> >> Astra mortemque praestare gradatim >> >> >> >> On Mon, Aug 11, 2025, 8:21 PM Atul Tulshibagwale <atul@sgnl.ai> wrote: >> >> Hi Watson, >> >> >> >> The spec has the following definition of a Trust Domain in Section 4: >> >> "A collection of systems, applications, or workloads that share a common security policy. In practice this may include a virtually or physically separated network, which contains two or more workloads. The workloads within a Trust Domain may be invoked only through published interfaces." >> >> >> >> The idea is that a service receiving an invocation from another service within the same trust domain can verify the transaction token details to prevent "unfettered access". >> >> >> >> I think I understand what we want to say here. I just don't think that the words in the doc actually say that clearly. In particular a common security policy is a pretty nebulous thing; does it mean they all need to authorize the same set of operations by the same people? >> >> >> >> Perhaps we should say trust domain is the domain of services that trust a transaction token issuer, and explicitly say different services have different policies about what is allowed in it. >> >> >> >> >> >> Hope this helps, >> >> Atul >> >> >> >> On Tue, Aug 12, 2025 at 7:42 AM Watson Ladd <watsonbladd@gmail.com> wrote: >> >> >> >> >> >> On Mon, Aug 11, 2025, 3:08 PM Brian Campbell <bcampbell@pingidentity.com> wrote: >> >> Note that I hope/plan to do an actual review again (it's been awhile) for this WGCL but did want to jump in on one point below. >> >> >> >> On Mon, Aug 11, 2025 at 3:01 PM Watson Ladd <watsonbladd@gmail.com> wrote: >> >> I have some concerns: >> >> - Requiring the requesting service to be in the Trust Domain of the >> token seems backwards to me. Surely we want these tokens to cross >> trust domains. >> >> >> >> No, I believe transaction tokens are, and have been since their inception, appropriately scoped to be an "internal" construct for use within a single trust domain. >> >> >> >> Maybe the term trust domain has a connotation I'm missing but I would think that we're creating these precisely because service A can't be given unfettered access to all the things service B has access to, hence different trust domain. But maybe what I mean is not what was meant by trust domain. >> >> >> 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. >> >> _______________________________________________ >> 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 > > _______________________________________________ > OAuth mailing list -- oauth@ietf.org > To unsubscribe send an email to oauth-leave@ietf.org
- [OAUTH-WG] WGLC for Transaction Tokens Rifaat Shekh-Yusef
- [OAUTH-WG] Re: WGLC for Transaction Tokens Dag Sneeggen
- [OAUTH-WG] Re: WGLC for Transaction Tokens Atul Tulshibagwale
- [OAUTH-WG] Re: WGLC for Transaction Tokens Aaron Parecki
- [OAUTH-WG] Re: WGLC for Transaction Tokens Watson Ladd
- [OAUTH-WG] Re: WGLC for Transaction Tokens Pieter Kasselman
- [OAUTH-WG] Re: WGLC for Transaction Tokens Dan Moore
- [OAUTH-WG] Re: WGLC for Transaction Tokens Lombardo, Jeff
- [OAUTH-WG] Re: WGLC for Transaction Tokens Brian Campbell
- [OAUTH-WG] Re: WGLC for Transaction Tokens Watson Ladd
- [OAUTH-WG] Re: WGLC for Transaction Tokens Brian Campbell
- [OAUTH-WG] Re: WGLC for Transaction Tokens Atul Tulshibagwale
- [OAUTH-WG] Re: WGLC for Transaction Tokens Watson Ladd
- [OAUTH-WG] Re: WGLC for Transaction Tokens george
- [OAUTH-WG] Re: WGLC for Transaction Tokens Dan Moore
- [OAUTH-WG] Re: WGLC for Transaction Tokens Pieter Kasselman
- [OAUTH-WG] Re: WGLC for Transaction Tokens Joseph Salowey
- [OAUTH-WG] Re: WGLC for Transaction Tokens Pieter Kasselman