<div dir="ltr"><span id="docs-internal-guid-46bccf97-4f2e-222a-7aa7-6ef8c6a04eb4"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Throughout</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">we should probably use <a href="http://example.com">example.com</a> in our examples rather than <a href="http://mitre.org">mitre.org</a></span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">OAuth flow terms are sometimes wearing spanx and sometimes not; let’s be consistent.</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">1. </span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">“</span><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">for use in the context of securing Representational State Transfer (RESTful) interfaces” </span><span style="font-size:14.6667px;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">is it for the context of restful apis? or is it (at least right now) for the context of healthcare?</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">2.1.2 </span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">“</span><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">SHOULD be tied to the user’s authentication session with the client” what do we mean by “tied to”? Perhaps we should say </span><span style="font-size:14.6667px;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">“</span><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">SHOULD expire when the user’s authentication session with the client expires”</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">2.2 </span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">We don’t have to spell out and reference JWT here; we already did that in 1.2.</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">The iss, aud and sub fields may be problematic in potential iGov implementations requiring blinded parties and/or an intermediate bridge.</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">2.3 </span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">errant “in”: “from a web-based client to the end user’s browser in for the purpose of redirecting” should be “from a web-based client to the end user’s browser for the purpose of redirecting” </span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">3.</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">All instances of jwks and jwks_uri should be wearing spanx here.</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">“allows for key rotation more easily” is awkward. Perhaps “allows for simpler key rotation”</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">This is the first reference to JWK or JWKS. They should be spelled out and referenced.</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">3.1</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">We need to spell out and reference TLS</span></p><br><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">3.2 </span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Dynamic Client Registration Protocol is no longer “draft” (yay!) and the RFC should be referenced here</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">4. </span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Should we put in here somewhere that the server must also validate the jwks_uri if one has been provided?</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">4.1 </span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">This is the first time we talk about either introspection or revocation. We should provide a reference to the relevant RFCs.</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">No need to spell out JWKS, as it first appears in Section 3.</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">This says “OpenID Connect Provider” I think most people say “OpenID Provider.” </span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">We should link to the reference for the HEART OpenID Connect Profile when we mention it.</span></p><br><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">4.2 </span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">iss, azp and sub may interfere with attempts to blind systems from each other and/or blind them to the identity of the user in potential iGov applications.</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">No need to spell out JWS, we did that in 1.1.</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">No need to reference JWE, we did that in 1.1.</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">4.4 </span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">This seems to repeat a lot of information that is already contained in the introspection RFC. We should probably cut that and just reference it.</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">5. Awkward wording: Change “One mechanism for doing this is by querying the scopes” to “This can be accomplished by querying the scopes”</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Should we also require that the protected resource check that the token hasn’t expired?</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">5.1 The statement “the client MUST authenticate using a JWT assertion” is contradicted by the next sentence “A protected resource MAY allow a client to authenticate using mutual TLS, either in lieu of or in addition to the JWT assertion.” I would rewrite:</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">“Normally when using an OAuth bearer token, the client does not separately authenticate to the protected resource. However, some protected resources in high value environments MAY require the client to authenticate to the protected resource in addition to presenting an access token. When authenticating to such protected resources, the client MUST use either a JWT assertion signed with its private key as described in Section 2.2, mutual TLS, or both. In such cases, a protected resource MUST verify that the identifier of the client is included in the “azp” field (authorized presenter) of the access token.”</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">7. </span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">What is “The preceding OAuth profiles” referring to? Perhaps “The preceding portions of this profile” would be better?</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">7.1 </span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Awkward wording. I would rewrite: “Stronger client authentication to the protected resource, combined with validating that the authenticated client is the one to which the token was issued through the azp token claim, reduces the risk of captured tokens being used by unauthorized clients.”</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">“Stronger client authentication to the protected resource, combined with validation that the authenticated client is identified in the azp token claim, reduces the risk of captured tokens being used by unauthorized clients. “</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">References</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">JWA is now RFC 7518</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">JWE is now RFC 7516</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">JWK is now RFC 7517</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">JWS is now RFC 7515</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">JWT is now RFC 7519</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">OAuth.Registration is now RFC 7591</span></p><span style="font-size:13.3333px;font-family:Verdana;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Add references to RFC 7662 and RFC 7009 (introspection and revocation)</span></span><div><font color="#000000" face="Verdana"><span style="font-size:13.3333px;white-space:pre-wrap"><br clear="all"></span></font><div><div class="gmail_signature"><div dir="ltr"><div style="color:rgb(136,136,136)">Sarah Squire</div><div style="color:rgb(136,136,136)">Engage Identity</div><div style="color:rgb(136,136,136)"><a href="http://engageidentity.com/" style="color:rgb(17,85,204)" target="_blank">http://engageidentity.com</a></div></div></div></div>
</div></div>