Inline.

On 2013-06-06, at 5:54 PM, Sergey Beryozkin <sberyoz...@gmail.com> wrote:

> Hi
> On 06/06/13 14:38, John Bradley wrote:
>> Perhaps it is better to say that from a security point of view a client must 
>> only be redirected back to a URI that exactly matches a pre registered 
>> redirect URI.
>> 
>> The reasons for that should be clear from Facebooks recent issues with 
>> trying to pattern match.
>> 
>> In the instance where there is exactly one registered redirect_uri and no 
>> redirect_uri is sent in the request redirecting to the registered URI is 
>> fine.
> 
> OK, I think I understand, eventually, even if a redirect_uri is not available 
> as a parameter then the single (and it has to be a single only) 
> pre-registered redirect_uri is used, so the requirement expressed in your 
> first sentence above is met.
> 
>> 
>> In code flow with a confidential client sending the redirect_uri with the 
>> code to the token endpoint helps mitigate the problem of unregistered 
>> redirect_uri,  however it leaves open possibilities for the code to be 
>> stolen.    It can't be used by an attacker to get the token, but it can be 
>> replayed at the legitimate client and relies on the AS correctly comparing 
>> the redirect_uri sent ing the authorization request to the redirect_uri sent 
>> to the token endpoint.
>> 
>> That is theoretically secure but is not something a client can verify,  it 
>> also places additional state requirements on the AS.
> 
> I'm a bit lost here, sorry. Are you talking here about might happen if a 
> client has not pre-registered redirect_uri ? If yes then the above is clear 
> (I think)

Yes.   A client that is not confidential must always register redirect_uri even 
if it is using code flow.  Otherwise anyone can use the client_id with any 
redirect_uri.
A confidential client using code flow is allowed not to have a registered 
redirect_uri as there is a check by sending the redirect_uri to the token 
endpoint. 
However I personally think that is risky as that is not as likely to be well 
tested.   So you can if both sides know what they are doing, but I wouldn't 
recommend it. 
> 
>> 
>> Note Connect always requires the rediret_uri to be sent even if there is 
>> only one redirect_uri registered.  That is for interoperability reasons.   
>> If some AS always required it as they are allowed to by the spec and some 
>> didn't require it, the client always needs to send it to work with any AS.
>> 
> Sure, that makes sense; I'm actually thinking of making it configurable for 
> us may be,
> 
> Many thanks
> 
> Sergey
>> John B.
>> 
>> On 2013-06-06, at 3:17 PM, Sergey Beryozkin <sberyoz...@gmail.com> wrote:
>> 
>>> Hi,
>>> 
>>> I'd like to clarify one thing with respect to the treatment of redirect_uri.
>>> 
>>> My understanding it is possible for a client application to pre-register a 
>>> redirect_uri but not actually specify it as a query parameter when 
>>> redirecting a user back to the Authorization service - in which case it is 
>>> that pre-registered redirect URI which AS will eventually use to redirect 
>>> the user back to.
>>> 
>>> Is it still considered to be a safe-enough approach ? If yes - then both 
>>> confidential and public(implicit) clients are OK to use it this approach of 
>>> dropping a redirect_uri during the initial user redirects ?
>>> 
>>> I'm just asking given that I recall the experts recommending that a current 
>>> redirect_uri parameter must be exactly equal to the pre-registered one.
>>> 
>>> Thanks, Sergey
>>> _______________________________________________
>>> OAuth mailing list
>>> OAuth@ietf.org
>>> https://www.ietf.org/mailman/listinfo/oauth
>> 
> 
> 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to