Re: [OAUTH-WG] Versioning

"Manger, James H" <James.H.Manger@team.telstra.com> Fri, 02 July 2010 02:21 UTC

Return-Path: <James.H.Manger@team.telstra.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 63E7F3A684F for <oauth@core3.amsl.com>; Thu, 1 Jul 2010 19:21:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.915
X-Spam-Level:
X-Spam-Status: No, score=0.915 tagged_above=-999 required=5 tests=[AWL=-0.043, BAYES_20=-0.74, HELO_EQ_AU=0.377, HOST_EQ_AU=0.327, RELAY_IS_203=0.994]
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 b1lFVTXprG5a for <oauth@core3.amsl.com>; Thu, 1 Jul 2010 19:21:10 -0700 (PDT)
Received: from ipxbno.tcif.telstra.com.au (ipxbno.tcif.telstra.com.au [203.35.82.204]) by core3.amsl.com (Postfix) with ESMTP id 32EEF3A680C for <oauth@ietf.org>; Thu, 1 Jul 2010 19:21:04 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="4.53,524,1272808800"; d="scan'208";a="5292205"
Received: from unknown (HELO ipcbni.tcif.telstra.com.au) ([10.97.216.204]) by ipobni.tcif.telstra.com.au with ESMTP; 02 Jul 2010 12:21:13 +1000
X-IronPort-AV: E=McAfee;i="5400,1158,6030"; a="4059188"
Received: from wsmsg3701.srv.dir.telstra.com ([172.49.40.169]) by ipcbni.tcif.telstra.com.au with ESMTP; 02 Jul 2010 12:21:15 +1000
Received: from WSMSG3153V.srv.dir.telstra.com ([172.49.40.159]) by WSMSG3701.srv.dir.telstra.com ([172.49.40.169]) with mapi; Fri, 2 Jul 2010 12:21:14 +1000
From: "Manger, James H" <James.H.Manger@team.telstra.com>
To: "oauth@ietf.org" <oauth@ietf.org>
Date: Fri, 02 Jul 2010 12:21:13 +1000
Thread-Topic: [OAUTH-WG] Versioning
Thread-Index: AcsZSzilmUCgY70PSRSWeKQpLs0EBgAOi+Fg
Message-ID: <255B9BB34FB7D647A506DC292726F6E11265D94789@WSMSG3153V.srv.dir.telstra.com>
References: <4C2C6D4A.5010401@cdatazone.org> <90C41DD21FB7C64BB94121FBBC2E72343B3ED4C3E6@P3PW5EX1MB01.EX1.SECURESERVER.NET> <012AB2B223CB3F4BB846962876F47217059B693B@SNV-EXVS08.ds.corp.yahoo.com> <90C41DD21FB7C64BB94121FBBC2E72343B3ED4C454@P3PW5EX1MB01.EX1.SECURESERVER.NET> <012AB2B223CB3F4BB846962876F47217059B6946@SNV-EXVS08.ds.corp.yahoo.com> <90C41DD21FB7C64BB94121FBBC2E72343B3ED4C470@P3PW5EX1MB01.EX1.SECURESERVER.NET> <AANLkTimDPJOLODIt6dwVzxJGCKApZj2eCNTx9i8XJmf6@mail.gmail.com>
In-Reply-To: <AANLkTimDPJOLODIt6dwVzxJGCKApZj2eCNTx9i8XJmf6@mail.gmail.com>
Accept-Language: en-US, en-AU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US, en-AU
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: Re: [OAUTH-WG] Versioning
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: Fri, 02 Jul 2010 02:21:13 -0000

Eran said:
> Why is a version better than a new scheme name?

YAY!
Using a new scheme name if/when we aren't using a bearer token is a great idea.

Today OAuth2 only defines how to access a protected resource with a bearer token [the "Token" scheme in section 5]. Assume this is standardized soon, then in 3 years time a MAC-based mechanism is defined. There is no way it would reuse the existing "Token" scheme by giving it totally different semantics -- in much the same way no one considered reusing the "BASIC" scheme to hold a nonce/timestamp/alg/signature. A new mechanism would simply pick its own scheme name, eg "MAC".

OAuth2 can easily prepare for this today by explicitly indicating which scheme a token is designed to be used with when it is issued. That is, include a "scheme" parameter in an access token response.

     {
       "access_token":"SlAV32hkKG",
       "scheme":"Token",
       "expires_in":3600,
       "refresh_token":"8xLOxBtZp8"
     }

The spec would say: "A client app MUST support the "Token" scheme"; "A client app MUST NOT use a token response if it does not support the listed scheme".

[We could make "scheme":"Token" the default if absent, but I think it is better to be explicit.]


Changing the scheme name from "Token" to, say, "Bearer" would help.



I also support changing the query parameter name from "oauth_token". How about "_authz"?
We want authentication/authorization to be orthogonal to the rest of the API. When we can't use the separate "Authorization" header for this purpose we need a parameter name that is somehow "orthogonal" to any params that are part of the API being protected. Starting the param name with "_" is a decent way to suggest this orthogonality to other "normal" API params. Suggestions: "_authz" or "_authz_bearer" (or "_authz_token" if the "Token" scheme is not renamed).


Eran argued that the "Token" scheme name deliberately does not include the "OAuth" label to be generic: it can hold a token obtained in any way, not necessarily using an OAuth flow. With this logic, the URI query parameter name holding a bearer token should also avoid the "OAuth" label. It is simply a URI-query variant of the HTTP "Token" scheme.


-- 
James Manger