Re: [OAUTH-WG] user-agent flow needs a rewrite

Naitik Shah <n@daaku.org> Wed, 14 July 2010 05:58 UTC

Return-Path: <naitiks@gmail.com>
X-Original-To: oauth@core3.amsl.com
Delivered-To: oauth@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 8ECE03A680A for <oauth@core3.amsl.com>; Tue, 13 Jul 2010 22:58:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.976
X-Spam-Level:
X-Spam-Status: No, score=-1.976 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id V+T3R9W-Q0RR for <oauth@core3.amsl.com>; Tue, 13 Jul 2010 22:58:55 -0700 (PDT)
Received: from mail-px0-f172.google.com (mail-px0-f172.google.com [209.85.212.172]) by core3.amsl.com (Postfix) with ESMTP id 466D23A67FB for <oauth@ietf.org>; Tue, 13 Jul 2010 22:58:55 -0700 (PDT)
Received: by pxi20 with SMTP id 20so3106868pxi.31 for <oauth@ietf.org>; Tue, 13 Jul 2010 22:59:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:sender:received :in-reply-to:references:from:date:x-google-sender-auth:message-id :subject:to:cc:content-type; bh=hzatA2lvfLO28WQ8G2k14odr7IJYz9nb0vRTnqXyr10=; b=C/rB4cj6P+8GawxpcMSiAFw475rdg07vdM0cB5G+gGAq7L9JzOKkOHOjx76L/3dVp8 b97TOW0VYPwD81vI6KJlPxCPe0nQuNKF++5Pyso/Sdngy94oxciv2O/rhIz0TYO5nfAk IrZtQLDpYIVqJVZtT+SsB/xA/ueQGGCvlQvK4=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:cc:content-type; b=Aa9e9IFD23j3ChpT3xBaPDgZU5UvM1/v0apKbq3Oms52dW6minDfdIdS1GDABpyU4K O3fb0soXaCNiNY6BTLH5A7elpRCKvsdOvro08w4Ev1xb/UASC/zVpcgNZokFQn4sf6K2 Mc+psoDY7Nq8t5kIky53YKORqBTncYHdAsuII=
Received: by 10.142.140.18 with SMTP id n18mr19948265wfd.349.1279087142322; Tue, 13 Jul 2010 22:59:02 -0700 (PDT)
MIME-Version: 1.0
Sender: naitiks@gmail.com
Received: by 10.142.203.12 with HTTP; Tue, 13 Jul 2010 22:58:42 -0700 (PDT)
In-Reply-To: <C8623017.37208%eran@hueniverse.com>
References: <AANLkTin98uuCmGfr-X0A7JrN1LfUwKlb2RF3FYhJTDev@mail.gmail.com> <C8623017.37208%eran@hueniverse.com>
From: Naitik Shah <n@daaku.org>
Date: Tue, 13 Jul 2010 22:58:42 -0700
X-Google-Sender-Auth: TZWxybxivQXgOWBwJkyWlMO96LI
Message-ID: <AANLkTikfk5kBhNazxH4H0gaSEKaQKFmXU0cCuPVJPMjF@mail.gmail.com>
To: Eran Hammer-Lahav <eran@hueniverse.com>
Content-Type: multipart/alternative; boundary="000e0cd18572c14435048b52aed2"
Cc: OAuth WG <oauth@ietf.org>
Subject: Re: [OAUTH-WG] user-agent flow needs a rewrite
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: OAUTH WG <oauth.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/oauth>, <mailto:oauth-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/oauth>
List-Post: <mailto:oauth@ietf.org>
List-Help: <mailto:oauth-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/oauth>, <mailto:oauth-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 14 Jul 2010 05:58:56 -0000

Thanks! That sounds great.

On Tue, Jul 13, 2010 at 3:00 PM, Eran Hammer-Lahav <eran@hueniverse.com>wrote:

> This is clearly a third flow - hybrid (of user-agent and web-server) - and
> not just a variant of the user-agent flow. It should be presented with its
> own flow diagram and description. I also think the user-agent and
> web-server
> flow names are misleading. They need to be replaced with more descriptive
> names. Something like (I don¹t like these, just trying to demonstrate):
>
> Web-server --> 2 step flow (get code, get token)
> User-agent --> direct flow (get token)
> Hybrid --> hybrid flow (get code and token, get token)
>
> In an attempt to accommodate Brian's request for more concentrated flow
> descriptions, I am working on coming up with come middle ground between -05
> and -10.
>
> ----
>
> As for the specification of the end-user authorization endpoint:
>
> Please answer this based on actual use cases. When returning parameters
> using the redirection URI call, which of these combinations make sense?
>
>         | Code | Token | Code & Token
> ---------+------+-------+--------------
> Fragment |  a   |   1   |   3
> Query    |  2   |   b   |   c
> Split*   | n/a  |  n/a  |   d
>
> * token in fragment, code in query
>
> Known use cases:
>
> 1 - current user-agent flow
> 2 - current web-server flow
> 3 - as described by Brian and Naitik
>
> Questionable use cases:
>
> a -
> b -
> c -
> d - current -10 code-and-token proposal
>
> EHL
>
>
> On 7/13/10 2:27 PM, "Naitik Shah" <n@daaku.org> wrote:
>
> > On Tue, Jul 13, 2010 at 2:06 PM, Eran Hammer-Lahav <eran@hueniverse.com>
> > wrote:
> >> This looks reasonable, however, I am no longer see the value in the
> hybrid
> >> mode of token and code. If the code is passed in the fragment, the
> client has
> >> to pass it to the server. If that is the case, why can¹t the server
> reply
> >> back with the access token? Is the entire purpose just a performance
> >> optimization so the client doesn¹t have to wait for the server response
> >> before it has an access token?
> >>
> >
> > I think there are two use cases here, and they are not mutually
> exclusive.
> > Some apps are mostly just server side, and would end up doing a full page
> > refresh, and here the code in the query param would probably be
> acceptable.
> > Some apps are mostly just client side, and here the code is irrelevant
> and the
> > access token in the fragment is all that matters. But we also have
> hybrids
> > where we want the code in a cookie/JS callback, and we'll also use the
> access
> > token on the client to dynamically update the UI by accessing some
> protected
> > data (this is what the Data enabled XFBML tags do in the Facebook JS SDK
> for
> > instance). While the server can do the code to access_token exchange, it
> can't
> > return it to the JS safely if it does not support https. Even if it did,
> it
> > would mean more overhead for the developer to build an endpoint that does
> this
> > work and cooperates with a JS SDK which wants the access_token for making
> API
> > calls.
> >
> >
> > -Naitik
> >
> >
>
>