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 1. 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. 2. Section 2 perhaps the last sentence should mention a "recent" intentionally invoked transaction 3. 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, 4. 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. 5. 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". 6. 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? 7. 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, 8. 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. 9. Section 4.- Most of the terms in this section overlap with terms we define in WIMSE arch spec <https://datatracker.ietf.org/doc/draft-ietf-wimse-arch/> 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. 10. 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? 11. Section 7.3 the request context probably should undergo some validation/authorization to make sure the caller is authorized to set specific values. 12. Section 7.5.1 Shouldn't the txn-ctx value also be unmodified in a replacement token? 13. 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. 14. Section 7.6 could reference the WIMSE WIT as workload authentication option On Fri, Aug 15, 2025 at 3:50 AM Lombardo, Jeff <jeffsec= [email protected]> 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* > <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:* Watson Ladd <[email protected]> > *Sent:* August 14, 2025 6:05 PM > *To:* Atul Tulshibagwale <[email protected]> > *Cc:* oauth <[email protected]> > *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 <[email protected]> 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 <[email protected]> wrote: > > > > > > On Mon, Aug 11, 2025, 3:08 PM Brian Campbell <[email protected]> > 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 <[email protected]> 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 -- [email protected] > To unsubscribe send an email to [email protected] > > _______________________________________________ > OAuth mailing list -- [email protected] > To unsubscribe send an email to [email protected] >
_______________________________________________ OAuth mailing list -- [email protected] To unsubscribe send an email to [email protected]
