<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Keeping the id_token small is a requirement.  I don't want to start stuffing user attributes in it beyond the user_id.<div><br></div><div>Another issue is that some IdP may not want to have all of the user attributes available at both the token endpoint and the authorization server.</div><div><br></div><div>A viable design some people might want tis to send the claim requests in a signed JWT to the user-info endpoint.</div><div><br></div><div>Not all JWT access tokens will contain claim values.</div><div><br></div><div>If we make this the default then clients need to check in discovery if they shouldn't sniff the token.  </div><div>I suppose if the IdP is not publishing a user-info endpoint that could be a hint, but not definitive.</div><div><br></div><div>To avoid having the basic client do crypto we would need to use the code flow.  That way the id_token and access token come from a trusted endpoint and can just be base64 decoded.</div><div><br></div><div>I think people who are attaching additional scopes to the access token won't use it and will want the opaque token.</div><div><br></div><div>One way around that was somehing I had in mind with an earlier draft.  </div><div>The decoded access token has distributed claims in it.  You could just make the aditional scopes distributed claims, that has the advantage of providing a endpoint URL for the access token, and multiple access tokens.</div><div>that was rejected and not being OAuth like at the time.</div><div><br></div><div>Unfortunately I won't make the Monday call.</div><div><br></div><div>John B.</div><div><br></div><div><div><div>On 2011-11-05, at 3:30 PM, Nat Sakimura wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">So, one possible "another way" would be to have an option to include more user info in the id_token. <div>That way, we can keep the "opaqueness" requirement for the access_token intact and still accomodate the need for being able to access claims without a second call. </div>
<div><br></div><div>That actually is how it was done in earlier drafts. </div><div><br></div><div>=nat<br><br><div class="gmail_quote">On Sun, Nov 6, 2011 at 1:39 AM, Mike Jones <span dir="ltr"><<a href="mailto:Michael.Jones@microsoft.com">Michael.Jones@microsoft.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">





<div lang="EN-US" link="blue" vlink="purple">
<div><p class="MsoNormal">As discussed during the working group call on Thursday, I received feedback on the current Connect design from a key Microsoft product architect based upon his product’s use cases.  The high-order bit in his feedback was that he needs RPs
 to be able to access claims without making a second call to Check ID or UserInfo endpoints.  Per the discussion on the call, the requirement to be able to access claims without additional round trips seems entirely reasonable and is motivated by real user-interface
 latency concerns.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">To accomplish this, all claims would be carried in JWT tokens, which would then be directly used by the RPs.  This conflicts with the current design decision that the access token is opaque and that UserInfo claims can only be retrieved
 by making a second call to the UserInfo endpoint.  I propose that we change that decision before declaring implementer’s drafts.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Specifically, I would require that, in the normal case, the access token is a JWT containing the UserInfo claims (just like the ID Token is a JWT containing the logged-in session claims).  If we decide that it’s important to allow some
 implementations to use a different token format, that should be the exception, not the default.  In that exceptional case, those IdPs must declare in their discovery information that UserInfo claims must be retrieved from the UserInfo endpoint, and cannot
 be directly accessed within a JWT access token.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">I’d promised on the call to write up this proposed change.  This is that write-up.  We’ll discuss this on the Monday call.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">                                                            Best wishes,<u></u><u></u></p><p class="MsoNormal">                                                            -- Mike<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">P.S.  Coincidentally, I also independently received essentially the same feedback from a different product architect yesterday, based upon his review of the specs.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>

<br>_______________________________________________<br>
Openid-specs-ab mailing list<br>
<a href="mailto:Openid-specs-ab@lists.openid.net">Openid-specs-ab@lists.openid.net</a><br>
<a href="http://lists.openid.net/mailman/listinfo/openid-specs-ab" target="_blank">http://lists.openid.net/mailman/listinfo/openid-specs-ab</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>Nat Sakimura (=nat)<div>Chairman, OpenID Foundation<br><a href="http://nat.sakimura.org/" target="_blank">http://nat.sakimura.org/</a><br>@_nat_en</div><br>

</div>
_______________________________________________<br>Openid-specs-ab mailing list<br><a href="mailto:Openid-specs-ab@lists.openid.net">Openid-specs-ab@lists.openid.net</a><br>http://lists.openid.net/mailman/listinfo/openid-specs-ab<br></blockquote></div><br></div></body></html>