<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Thanks for the thorough review. I’ve just finished incorporating pretty much all of these suggestions, apart from the speculation on what might be desirable in iGov. We’ll leave things as they are now, which is an understood deployment pattern, and have to figure out how it fits or doesn’t in iGov.<div class=""><br class=""></div><div class=""> — Justin</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Nov 28, 2015, at 12:44 PM, Sarah Squire <<a href="mailto:sarah@engageidentity.com" class="">sarah@engageidentity.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html; charset=utf-8" class=""><div dir="ltr" class=""><span id="docs-internal-guid-46bccf97-4f2e-222a-7aa7-6ef8c6a04eb4" class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 14.6667px; font-family: Arial; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">Throughout</span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 14.6667px; font-family: Arial; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">we should probably use <a href="http://example.com/" class="">example.com</a> in our examples rather than <a href="http://mitre.org/" class="">mitre.org</a></span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 14.6667px; font-family: Arial; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">OAuth flow terms are sometimes wearing spanx and sometimes not; let’s be consistent.</span></div><br class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 14.6667px; font-family: Arial; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">1. </span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 14.6667px; font-family: Arial; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">“</span><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">for use in the context of securing Representational State Transfer (RESTful) interfaces” </span><span style="font-size: 14.6667px; font-family: Arial; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">is it for the context of restful apis? or is it (at least right now) for the context of healthcare?</span></div><br class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 14.6667px; font-family: Arial; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">2.1.2 </span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 14.6667px; font-family: Arial; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">“</span><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">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; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">“</span><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">SHOULD expire when the user’s authentication session with the client expires”</span></div><br class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">2.2 </span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">We don’t have to spell out and reference JWT here; we already did that in 1.2.</span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">The iss, aud and sub fields may be problematic in potential iGov implementations requiring blinded parties and/or an intermediate bridge.</span></div><br class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">2.3 </span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">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></div><br class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">3.</span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">All instances of jwks and jwks_uri should be wearing spanx here.</span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">“allows for key rotation more easily” is awkward. Perhaps “allows for simpler key rotation”</span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">This is the first reference to JWK or JWKS. They should be spelled out and referenced.</span></div><br class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">3.1</span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">We need to spell out and reference TLS</span></div><br class=""><br class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 14.6667px; font-family: Arial; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">3.2 </span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">Dynamic Client Registration Protocol is no longer “draft” (yay!) and the RFC should be referenced here</span></div><br class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">4. </span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">Should we put in here somewhere that the server must also validate the jwks_uri if one has been provided?</span></div><br class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">4.1 </span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">This is the first time we talk about either introspection or revocation. We should provide a reference to the relevant RFCs.</span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">No need to spell out JWKS, as it first appears in Section 3.</span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">This says “OpenID Connect Provider” I think most people say “OpenID Provider.” </span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">We should link to the reference for the HEART OpenID Connect Profile when we mention it.</span></div><br class=""><br class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">4.2 </span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">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></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">No need to spell out JWS, we did that in 1.1.</span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">No need to reference JWE, we did that in 1.1.</span></div><br class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">4.4 </span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">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></div><br class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">5. Awkward wording: Change “One mechanism for doing this is by querying the scopes” to “This can be accomplished by querying the scopes”</span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">Should we also require that the protected resource check that the token hasn’t expired?</span></div><br class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">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></div><br class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">“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></div><br class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">7. </span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">What is “The preceding OAuth profiles” referring to? Perhaps “The preceding portions of this profile” would be better?</span></div><br class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">7.1 </span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">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></div><br class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">“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></div><br class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">References</span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">JWA is now RFC 7518</span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">JWE is now RFC 7516</span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">JWK is now RFC 7517</span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">JWS is now RFC 7515</span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">JWT is now RFC 7519</span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">OAuth.Registration is now RFC 7591</span></div><span style="font-size: 13.3333px; font-family: Verdana; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">Add references to RFC 7662 and RFC 7009 (introspection and revocation)</span></span><div class=""><font face="Verdana" class=""><span style="font-size:13.3333px;white-space:pre-wrap" class=""><br clear="all" class=""></span></font><div class=""><div class="gmail_signature"><div dir="ltr" class=""><div style="color:rgb(136,136,136)" class="">Sarah Squire</div><div style="color:rgb(136,136,136)" class="">Engage Identity</div><div style="color:rgb(136,136,136)" class=""><a href="http://engageidentity.com/" style="color:rgb(17,85,204)" target="_blank" class="">http://engageidentity.com</a></div></div></div></div>
</div></div>
_______________________________________________<br class="">Openid-specs-heart mailing list<br class=""><a href="mailto:Openid-specs-heart@lists.openid.net" class="">Openid-specs-heart@lists.openid.net</a><br class="">http://lists.openid.net/mailman/listinfo/openid-specs-heart<br class=""></div></blockquote></div><br class=""></div></body></html>