<div dir="ltr"><div>Is it up to the client as to if it will produce single-use JWTs? Or is it up the the AS as it if it wants to always enforce single-use? If a client signals that the JWT is single-use via the inclusion of a jti claim, then the AS has the choice to track for single-use or not. But, in that case, the AS can't mandate that the client send jti. For some reason I'd always thought of it as exclusively up to the AS. Though that can have interop implications. <br>

<br></div><div>There maybe implications on or from the OAuth assertion drafts with this too. The jti claim is optional in draft-ietf-oauth-json-web-token and draft-ietf-oauth-jwt-bearer so it could be used like this. But ID is a required attribute per schema for SAML assertions. I realize that's beyond the scope of Connect but it'd be nice if there was common treatment. There's related language in draft-ietf-oauth-assertions too in sec 5.1 and 6.1. <br>

<br></div><div>To John's point about not having exp be more than 12h - there is language in all three assertion drafts about the AS being allowed to reject assertions/jwts that expire unreasonably far in the future. Maybe more should be said?<br>

<br></div><div>My comment on this text originated from thinking that a client (especially a web server client doing a lot of transactions) might very reasonably try and avoid having to compute a new RSA signature each time.  And that seemed to be allowed but might be problematic with an AS that chose to try and de-dupe. <br>

</div><div><br><br><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Oct 27, 2013 at 5:57 PM, John Bradley <span dir="ltr"><<a href="mailto:ve7jtb@ve7jtb.com" target="_blank">ve7jtb@ve7jtb.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">In am OK with that.    If that is the case we should say something about exp not being set more than 12h (or some reasonable value other wise people will set it for a year) into the future if jti is not sent.<div>

<br></div><div>John B.<div><div class="h5"><br><div><div>On Oct 27, 2013, at 12:52 AM, Mike Jones <<a href="mailto:Michael.Jones@microsoft.com" target="_blank">Michael.Jones@microsoft.com</a>> wrote:</div><br><blockquote type="cite">

<div link="blue" vlink="purple" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" lang="EN-US">

<div><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">One possibility that comes to mind is saying that if “jti” is included, it signals that the JWT is single-use.  What do people think of that possibility?<u></u><u></u></span></div>

<div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span></div><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif">

<span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">What do people expect the “normal” use of these JWTs to be?<u></u><u></u></span></div><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif">

<span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span></div><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">                                                            -- Mike<u></u><u></u></span></div>

<div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span></div><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif">

<b><span style="font-size:10pt;font-family:Tahoma,sans-serif">From:</span></b><span style="font-size:10pt;font-family:Tahoma,sans-serif"><span> </span>Brian Campbell [<a href="mailto:bcampbell@pingidentity.com" target="_blank">mailto:bcampbell@pingidentity.com</a>]<span> </span><br>

<b>Sent:</b><span> </span>Saturday, October 26, 2013 11:56 AM<br><b>To:</b><span> </span>John Bradley<br><b>Cc:</b><span> </span>Mike Jones; <a href="mailto:openid-specs-ab@lists.openid.net" target="_blank">openid-specs-ab@lists.openid.net</a><br>

<b>Subject:</b><span> </span>Re: [Openid-specs-ab] "jti" claim in client_secret_jwt and private_key_jwt JWTs<u></u><u></u></span></div><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif">

<u></u> <u></u></div><div><div><div><p class="MsoNormal" style="margin:0in 0in 12pt;font-size:12pt;font-family:'Times New Roman',serif">Not so fast. The same assertion could be used multiple times and, because it'll have a relatively short validity window, it will still have significantly better security characteristics than a password. Which is true for both self-signed and 3rd party issued assertions.<u></u><u></u></p>

</div><p class="MsoNormal" style="margin:0in 0in 12pt;font-size:12pt;font-family:'Times New Roman',serif">Yes, single use is better than that but enforcing single use places a significant operational burden on the AS. I don't believe the tradeoff is worth it for client auth over a direct TLS connection to the AS.<u></u><u></u></p>

</div><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif">If the AS has the option of enforcing one-time use assertions but no way for the client to discover the requirement, then you'll have introp problems (or overly complex and probably buggy retry code on the client).<u></u><u></u></div>

</div><div><p class="MsoNormal" style="margin:0in 0in 12pt;font-size:12pt;font-family:'Times New Roman',serif"><u></u> <u></u></p><div><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif">

On Fri, Oct 25, 2013 at 9:25 PM, John Bradley <<a href="mailto:ve7jtb@ve7jtb.com" style="color:purple;text-decoration:underline" target="_blank">ve7jtb@ve7jtb.com</a>> wrote:<u></u><u></u></div><div><div><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif">

Self signed assertions must be single use.  That is the point of using them vs a password.  If you use the same assertion multiple times it is a password. <u></u><u></u></div></div><div><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif">

<u></u> <u></u></div></div><div><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif">There are reasons to re use a third party assertion, but it has the same security as a password. <br>

<br>Sent from my iPhone<u></u><u></u></div></div><div><div><p class="MsoNormal" style="margin:0in 0in 12pt;font-size:12pt;font-family:'Times New Roman',serif"><br>On Oct 25, 2013, at 7:49 PM, Mike Jones <<a href="mailto:Michael.Jones@microsoft.com" style="color:purple;text-decoration:underline" target="_blank">Michael.Jones@microsoft.com</a>> wrote:<u></u><u></u></p>

</div><blockquote style="margin-top:5pt;margin-bottom:5pt"><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif">The spec currently says this about JWTs used for client_secret_jwt and private_key_jwt:<u></u><u></u></div>

<div style="margin:0in 0in 0.0001pt 0.5in;font-size:12pt;font-family:'Times New Roman',serif"><span style="font-family:Verdana,sans-serif" lang="EN">jti</span><u></u><u></u></div><div style="margin:0in 0in 0.0001pt 1in;font-size:12pt;font-family:'Times New Roman',serif">

<span style="font-family:Verdana,sans-serif" lang="EN">REQUIRED. JWT ID. A unique identifier for the token. The JWT ID MAY be used by implementations requiring message de-duplication for one-time use assertions.</span><u></u><u></u></div>

<div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif"> <u></u><u></u></div><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif">Brian asked us to drop the sentence “<span style="font-family:Verdana,sans-serif" lang="EN">The JWT ID MAY be used by implementations requiring message de-duplication for one-time use assertions</span>” in both cases.<u></u><u></u></div>

<div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif"> <u></u><u></u></div><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif">A few questions:<u></u><u></u></div>

<p style="margin-right:0in;margin-left:0in;font-size:12pt;font-family:'Times New Roman',serif">1.<span style="font-size:7pt">      <span> </span></span>Why is “jti” required?<u></u><u></u></p><p style="margin-right:0in;margin-left:0in;font-size:12pt;font-family:'Times New Roman',serif">

2.<span style="font-size:7pt">      <span> </span></span>How do we expect it to normally be used?<u></u><u></u></p><p style="margin-right:0in;margin-left:0in;font-size:12pt;font-family:'Times New Roman',serif">3.<span style="font-size:7pt">      <span> </span></span>Would it be typical for assertions to be for one-time use in our use cases?<u></u><u></u></p>

<p style="margin-right:0in;margin-left:0in;font-size:12pt;font-family:'Times New Roman',serif">4.<span style="font-size:7pt">      <span> </span></span>How would a client know whether an assertion is for one-time use?<u></u><u></u></p>

<p style="margin-right:0in;margin-left:0in;font-size:12pt;font-family:'Times New Roman',serif">5.<span style="font-size:7pt">      <span> </span></span>Should “jti” only be present if the assertion is for one-time use?<u></u><u></u></p>

<p style="margin-right:0in;margin-left:0in;font-size:12pt;font-family:'Times New Roman',serif">6.<span style="font-size:7pt">      <span> </span></span>Should it be required at all?<u></u><u></u></p><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif">

 <u></u><u></u></div><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif">                                                                -- Mike<u></u><u></u></div><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif">

 <u></u><u></u></div></blockquote></div><blockquote style="margin-top:5pt;margin-bottom:5pt"><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif">_______________________________________________<br>

Openid-specs-ab mailing list<br><a href="mailto:Openid-specs-ab@lists.openid.net" style="color:purple;text-decoration:underline" target="_blank">Openid-specs-ab@lists.openid.net</a><br><a href="http://lists.openid.net/mailman/listinfo/openid-specs-ab" style="color:purple;text-decoration:underline" target="_blank">http://lists.openid.net/mailman/listinfo/openid-specs-ab</a><u></u><u></u></div>

</blockquote></div><p class="MsoNormal" style="margin:0in 0in 12pt;font-size:12pt;font-family:'Times New Roman',serif"><br>_______________________________________________<br>Openid-specs-ab mailing list<br><a href="mailto:Openid-specs-ab@lists.openid.net" style="color:purple;text-decoration:underline" target="_blank">Openid-specs-ab@lists.openid.net</a><br>

<a href="http://lists.openid.net/mailman/listinfo/openid-specs-ab" style="color:purple;text-decoration:underline" target="_blank">http://lists.openid.net/mailman/listinfo/openid-specs-ab</a></p></div></div></div></div></blockquote>

</div><br></div></div></div></div></blockquote></div><br></div>