<div dir="ltr">I know of at least one other AS/OP implementation that handles parameters like "prompt" in a similar fashion. <br><div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Jan 2, 2016 at 1:56 PM, Justin Richer <span dir="ltr"><<a href="mailto:jricher@mit.edu" target="_blank">jricher@mit.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">John, you’re technically correct that it’s “OAuth not OIDC” but you’re ignoring the fact that most OIDC implementations are built upon standalone OAuth systems which continue to offer basic OAuth functionality as well. In our implementation at least, the processing of the “prompt” parameter is handled the same way for all requests regardless of whether or not the “openid” scope was used. I doubt our method of processing these parameters is uncommon.<br>
<br>
But this still isn’t a security problem. What “prompt=none” means is that the AS can only say “yes” or “you need to ask the user”. The cases where it can say “yes” are limited to those where the user would not have been prompted anyway. Namely, the user already has authorized the client for the scopes being requested, or the client is whitelisted, or some other consideration like that. If there’s anything that would cause user interaction, including a login, then the response returns with “you need to go ask the user”. This is fine for both OIDC and OAuth transactions.<br>
<br>
What wouldn’t be fine is if the server needed to display something to the user, even a notification, in the normal case but it turned off that functionality for the “prompt=none” request. That’s not what’s being asked for in the protocol, though.<br>
<span class=""><font color="#888888"><br>
 — Justin<br>
</font></span><div class=""><div class="h5"><br>
<br>
> On Jan 1, 2016, at 2:02 PM, John Bradley <<a href="mailto:ve7jtb@ve7jtb.com">ve7jtb@ve7jtb.com</a>> wrote:<br>
><br>
> If the request doesn’t contain the openid scope then it is not OpenID Connect, it is just OAuth.<br>
><br>
> So there is no case where a client could do connect and not request any scopes.<br>
><br>
> Many sites remember authorization grants the user has consented to for a particular site, and don’t re-prompt the user for consent each time.<br>
><br>
> If a request with prompt=none arrives and the client is asking for scopes that the user previously consented to including checking remember this in the UI, then<br>
> a code with those grants can be returned.<br>
><br>
> In the case of OAuth asking for no scopes then the server would generate an error unless it is configured with some default scope.<br>
><br>
> I guess you could generate code and AT with no scopes attached but that would be sort of strange.<br>
><br>
> John B.<br>
><br>
><br>
><br>
>> On Jan 1, 2016, at 12:09 PM, Takahiko Kawasaki <<a href="mailto:daru.tk@gmail.com">daru.tk@gmail.com</a>> wrote:<br>
>><br>
>> Dear All,<br>
>><br>
>> I have a question about prompt=none which is defined in "OpenID Connect Core 1.0, 3.1.2.1. Authentication Request".<br>
>><br>
>> The description in the specification says as follows:<br>
>><br>
>>    The Authorization Server MUST NOT display any authentication or<br>
>>    consent user interface pages. An error is returned if an End-User<br>
>>    is not already authenticated or the Client does not have pre-<br>
>>    configured consent for the requested Claims or does not fulfill<br>
>>    other conditions for processing the request. The error code will<br>
>>    typically be login_required, interaction_required, or another<br>
>>    code defined in Section 3.1.2.6. This can be used as a method to<br>
>>    check for existing authentication and/or consent.<br>
>><br>
>> If an End-User is already authenticated and the Client does not request any claim (e.g. does not request an ID token), is it allowed to issue an authorization code and/or an access token? For example, if a request comes with prompt=none and response_type=code (and other necessary parameters), is it allowed to issue an authorization code without any interaction with the End-User? Doesn't this cause a security issue? What happens if an End-User who has already logged in a certain SNS and he loads a malicious HTML that makes a request to the SNS with prompt=none and response_type=code behind the scenes without letting him know the request?<br>
>><br>
>> What use case justifies prompt=none? It is difficult for my poor imagination to make up a secure use case of prompt=none (except the case of response_type=none) unless there are undocumented conditions (e.g. an out-of-band consent prior to a request). What were discussed in WG about prompt=none?<br>
>><br>
>> If an implementation of authorization server does not provide any means for End-Users to set "pre-configured consent" (3.1.2.1. Authentication Request) for claims and does not provide other out-of-band consent for issuing authorization codes and access tokens, I guess that the implementation cannot help but reject any request with prompt=none unless it comes with response_type=none. What do you think?<br>
>><br>
>><br>
>> Best Regards,<br>
>> Takahiko Kawasaki<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" rel="noreferrer" target="_blank">http://lists.openid.net/mailman/listinfo/openid-specs-ab</a><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" rel="noreferrer" target="_blank">http://lists.openid.net/mailman/listinfo/openid-specs-ab</a><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" rel="noreferrer" target="_blank">http://lists.openid.net/mailman/listinfo/openid-specs-ab</a><br>
</div></div></blockquote></div><br></div></div></div>