<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Verdana;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
pre
{mso-style-priority:99;
mso-style-link:"HTML Preformatted Char";
margin:0in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Courier New";}
p.msonormal0, li.msonormal0, div.msonormal0
{mso-style-name:msonormal;
mso-margin-top-alt:auto;
margin-right:0in;
mso-margin-bottom-alt:auto;
margin-left:0in;
font-size:12.0pt;
font-family:"Times New Roman",serif;}
span.apple-style-span
{mso-style-name:apple-style-span;}
span.EmailStyle19
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:#002060;}
span.HTMLPreformattedChar
{mso-style-name:"HTML Preformatted Char";
mso-style-priority:99;
mso-style-link:"HTML Preformatted";
font-family:"Courier New";}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#002060">The server is certainly right to ignore a scope request that it doesn’t understand, per this language at
<a href="https://openid.net/specs/openid-connect-registration-1_0.html#RegistrationResponse">
https://openid.net/specs/openid-connect-registration-1_0.html#RegistrationResponse</a>:<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span lang="EN" style="font-family:"Verdana",sans-serif;color:black">An Authorization Server MAY ignore values provided by the client, and MUST ignore any fields sent by the Client that it does not understand.</span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#002060"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#002060"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#002060">From an RFC 7591, the server’s behavior seems fine to me too.
<a href="https://tools.ietf.org/html/rfc7591#section-2">https://tools.ietf.org/html/rfc7591#section-2</a> says:<o:p></o:p></span></p>
<p class="MsoNormal" style="page-break-before:always"><span lang="EN" style="font-family:"Courier New""> The implementation and use of all client metadata fields is OPTIONAL, unless stated otherwise.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#002060">Likewise, it also adds:<o:p></o:p></span></p>
<pre style="page-break-before:always"><span lang="EN"> The<o:p></o:p></span></pre>
<pre style="page-break-before:always"><span lang="EN"> authorization server MUST ignore any client metadata sent by the<o:p></o:p></span></pre>
<pre style="page-break-before:always"><span lang="EN"> client that it does not understand (for instance, by silently<o:p></o:p></span></pre>
<pre style="page-break-before:always"><span lang="EN"> removing unknown metadata from the client's registration record<o:p></o:p></span></pre>
<pre style="page-break-before:always"><span lang="EN"> during processing). The authorization server MAY reject any<o:p></o:p></span></pre>
<pre style="page-break-before:always"><span lang="EN"> requested client metadata values by replacing requested values with<o:p></o:p></span></pre>
<pre style="page-break-before:always"><span lang="EN"> suitable defaults as described in <a href="https://tools.ietf.org/html/rfc7591#section-3.2.1">Section 3.2.1</a> or by returning an<o:p></o:p></span></pre>
<pre style="page-break-before:always"><span lang="EN"> error response as described in <a href="https://tools.ietf.org/html/rfc7591#section-3.2.2">Section 3.2.2</a>.<o:p></o:p></span></pre>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#002060"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#002060">Therefore, the RP can’t expect that either OpenID Connect Dynamic Registration implementations or RFC 7591 implementations will process any “scope” requests.
In either case, the RP needs to be prepared to proceed without server support for this optional RFC 7591 feature.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#002060"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#002060"> -- Mike<o:p></o:p></span></p>
<p class="MsoNormal"><a name="_MailEndCompose"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#002060"><o:p> </o:p></span></a></p>
<span style="mso-bookmark:_MailEndCompose"></span>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Openid-specs-ab [mailto:openid-specs-ab-bounces@lists.openid.net]
<b>On Behalf Of </b>Justin Richer via Openid-specs-ab<br>
<b>Sent:</b> Thursday, October 13, 2016 1:28 PM<br>
<b>To:</b> Phil Hunt <phil.hunt@oracle.com><br>
<b>Cc:</b> openid-specs-ab@lists.openid.net Ab <openid-specs-ab@lists.openid.net><br>
<b>Subject:</b> Re: [Openid-specs-ab] Interaction between OIDC Registration and RFC7591<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I agree that a default scope should be allowed, but the server implementation in question requires all clients to send scopes at all times. This confuses our client code, which depends on the registration response to figure out which scopes
it’s allowed to use. I suppose we could special-case this but it feels odd for the client to effectively override an AS decision. <o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> — Justin<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">On Oct 13, 2016, at 10:49 AM, Phil Hunt <<a href="mailto:phil.hunt@oracle.com">phil.hunt@oracle.com</a>> wrote:<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">From a strict read of the specs, I would infer the opposite logic. If the scope *was* accepted a registration, that means the client does *not* need to provide it at authorization time as it becomes the default.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">If scope was not accepted, it simply means defaulting not supported and the client should authorize as normal. <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Even if you disagree on this, the client should always be able to specify a scope regardless - the AS is always free to reject again.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal">Phil<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">@independentid<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><a href="http://www.independentid.com/">www.independentid.com</a><o:p></o:p></p>
</div>
</div>
</div>
</div>
<p class="MsoNormal"><a href="mailto:phil.hunt@oracle.com">phil.hunt@oracle.com</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><o:p> </o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">On Oct 13, 2016, at 7:51 AM, Justin Richer via Openid-specs-ab <<a href="mailto:openid-specs-ab@lists.openid.net">openid-specs-ab@lists.openid.net</a>> wrote:<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">We've come across an interesting interaction between related specs.<br>
<br>
Our client software requests a "scope" value as part of its client metadata, as defined in RFC7591. The OIDC Registration spec does not define this metadata value, but of course allows it as an extension. Our server accepts this value as well.<br>
<br>
We're testing against a server implementation that ignores the incoming "scope" metadata request entirely, since it's not explicitly listed in the OIDC Registration specification. Part of this ignoring process is that the server returns a registration object
back to the client that omits the "scope" value. Our client, following the advice in RFC7591 and the OIDC Registration spec both, takes this response from the server to mean that it doesn't have a registered scope set with the server. This consequently causes
our client to not send a "scope" value in the authorization request, which causes the server to fail because the "scope" is required.<br>
<br>
I think the right solution to this is to revise the OIDC Registration specification to be a normative extension of RFC7591/RFC7592, as has been discussed previously on this list and, to my recollection, generally agreed on but not acted on yet. Software statements
and other enhancements that are in RFC7591 would also be available as options without further effort.<br>
<br>
In practice, most implementations that I've seen already mix the two specifications. This is the intended effect of having wire compatibility, of course. Changing the spec would align it better with reality, and help avoid cases like this one where strict interpretation
leads to lack of interoperability.<br>
<br>
-- Justin<br>
<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">http://lists.openid.net/mailman/listinfo/openid-specs-ab</a><o:p></o:p></p>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</body>
</html>