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 <j...@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....@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 <watsonbl...@gmail.com>
>> Sent: August 14, 2025 6:05 PM
>> To: Atul Tulshibagwale <a...@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 <a...@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 <watsonbl...@gmail.com> wrote:
>>
>>
>>
>>
>>
>> On Mon, Aug 11, 2025, 3:08 PM Brian Campbell <bcampb...@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 <watsonbl...@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-le...@ietf.org
>>
>> _______________________________________________
>> OAuth mailing list -- oauth@ietf.org
>> To unsubscribe send an email to oauth-le...@ietf.org
>
> _______________________________________________
> OAuth mailing list -- oauth@ietf.org
> To unsubscribe send an email to oauth-le...@ietf.org

_______________________________________________
OAuth mailing list -- oauth@ietf.org
To unsubscribe send an email to oauth-le...@ietf.org

Reply via email to