[{"author": "Kathleen Moriarty", "text": "<p>Greetings!</p>", "time": "2025-03-21T02:30:30Z"}, {"author": "Pieter Kasselman", "text": "<p>Hi Kathleen!</p>", "time": "2025-03-21T02:31:20Z"}, {"author": "Justin Richer", "text": "<p>@meetecho the main screen in the oauth room isn't showing the slides/content -- the secondary (side) screen looks like it's working fine</p>", "time": "2025-03-21T02:31:38Z"}, {"author": "Justin Richer", "text": "<p>main screen is just the desktop background</p>", "time": "2025-03-21T02:31:49Z"}, {"author": "Lorenzo Miniero", "text": "<p><span class=\"user-mention\" data-user-id=\"545\">@Justin Richer</span> looking into it</p>", "time": "2025-03-21T02:31:57Z"}, {"author": "Justin Richer", "text": "<p>it's up now, thank you!</p>", "time": "2025-03-21T02:32:43Z"}, {"author": "Lorenzo Miniero", "text": "<p>Thanks for the heads up!</p>", "time": "2025-03-21T02:32:49Z"}, {"author": "Kathleen Moriarty", "text": "<p>Hello Pieter!</p>", "time": "2025-03-21T02:34:49Z"}, {"author": "Arndt Schwenkschuster", "text": "<p>Very well-fitting t-shirt Brian!</p>", "time": "2025-03-21T03:16:46Z"}, {"author": "Dima Postnikov", "text": "<p>\"has to happen on a client side\" applies well to 2 dimensional setups (client &lt;-&gt; AS), not so well to large ecosystems (e g Open Banking). It's easier to say \"client MUST\" but harder to enforce in reality</p>", "time": "2025-03-21T03:17:46Z"}, {"author": "Andy Barlow", "text": "<p>rfc 7522 &lt;-- is this the spec describing SAML based client auth?</p>", "time": "2025-03-21T03:19:54Z"}, {"author": "Joseph Heenan", "text": "<p>JAR can be sent in the backchannel too when using PAR, not only in the front channel as I think Brian said. (Don't think that really changes the conclusion though.)</p>", "time": "2025-03-21T03:22:01Z"}, {"author": "Atul Tulshibagwale", "text": "<p>Is that a Thaifighter? :D</p>", "time": "2025-03-21T03:22:07Z"}, {"author": "Arndt Schwenkschuster", "text": "<p>+1 to relax. The life times are different by nature.</p>", "time": "2025-03-21T03:37:09Z"}, {"author": "Brian Campbell", "text": "<p>So much agree with Aaron</p>", "time": "2025-03-21T03:38:32Z"}, {"author": "Dean Saxe", "text": "<p>also agree with Aaron</p>", "time": "2025-03-21T03:38:56Z"}, {"author": "Arndt Schwenkschuster", "text": "<p>Isn't the presence of a transaction token proof enough that it was valid at entry?</p>", "time": "2025-03-21T03:39:09Z"}, {"author": "Arndt Schwenkschuster", "text": "<p>AT was valid at entry*</p>", "time": "2025-03-21T03:39:22Z"}, {"author": "Atul Tulshibagwale", "text": "<p>The TraT has a 'iat' value, which can be used to determine when the transaction was initiated</p>", "time": "2025-03-21T03:40:04Z"}, {"author": "Dean Saxe", "text": "<p>what happens when a TraT is issued in response to a TraT?</p>", "time": "2025-03-21T03:40:23Z"}, {"author": "Dean Saxe", "text": "<p>does the iat claim get updated?</p>", "time": "2025-03-21T03:40:31Z"}, {"author": "Aaron Parecki", "text": "<p>I would need to confirm in the draft but that was my assumption, that the iat represents the individual TraT, so there would need to be a new claim to preserve the timestamp of the very initial access token call</p>", "time": "2025-03-21T03:41:15Z"}, {"author": "Dean Saxe", "text": "<p>I think carrying forward the expiration of the AT in the TraTs makes sense, but that also implies that you carry forward the chain of iats too</p>", "time": "2025-03-21T03:41:18Z"}, {"author": "Dean Saxe", "text": "<p>^^^ what Aaron said</p>", "time": "2025-03-21T03:41:34Z"}, {"author": "Atul Tulshibagwale", "text": "<p>Good point, Dean. Section 7.5.2 says the replacement token cannot be greater in scope than the original TraT, but we can refine the language to specify that it cannot exceed the lifetime of the original token</p>", "time": "2025-03-21T03:41:46Z"}, {"author": "Atul Tulshibagwale", "text": "<p>Actually, I take that back. It is covered in 7.5.1</p>", "time": "2025-03-21T03:42:44Z"}, {"author": "Aaron Parecki", "text": "<p>that sounds like something different Atul</p>", "time": "2025-03-21T03:44:41Z"}, {"author": "Dean Saxe", "text": "<p>yeah, this is not about scope, this is about timing</p>", "time": "2025-03-21T03:45:23Z"}, {"author": "Atul Tulshibagwale", "text": "<p>I was wrong about the scope (I was reading the wrong section). Please see section 7.5.1</p>", "time": "2025-03-21T03:45:46Z"}, {"author": "Dean Saxe", "text": "<p>and if we agree that a TraT can live beyond the expiration of the AT, then a new TraT can be issued post expiration</p>", "time": "2025-03-21T03:45:51Z"}, {"author": "Atul Tulshibagwale", "text": "<p>That has a line about the timing</p>", "time": "2025-03-21T03:45:53Z"}, {"author": "Dean Saxe", "text": "<p>ok - I need to re-read the current draft</p>", "time": "2025-03-21T03:46:10Z"}, {"author": "Atul Tulshibagwale", "text": "<p><a href=\"https://www.ietf.org/archive/id/draft-ietf-oauth-transaction-tokens-05.html\">https://www.ietf.org/archive/id/draft-ietf-oauth-transaction-tokens-05.html</a></p>", "time": "2025-03-21T03:46:22Z"}, {"author": "Aaron Parecki", "text": "<p>7.5.1 talks about overall token lifetime. The thing in question is about preserving the timestamp of the first request that was made with the access token that issued the first TraT</p>", "time": "2025-03-21T03:47:02Z"}, {"author": "Atul Tulshibagwale", "text": "<p>true. I was responding to Dean's question about getting a replacement TraT</p>", "time": "2025-03-21T03:47:27Z"}, {"author": "Alex Chalmers", "text": "<p>Dean, just to clarify your statement at the mic, are you suggesting that the TraT maintains the following times: originating AT iat, originating AT exp, time of original AT presentation, and any iat from TraTs chained? Just wanting to get my head wrapped around it.</p>", "time": "2025-03-21T03:48:24Z"}, {"author": "George Fletcher", "text": "<p>In this context I think the bigger question is if the Transaction Token Service authorizes the issuance of a Transaction Token, then is there a need for the downstream system to  care about when the Access Token expired or can it trust the TTS .</p>", "time": "2025-03-21T03:48:37Z"}, {"author": "Aaron Parecki", "text": "<p>I\u2019m not actually convinced the entire chain needs to be preserved, but definitely the timestamp that the first TraT was issued needs to be preserved throughout the chain</p>", "time": "2025-03-21T03:48:56Z"}, {"author": "Atul Tulshibagwale", "text": "<p>The TraT has the 'iat' claim, so that should work, right?</p>", "time": "2025-03-21T03:49:18Z"}, {"author": "George Fletcher", "text": "<p>Sure, having an iat in the TraT makes sense.</p>", "time": "2025-03-21T03:49:20Z"}, {"author": "Aaron Parecki", "text": "<p>no, because the iat gets replaced with every new TraT issued from another TraT</p>", "time": "2025-03-21T03:49:34Z"}, {"author": "Arndt Schwenkschuster", "text": "<p>TTS validated the signature of AT and the ecosystem trusts that, so I believe trust is already given</p>", "time": "2025-03-21T03:49:35Z"}, {"author": "Atul Tulshibagwale", "text": "<p>got it, @aaron</p>", "time": "2025-03-21T03:49:48Z"}, {"author": "George Fletcher", "text": "<p>I agree that if a workload requests a replacement TraT then more restrictions from a timing come into play.</p>", "time": "2025-03-21T03:50:24Z"}, {"author": "Justin Richer", "text": "<p>\"transaction started at\" claim is what I was meaning to base things on</p>", "time": "2025-03-21T03:51:29Z"}, {"author": "George Fletcher", "text": "<p>One possibility is to have the TTS ensure that any replacement TraT can not extend beyond the lifetime of the original TraT. I would like to have more input from people who have workflows that leverage replacement TraTs.</p>", "time": "2025-03-21T03:52:47Z"}, {"author": "Justin Richer", "text": "<p>I still think \"lifetime of the TraT\" should not be the basis for lifetime of the transaction itself</p>", "time": "2025-03-21T03:53:08Z"}, {"author": "Aaron Parecki", "text": "<p>my comment was that the lifetime is less important than the timestamp that the original transaction started</p>", "time": "2025-03-21T03:53:21Z"}, {"author": "Justin Richer", "text": "<p>just like the access token is only needing to be valid at the start</p>", "time": "2025-03-21T03:53:25Z"}, {"author": "Atul Tulshibagwale", "text": "<p>I agree with Justin and Aaron that we need to have a field in the TraT that captures the original issuance time of the TraT regardless of how many times it gets replaced.</p>", "time": "2025-03-21T03:54:03Z"}, {"author": "George Fletcher", "text": "<p><span aria-label=\"+1\" class=\"emoji emoji-1f44d\" role=\"img\" title=\"+1\">:+1:</span></p>", "time": "2025-03-21T03:54:28Z"}, {"author": "Dean Saxe", "text": "<p>Trust me, bruh, this is confusing.</p>", "time": "2025-03-21T03:55:11Z"}, {"author": "Atul Tulshibagwale", "text": "<p>Let's talk about it at IIW, Dean</p>", "time": "2025-03-21T03:55:38Z"}, {"author": "Dean Saxe", "text": "<p>good plan, Atul.  I might try to write a PR before then to give us something to chew on</p>", "time": "2025-03-21T03:56:02Z"}, {"author": "Atul Tulshibagwale", "text": "<p>sg!</p>", "time": "2025-03-21T03:56:11Z"}, {"author": "Dean Saxe", "text": "<p>we should dogfood the kerberos approach ;-)</p>", "time": "2025-03-21T03:57:09Z"}, {"author": "Dean Saxe", "text": "<p>&lt;/dad_jokes&gt;</p>", "time": "2025-03-21T03:57:25Z"}, {"author": "Justin Richer", "text": "<p>well it's not a field about the trat but it's a field about the transaction</p>", "time": "2025-03-21T03:59:11Z"}, {"author": "Justin Richer", "text": "<p>conflating those are the root of the problem</p>", "time": "2025-03-21T03:59:20Z"}, {"author": "Aaron Parecki", "text": "<p><span aria-label=\"wait one second\" class=\"emoji emoji-261d\" role=\"img\" title=\"wait one second\">:wait_one_second:</span></p>", "time": "2025-03-21T03:59:42Z"}, {"author": "George Fletcher", "text": "<p>We have the tctx claim where we can put a \"transaction start time\" claim.</p>", "time": "2025-03-21T04:00:11Z"}, {"author": "Aaron Parecki", "text": "<p>tiat - transaction initiated at?</p>", "time": "2025-03-21T04:03:32Z"}, {"author": "Orie Steele", "text": "<p>I don't understand how this is related to multiple confirmation methods... how can the guy that says trust me, not end up with a token they can use?</p>", "time": "2025-03-21T04:07:56Z"}, {"author": "Aaron Parecki", "text": "<p>they\u2019re saying \u201ctrust me, issue a token that this other guy can use\u201d</p>", "time": "2025-03-21T04:08:23Z"}, {"author": "Orie Steele", "text": "<p>Like one cnf is a ckt and the other is a uri?</p>", "time": "2025-03-21T04:08:24Z"}, {"author": "Orie Steele", "text": "<p>how you know im not the other guy?</p>", "time": "2025-03-21T04:08:43Z"}, {"author": "Aaron Parecki", "text": "<p>the client requesting doesn\u2019t have the ability to sign a proof using the key that it\u2019s being requested to be bound to</p>", "time": "2025-03-21T04:09:13Z"}, {"author": "Felix Linker", "text": "<p><span class=\"user-mention silent\" data-user-id=\"5474\">Orie Steele</span> <a href=\"#narrow/stream/245-oauth/topic/ietf-122/near/159976\">said</a>:</p>\n<blockquote>\n<p>how you know im not the other guy?</p>\n</blockquote>\n<p>That's implicit. At the very least you can't prove that you're the other guy because you don't control the respective private key.</p>", "time": "2025-03-21T04:09:23Z"}, {"author": "George Fletcher", "text": "<p>Makes me think back to the <code>azp</code> claim of the id_token :)</p>", "time": "2025-03-21T04:09:36Z"}, {"author": "Felix Linker", "text": "<p><span class=\"user-mention silent\" data-user-id=\"4140\">Felix Linker</span> <a href=\"#narrow/stream/245-oauth/topic/ietf-122/near/159981\">said</a>:</p>\n<blockquote>\n<p>That's implicit. At the very least you can't prove that you're the other guy because you don't control the respective private key.</p>\n</blockquote>\n<p>*...you can't prove you're the other guy...</p>", "time": "2025-03-21T04:10:08Z"}, {"author": "Jonathan Hoyland", "text": "<p>This gives me strong bigraph vibes</p>", "time": "2025-03-21T04:10:08Z"}, {"author": "Jonathan Hoyland", "text": "<p>It might be worth trying to describe a mathematical object that formalises the possible shapes we might want</p>", "time": "2025-03-21T04:10:56Z"}, {"author": "Kathleen Moriarty", "text": "<p>I think a survey across the WGs is a first step and I'm willing to help</p>", "time": "2025-03-21T04:11:50Z"}, {"author": "Pieter Kasselman", "text": "<p>This is a common pattern in practical deployment</p>", "time": "2025-03-21T04:12:08Z"}, {"author": "Pieter Kasselman", "text": "<p>Or problem at least</p>", "time": "2025-03-21T04:12:17Z"}, {"author": "David Waite", "text": "<p>what would having a signature using the key that is being vouched for  if that entity doesn't have a verifiable identity?</p>", "time": "2025-03-21T04:12:47Z"}, {"author": "David Waite", "text": "<p>I consider a lot of this to be introductory</p>", "time": "2025-03-21T04:13:06Z"}, {"author": "David Waite", "text": "<p>as in \"here's something you won't recognize but I vouch for them and delegate certain authorizations to them\"</p>", "time": "2025-03-21T04:13:39Z"}, {"author": "Jonathan Hoyland", "text": "<p>Does the set of identities x authorisations in a trust zone form a tree?</p>", "time": "2025-03-21T04:13:40Z"}, {"author": "Dean Saxe", "text": "<p>Doesn't RFC 9470 already handle this issue of \"please reauth now?\"</p>", "time": "2025-03-21T04:16:46Z"}, {"author": "Joseph Heenan", "text": "<p>I had the same thought but I think RFC9470 only handles resource endpoints, not the token endpoint refresh token grant?</p>", "time": "2025-03-21T04:17:26Z"}, {"author": "Aaron Parecki", "text": "<p>it only defines resource server errors, not for refresh token requests</p>", "time": "2025-03-21T04:17:35Z"}, {"author": "George Fletcher", "text": "<p>+1 to security issues with following URIs</p>", "time": "2025-03-21T04:18:38Z"}, {"author": "Dean Saxe", "text": "<p>Is this a potential extension to 9470 to include RT requests?  Can we effectively expand the scope of 9470?</p>", "time": "2025-03-21T04:19:27Z"}, {"author": "Ben Bucksch", "text": "<p>@NickWatson: Yay for better error handling in cases of user blocked, etc.. As a mail client, I have the same problem. The type of error determines <em>how</em> I recover form the error. As client, I will do other things based ont he error type.</p>\n<p>I suggested: 1) to add additional, more specific error code<br>\n2) a long, translated, user-readable error string.</p>", "time": "2025-03-21T04:19:41Z"}, {"author": "David Waite", "text": "<p>IIRC there's not an oath way to carry over a reauthentication into a chain of refresh/access tokens - it is generally a new request, which means it may require client consent depending on the security model.</p>", "time": "2025-03-21T04:20:14Z"}, {"author": "Ben Bucksch", "text": "<p>I'd be happy to work with Nick on this.<br>\n(I am on device without mic. if anybody wants to voice that on behalf me, I'd be grateful)</p>", "time": "2025-03-21T04:20:32Z"}, {"author": "Jonathan Hoyland", "text": "<p>Solution 2 sounds like a CSRF / SSRF nightmare</p>", "time": "2025-03-21T04:21:56Z"}, {"author": "George Fletcher", "text": "<p><span aria-label=\"middle finger\" class=\"emoji emoji-1f595\" role=\"img\" title=\"middle finger\">:middle_finger:</span></p>", "time": "2025-03-21T04:22:20Z"}, {"author": "David Waite", "text": "<p>I think solution 2 would need to be state against a fixed error endpoint</p>", "time": "2025-03-21T04:22:35Z"}, {"author": "Aaron Parecki", "text": "<p>did george just give CSRF the middle finger</p>", "time": "2025-03-21T04:22:40Z"}, {"author": "Orie Steele", "text": "<p>rofl</p>", "time": "2025-03-21T04:22:48Z"}, {"author": "George Fletcher", "text": "<p>That was supposed to be the finger point up... but it is after midnight :)</p>", "time": "2025-03-21T04:23:06Z"}, {"author": "Andy Barlow", "text": "<p>hahah</p>", "time": "2025-03-21T04:23:14Z"}, {"author": "Dean Saxe", "text": "<p>rotfl.  You're forgiven, George</p>", "time": "2025-03-21T04:23:28Z"}, {"author": "Ben Bucksch", "text": "<p>lol#</p>", "time": "2025-03-21T04:23:35Z"}, {"author": "David Waite", "text": "<p>I 90% believe you George</p>", "time": "2025-03-21T04:23:43Z"}, {"author": "George Fletcher", "text": "<p><span aria-label=\"joy\" class=\"emoji emoji-1f602\" role=\"img\" title=\"joy\">:joy:</span></p>", "time": "2025-03-21T04:23:58Z"}, {"author": "George Fletcher", "text": "<p>Just to be clear... I agree with Jonathan that Solution 2 \"sounds like a CSRF / SSRF nightmare\" :)</p>", "time": "2025-03-21T04:25:02Z"}, {"author": "Ben Bucksch", "text": "<p>@NickWatson I don't have your email address. Can you reach out to me? <a href=\"mailto:ben.bucksch@beonex.com\">ben.bucksch@beonex.com</a> . I'd be happy to work with you on that.</p>", "time": "2025-03-21T04:25:08Z"}, {"author": "Brian Campbell", "text": "<p>Agree with Aaron (again)</p>", "time": "2025-03-21T04:29:48Z"}, {"author": "Aaron Parecki", "text": "<p>thanks brian &lt;3</p>", "time": "2025-03-21T04:29:57Z"}]