Re: [OAUTH-WG] defining new response types

Paul Tarjan <pt@fb.com> Wed, 13 July 2011 03:23 UTC

Return-Path: <pt@fb.com>
X-Original-To: oauth@ietfa.amsl.com
Delivered-To: oauth@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D25E511E80F5 for <oauth@ietfa.amsl.com>; Tue, 12 Jul 2011 20:23:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.665
X-Spam-Level:
X-Spam-Status: No, score=-1.665 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, IP_NOT_FRIENDLY=0.334, J_CHICKENPOX_45=0.6]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tv94oymH3UP5 for <oauth@ietfa.amsl.com>; Tue, 12 Jul 2011 20:23:44 -0700 (PDT)
Received: from mx0a-00082601.pphosted.com (mx0b-00082601.pphosted.com [67.231.153.30]) by ietfa.amsl.com (Postfix) with ESMTP id DDCDF11E80F4 for <oauth@ietf.org>; Tue, 12 Jul 2011 20:23:43 -0700 (PDT)
Received: from pps.filterd (m0004003 [127.0.0.1]) by mx0b-00082601.pphosted.com (8.14.4/8.14.4) with SMTP id p6D3JOE5011279 for <oauth@ietf.org>; Tue, 12 Jul 2011 20:23:43 -0700
Received: from mail.thefacebook.com (corpout1.snc1.tfbnw.net [66.220.144.38]) by mx0b-00082601.pphosted.com with ESMTP id xh2bg04g7-1 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT) for <oauth@ietf.org>; Tue, 12 Jul 2011 20:23:43 -0700
Received: from SC-MBX02-4.TheFacebook.com ([fe80::e1f0:42de:c867:1385]) by sc-hub04.TheFacebook.com ([192.168.18.212]) with mapi id 14.01.0289.001; Tue, 12 Jul 2011 20:23:38 -0700
From: Paul Tarjan <pt@fb.com>
To: OAuth WG <oauth@ietf.org>
Thread-Topic: [OAUTH-WG] defining new response types
Thread-Index: AQHMQDAchvzHHdYYAUSn3drhiYopvpToYWCAgAEOdYCAAAMvgIAAAgsAgAAFHICAAANZAIAAHPAAgAAA9ID///y5gA==
Date: Wed, 13 Jul 2011 03:23:38 +0000
Message-ID: <CA425D66.224EB%pt@fb.com>
In-Reply-To: <90C41DD21FB7C64BB94121FBBC2E7234501D4A0611@P3PW5EX1MB01.EX1.SECURESERVER.NET>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/14.2.0.101115
x-originating-ip: [192.168.18.252]
Content-Type: text/plain; charset="us-ascii"
Content-ID: <2EA609BE7FDEF248A2E7866F01550FD6@fb.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: Re: [OAUTH-WG] defining new response types
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: OAUTH WG <oauth.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/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, 13 Jul 2011 03:23:44 -0000

I like splitting on space like scopes. But I'm fine with registering all
possible compositions that make sense, if you prefer.


As I posted to the group about a month ago, we are planning on supporting

response_type=none
response_type=code
response_type=token
response_type=signed_request token
response_type=token signed_request
(and maybe "code token"/"token code")

We already have support for response_type=none and the signed_request one
is a few weeks out.

Paul


On 7/12/11 1:35 PM, "Eran Hammer-Lahav" <eran@hueniverse.com> wrote:

>I will withdraw my objections to the change (parsing the response_type
>string) if enough support is present. If you care about it, please speak
>out now.
>
>EHL
>
>> -----Original Message-----
>> From: oauth-bounces@ietf.org [mailto:oauth-bounces@ietf.org] On Behalf
>> Of Mike Jones
>> Sent: Tuesday, July 12, 2011 1:32 PM
>> To: OAuth WG
>> Subject: Re: [OAUTH-WG] defining new response types
>> 
>> As a data point motivating this functionality, the OpenID Connect Core
>>spec
>> currently includes:
>> 
>>    response_type
>>       A space delimited, case sensitive list of string
>>       values (Pending OAuth 2.0 changes).  Acceptable values include
>>       "code", "token", and "none".  The value MUST include "code" for
>>       requesting an Authorization Code, "token" for requesting an Access
>>       Token, and "none" if no response is needed.
>> 
>> The OpenID Connect Session Management spec also defines an "id_token"
>> response_type.  Combinations of these (other than "none") are meaningful
>> and used.
>> 
>> The syntax for this can change, but this functionality is very
>>important to
>> OpenID Connect as it is currently written.
>> 
>>                 Thanks,
>>                 -- Mike
>> 
>> -----Original Message-----
>> From: oauth-bounces@ietf.org [mailto:oauth-bounces@ietf.org] On Behalf
>> Of Breno de Medeiros
>> Sent: Tuesday, July 12, 2011 11:48 AM
>> To: Eran Hammer-Lahav
>> Cc: OAuth WG
>> Subject: Re: [OAUTH-WG] defining new response types
>> 
>> On Tue, Jul 12, 2011 at 11:36, Eran Hammer-Lahav <eran@hueniverse.com>
>> wrote:
>> > That's pretty farfetched. In previous versions we had 'code_and_token'
>> which was a composite value but without any special characters. If
>>people
>> think that we need to force such values to avoid this claimed developer
>> confusion, let's drop the + and be done.
>> >
>> 
>> Maybe far fetched, but it's already available in our production
>>environment --
>> we had implemented the code_and_token approach earlier (though not
>> documented it) but abandoned that route as we thought the exponential
>> explosion was harmful when we started contemplating adding new types
>> and allowing various combinations of them.
>> 
>> > The only requirement I was asked to cover was to allow response type
>> extensibility. If there is WG consensus to also support the requirement
>>of
>> composite values using any order, we can discuss that.
>> 
>> Let's.
>> 
>> >
>> > In addition, defining a parsing method adds a significant amount of
>>new
>> complexity beyond just splitting the string:
>> >
>> > * It allows for composite values that make no sense (since anything
>>goes,
>> composite values are not registered, just the components).
>> > * Additional error codes are needed to indicate bad format,
>>unsupported
>> values (specify which one), unsupported combinations, etc.
>> > * Developers lose the benefit of a simple registry with every possible
>> combination they may choose.
>> >
>> > So the two questions are:
>> >
>> > 1. Do you find the + proposal as defined in -18 to be useful or
>>confusing?
>> 
>> It is ugly.
>> 
>> > 2. Should the protocol support dynamic composite values with the added
>> complexity (breaking change)?
>> 
>> That's my preference.
>> 
>> >
>> > EHL
>> >
>> >> -----Original Message-----
>> >> From: Breno de Medeiros [mailto:breno@google.com]
>> >> Sent: Tuesday, July 12, 2011 11:18 AM
>> >> To: Eran Hammer-Lahav
>> >> Cc: Marius Scurtescu; OAuth WG
>> >> Subject: Re: [OAUTH-WG] defining new response types
>> >>
>> >> On Tue, Jul 12, 2011 at 11:10, Eran Hammer-Lahav
>> >> <eran@hueniverse.com>
>> >> wrote:
>> >> > Requiring parsing of the response type parameter is a big change at
>> >> > this
>> >> point. Even if it is a decent idea, I'm against it for the sole
>> >> reason that I don't want to introduce such a change - we're done.
>> >> >
>> >> > The + character makes reading values easier because it give
>> >> > composites of
>> >> existing, individually defined values, a special meaning to *people*,
>> >> but it does not change any existing code or adds any work. Servers
>> >> will still perform simple string comparison. Parsing a list of
>>values is
>> unnecessary complexity.
>> >> Developers can learn to put values in their expected order (since
>> >> they are all going to cut-n-paste anyway).
>> >>
>> >> I disagree. I believe that servers will either not support the
>> >> composite types at all, or will allow developers to enter it into any
>> >> order to avoid developer pain.
>> >>
>> >> Also, developers will _not_ cut-and-paste. They will expect the fact
>> >> that order is not meaningful by interacting with providers that don't
>> >> perform exact string matching and then have interoperability issues
>> >> with compliant implementations.
>> >>
>> >> >
>> >> > I rather drop the special character then add parsing, but I think
>> >> > it is a useful
>> >> *convention*.
>> >> >
>> >> > Do people want to keep it or drop it?
>> >> >
>> >> > EHL
>> >> >
>> >> >
>> >> >> -----Original Message-----
>> >> >> From: Breno de Medeiros [mailto:breno@google.com]
>> >> >> Sent: Tuesday, July 12, 2011 10:59 AM
>> >> >> To: Eran Hammer-Lahav
>> >> >> Cc: Marius Scurtescu; OAuth WG
>> >> >> Subject: Re: [OAUTH-WG] defining new response types
>> >> >>
>> >> >> Imposing order and exact string matching on response_type's while
>> >> >> simultaneously supporting a special character '+' and introducing
>> >> >> the concept of composite response_type is a poor compromise,
>> IMNSHO.
>> >> What
>> >> >> is the rationale to fear allowing multiple-valued response_type as
>> >> >> we have for other parameters in the spec?
>> >> >>
>> >> >> On Mon, Jul 11, 2011 at 18:51, Eran Hammer-Lahav
>> >> >> <eran@hueniverse.com>
>> >> >> wrote:
>> >> >> > As for the plus encoding we can choose another char or give an
>> >> example.
>> >> >> >
>> >> >> > On Jul 11, 2011, at 18:07, "Marius Scurtescu"
>> >> >> > <mscurtescu@google.com>
>> >> >> wrote:
>> >> >> >
>> >> >> >> If I read section 8.4 correctly it seems that new response
>> >> >> >> types can be defined but composite values must be registered
>> explicitly.
>> >> >> >>
>> >> >> >> I don't think this approach scales too well. OpenID Connect for
>> >> >> >> example is adding a new response type: id_token.
>> >> >> >>
>> >> >> >> id_token can be combined with either code or token and
>> >> >> >> potentially with both of them, the following combinations must
>> >> >> >> be registered as a
>> >> >> >> result:
>> >> >> >> code+id_token
>> >> >> >> token+id_token
>> >> >> >> code+token+id_token
>> >> >> >>
>> >> >> >> and this assumes that code+token is already registered.
>> >> >> >>
>> >> >> >> I think it makes more sense to define response_type as a space
>> >> >> >> separated list of items, where each item can be individually
>> >> >> >> registered. I do realize that this complicates things quite a
>> >> >> >> bit (not we have to define and deal with both composite
>> >> >> >> response_type and the individual items).
>> >> >> >>
>> >> >> >> As a side note, using + as separator could cause lots of
>>problems.
>> >> >> >> If people naively type "code+toke" it will be decoded as "code
>> token".
>> >> >> >> No one will remember the hex code for +.
>> >> >> >>
>> >> >> >> Marius
>> >> >> >> _______________________________________________
>> >> >> >> OAuth mailing list
>> >> >> >> OAuth@ietf.org
>> >> >> >> https://www.ietf.org/mailman/listinfo/oauth
>> >> >> >
>> >> >>
>> >> >>
>> >> >>
>> >> >> --
>> >> >> --Breno
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> --Breno
>> >
>> 
>> 
>> 
>> --
>> --Breno
>> _______________________________________________
>> OAuth mailing list
>> OAuth@ietf.org
>> https://www.ietf.org/mailman/listinfo/oauth
>> 
>> _______________________________________________
>> OAuth mailing list
>> OAuth@ietf.org
>> https://www.ietf.org/mailman/listinfo/oauth
>_______________________________________________
>OAuth mailing list
>OAuth@ietf.org
>https://www.ietf.org/mailman/listinfo/oauth