Re: [OAUTH-WG] Fw: Breaking change in OAuth 2.0 rev. 23

Mike Jones <Michael.Jones@microsoft.com> Wed, 14 March 2012 18:42 UTC

Return-Path: <Michael.Jones@microsoft.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 3BC5F21F8647 for <oauth@ietfa.amsl.com>; Wed, 14 Mar 2012 11:42:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.562
X-Spam-Level:
X-Spam-Status: No, score=-3.562 tagged_above=-999 required=5 tests=[AWL=-0.563, BAYES_00=-2.599, J_CHICKENPOX_45=0.6, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id G0-QaP-hsQcg for <oauth@ietfa.amsl.com>; Wed, 14 Mar 2012 11:42:20 -0700 (PDT)
Received: from ch1outboundpool.messaging.microsoft.com (ch1ehsobe006.messaging.microsoft.com [216.32.181.186]) by ietfa.amsl.com (Postfix) with ESMTP id F123C21F8540 for <oauth@ietf.org>; Wed, 14 Mar 2012 11:42:19 -0700 (PDT)
Received: from mail164-ch1-R.bigfish.com (10.43.68.248) by CH1EHSOBE011.bigfish.com (10.43.70.61) with Microsoft SMTP Server id 14.1.225.23; Wed, 14 Mar 2012 18:42:20 +0000
Received: from mail164-ch1 (localhost [127.0.0.1]) by mail164-ch1-R.bigfish.com (Postfix) with ESMTP id C162130061A; Wed, 14 Mar 2012 18:42:20 +0000 (UTC)
X-SpamScore: -41
X-BigFish: VS-41(zz9371I1803M542M1432N98dK4015Izz1202hzz8275ch1033IL8275bh8275dhz2fh2a8h668h839hd25h)
X-Forefront-Antispam-Report: CIP:131.107.125.8; KIP:(null); UIP:(null); IPV:NLI; H:TK5EX14HUBC107.redmond.corp.microsoft.com; RD:none; EFVD:NLI
Received-SPF: pass (mail164-ch1: domain of microsoft.com designates 131.107.125.8 as permitted sender) client-ip=131.107.125.8; envelope-from=Michael.Jones@microsoft.com; helo=TK5EX14HUBC107.redmond.corp.microsoft.com ; icrosoft.com ;
Received: from mail164-ch1 (localhost.localdomain [127.0.0.1]) by mail164-ch1 (MessageSwitch) id 1331750538765481_4981; Wed, 14 Mar 2012 18:42:18 +0000 (UTC)
Received: from CH1EHSMHS023.bigfish.com (snatpool3.int.messaging.microsoft.com [10.43.68.228]) by mail164-ch1.bigfish.com (Postfix) with ESMTP id B4B5A2C0294; Wed, 14 Mar 2012 18:42:18 +0000 (UTC)
Received: from TK5EX14HUBC107.redmond.corp.microsoft.com (131.107.125.8) by CH1EHSMHS023.bigfish.com (10.43.70.23) with Microsoft SMTP Server (TLS) id 14.1.225.23; Wed, 14 Mar 2012 18:42:17 +0000
Received: from TK5EX14MBXC284.redmond.corp.microsoft.com ([169.254.1.237]) by TK5EX14HUBC107.redmond.corp.microsoft.com ([157.54.80.67]) with mapi id 14.02.0283.004; Wed, 14 Mar 2012 18:42:03 +0000
From: Mike Jones <Michael.Jones@microsoft.com>
To: Eran Hammer <eran@hueniverse.com>, Marius Scurtescu <mscurtescu@google.com>
Thread-Topic: [OAUTH-WG] Fw: Breaking change in OAuth 2.0 rev. 23
Thread-Index: AQHNAgMKtRI52qb7tE6+kmeeW24qnZZqBiQAgAACNICAAA7JAIAABA0AgAADMYCAAACtcA==
Date: Wed, 14 Mar 2012 18:42:03 +0000
Message-ID: <4E1F6AAD24975D4BA5B16804296739436641D4E3@TK5EX14MBXC284.redmond.corp.microsoft.com>
References: <CAGdjJpLBCyvg21zuGi1jWK58hkDL4Ff7-xdJ0dy0WZpvNPPrKA@mail.gmail.com> <90C41DD21FB7C64BB94121FBBC2E723453AFF08903@P3PW5EX1MB01.EX1.SECURESERVER.NET> <CAAJ++qE3KcFgJey7xXzW8dkTPzvtcu_ke7abkOEMS4hwi93yEg@mail.gmail.com> <90C41DD21FB7C64BB94121FBBC2E723453AFF08919@P3PW5EX1MB01.EX1.SECURESERVER.NET> <CAGdjJpK6dMzSyoxEb_2rQcB-anXzvWaW-PLdYTZW_jECieBSMg@mail.gmail.com> <90C41DD21FB7C64BB94121FBBC2E723453AFF08932@P3PW5EX1MB01.EX1.SECURESERVER.NET>
In-Reply-To: <90C41DD21FB7C64BB94121FBBC2E723453AFF08932@P3PW5EX1MB01.EX1.SECURESERVER.NET>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [157.54.51.37]
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
Cc: Breno de Medeiros <breno@google.com>, OAuth WG <oauth@ietf.org>
Subject: Re: [OAUTH-WG] Fw: Breaking change in OAuth 2.0 rev. 23
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, 14 Mar 2012 18:42:21 -0000

All of Marius, Breno, Nat, myself, and several others on the OpenID AB list have read it this way.  I believe that either this change needs to be removed (my preference!) or a sentence needs to be explicitly added that states that "The same client_id MAY be used with both the code and token response types"  to explicitly rule out this apparently common misinterpretation of the new text.

Otherwise, I agree that it will continue to be perceived by most people as a breaking change.

				-- Mike

P.S.  When you make this change, you should also correct the typo in this sentence: "The authorization server MAY provider tools to manage such complex clients through a single administration interface" by changing "provider" to "provide".

-----Original Message-----
From: oauth-bounces@ietf.org [mailto:oauth-bounces@ietf.org] On Behalf Of Eran Hammer
Sent: Wednesday, March 14, 2012 11:35 AM
To: Marius Scurtescu
Cc: Breno de Medeiros; OAuth WG
Subject: Re: [OAUTH-WG] Fw: Breaking change in OAuth 2.0 rev. 23

You are not reading it correctly.

This is a *registration* requirement, meaning, the client has to inform the server of the different components. If the server doesn't care, it can issue one client identifier capable of both.

This protocol assume the authorization server asked the client for its type and based on that made decisions about the credentials issued and the security properties of the client. It is also triggers a whole list of normative language handling the different client types throughout the specification.

EH

> -----Original Message-----
> From: Marius Scurtescu [mailto:mscurtescu@google.com]
> Sent: Wednesday, March 14, 2012 11:24 AM
> To: Eran Hammer
> Cc: Breno de Medeiros; OAuth WG
> Subject: Re: [OAUTH-WG] Fw: Breaking change in OAuth 2.0 rev. 23
> 
> Before v23 a web server client could use either response_type=code or 
> response_type=token, with the same client id. No security issues and 
> this was supported for quite a while.
> 
> With this latest change, if I am reading it correctly, this is not 
> possible anymore. The client has to use two different client ids. It 
> is very late in the game to introduce changes like this, unless there 
> is an extremely good reason.
> 
> Marius
> 
> 
> 
> On Wed, Mar 14, 2012 at 11:09 AM, Eran Hammer <eran@hueniverse.com>
> wrote:
> > If the server locks a client type to a particular grant type (or 
> > response type)
> then this is true, you don't need to specify the response type in the request.
> But this is based on a very limited set of potential response types. I 
> can envision a code response type with different response syntax but 
> same security properties, and same goes for token.
> >
> > In the past, a cookie response type was proposed to use the cookie
> headers in the server response instead of returning a token. The 
> security properties of such a flow are very similar to those of token 
> (from OAuth's perspective). This means a public client would be able 
> to request either token or cookie response type.
> >
> > Also as noted, servers are allowed to provide different registration 
> > options
> to clients, as long as the client identifies each discrete component. 
> There is no requirement or even suggestion that the server issues 
> different client identifiers to such complex clients. I think this is 
> another point missed in your reading of the text.
> >
> > Hope this clarifies it.
> >
> > EH
> >
> >> -----Original Message-----
> >> From: Breno de Medeiros [mailto:breno@google.com]
> >> Sent: Wednesday, March 14, 2012 10:16 AM
> >> To: Eran Hammer
> >> Cc: Marius Scurtescu; OAuth WG
> >> Subject: Re: [OAUTH-WG] Fw: Breaking change in OAuth 2.0 rev. 23
> >>
> >> Can you explain to me why response_type is necessary at all after 
> >> this change.
> >>
> >> If a javascript client (candidate for token usage) and the web 
> >> server component (candidate for code usage) cannot share 
> >> registration (since they are different components with different 
> >> security contexts of the same
> >> application) then there is no need to specify response_type. The 
> >> server can infer the response type from the client and its security context.
> >>
> >> My objection has nothing to do with code+token flow. I think the 
> >> change makes response_types irrelevant and is essentially a new
> protocol.
> >>
> >> As far as I understand it, the introduction of different code and 
> >> token flows was precisely to allow different security-context 
> >> components of the same client to securely operate under the same 
> >> registration. I think if we change this we need to specify a lot 
> >> more behavior, such as how a client can request authorization on 
> >> behalf of
> several components simultaneously.
> >>
> >> On Wed, Mar 14, 2012 at 10:08, Eran Hammer <eran@hueniverse.com>
> >> wrote:
> >> > This was already raised and addressed on this list last week.
> >> >
> >> > When someone defines and registers code+token, that specification 
> >> > must
> >> define how such a client is registered in light of the text below.
> >> This might mean defining a new client type, choosing the 
> >> confidential client type with other normative text limiting the use 
> >> of the secret in the public component, etc.
> >> >
> >> > IOW, this section doesn't break anything because there is nothing 
> >> > else
> >> defined to break. There is no way to avoid explicitly defining 
> >> these requirements for a code+token response type, or any other new 
> >> response type for that matter. The text below is required to ensure 
> >> that the authorization server can properly enforce the rest of the 
> >> normative security language in the specification.
> >> >
> >> > EH
> >> >
> >> >
> >> >> -----Original Message-----
> >> >> From: oauth-bounces@ietf.org [mailto:oauth-bounces@ietf.org] On 
> >> >> Behalf Of Marius Scurtescu
> >> >> Sent: Wednesday, March 14, 2012 9:53 AM
> >> >> To: OAuth WG
> >> >> Cc: Breno de Medeiros
> >> >> Subject: [OAUTH-WG] Fw: Breaking change in OAuth 2.0 rev. 23
> >> >>
> >> >> Hi,
> >> >>
> >> >> Nat Sakimura started a thread on the OpenID Connect list about a 
> >> >> breaking change introduced by rev 2.3
> >> >>
> >> >> The paragraph in question is in section 2.1:
> >> >>
> >> >> "A client application consisting of multiple components, each 
> >> >> with its own client type (e.g. a distributed client with both a 
> >> >> confidential server-based component and a public browser-based 
> >> >> component), MUST register each component separately as a 
> >> >> different client to ensure proper handling by the authorization 
> >> >> server.  The authorization server MAY provider tools to manage 
> >> >> such complex clients
> >> through a single administration interface."
> >> >>
> >> >> http://tools.ietf.org/rfcdiff?difftype=--hwdiff&url2=draft-ietf-
> >> >> oa
> >> >> uth
> >> >> -v2-
> >> >> 23.txt
> >> >>
> >> >> You can see the thread here:
> >> >> http://lists.openid.net/pipermail/openid-specs-ab/Week-of-Mon-
> >> >> 20120312/001672.html
> >> >>
> >> >> This paragraph basically prevents response_type=code+token which 
> >> >> is already implemented by many providers and also relied on by 
> >> >> OpenID Connect.
> >> >>
> >> >> The intent, I think, was to prevent clients from embedding the 
> >> >> client secret meant for a confidential client into a public client.
> >> >> JavaScript based clients using the token flow do not need the 
> >> >> client secret, so this concern does not apply.
> >> >>
> >> >> Thoughts?
> >> >>
> >> >> Thanks,
> >> >> Marius
> >> >> _______________________________________________
> >> >> OAuth mailing list
> >> >> OAuth@ietf.org
> >> >> https://www.ietf.org/mailman/listinfo/oauth
> >>
> >>
> >>
> >> --
> >> --Breno
_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth