Re: [OAUTH-WG] Proposal for a New 2617 Scheme: Token

"Manger, James H" <James.H.Manger@team.telstra.com> Sat, 03 October 2009 17:12 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 52F8428C0EC for <oauth@core3.amsl.com>; Sat, 3 Oct 2009 10:12:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.102
X-Spam-Level:
X-Spam-Status: No, score=-2.102 tagged_above=-999 required=5 tests=[AWL=-0.206, BAYES_00=-2.599, HELO_EQ_AU=0.377, HOST_EQ_AU=0.327]
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 0vBfhpqSYRJC for <oauth@core3.amsl.com>; Sat, 3 Oct 2009 10:12:55 -0700 (PDT)
Received: from mailipbo.vtcif.telstra.com.au (mailipbo.vtcif.telstra.com.au [202.12.144.29]) by core3.amsl.com (Postfix) with ESMTP id 016103A6989 for <oauth@ietf.org>; Sat, 3 Oct 2009 10:12:54 -0700 (PDT)
Received: from webi.vtcif.telstra.com.au (HELO mailbi.vtcif.telstra.com.au) ([202.12.142.19]) by mailipbi.vtcif.telstra.com.au with ESMTP; 04 Oct 2009 04:13:23 +1100
Received: from mail2.cdn.telstra.com.au (localhost [127.0.0.1]) by mailbi.vtcif.telstra.com.au (Postfix) with ESMTP id 43ADD1DA83 for <oauth@ietf.org>; Sun, 4 Oct 2009 03:13:23 +1000 (EST)
Received: from WSMSG3752.srv.dir.telstra.com (wsmsg3752.srv.dir.telstra.com [172.49.40.173]) by mail2.cdn.telstra.com.au (Postfix) with ESMTP id E4BD241D04 for <oauth@ietf.org>; Sun, 4 Oct 2009 03:13:07 +1000 (EST)
Received: from WSMSG3153V.srv.dir.telstra.com ([172.49.40.160]) by WSMSG3752.srv.dir.telstra.com ([172.49.40.173]) with mapi; Sun, 4 Oct 2009 04:13:22 +1100
From: "Manger, James H" <James.H.Manger@team.telstra.com>
To: "oauth@ietf.org" <oauth@ietf.org>
Date: Sun, 04 Oct 2009 04:13:21 +1100
Thread-Topic: [OAUTH-WG] Proposal for a New 2617 Scheme: Token
Thread-Index: AcpC8Sw2Ny1WupCSSWSDuMgrgFIZNwABvj2gACbMNyAALML7UA==
Message-ID: <255B9BB34FB7D647A506DC292726F6E1124423C1EA@WSMSG3153V.srv.dir.telstra.com>
References: <90C41DD21FB7C64BB94121FBBC2E72343784DF259F@P3PW5EX1MB01.EX1.SECURESERVER.NET> <daf5b9570910011644w2ea00c51g2dae1a2f901322c9@mail.gmail.com> <255B9BB34FB7D647A506DC292726F6E11231D18995@WSMSG3153V.srv.dir.telstra.com> <90C41DD21FB7C64BB94121FBBC2E72343784DF26E3@P3PW5EX1MB01.EX1.SECURESERVER.NET>
In-Reply-To: <90C41DD21FB7C64BB94121FBBC2E72343784DF26E3@P3PW5EX1MB01.EX1.SECURESERVER.NET>
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="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Subject: Re: [OAUTH-WG] Proposal for a New 2617 Scheme: Token
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: Sat, 03 Oct 2009 17:12:56 -0000

>> I think OAuth needs:
>> 1. A WWW-Auth scheme indicating that requests can be signed with a
>> shared-secret key.

> This is too specific. We need a scheme that indicate requests can be made with a token (vs. username).


Eran,

I think some of the disconnect between our ideas revolves around what a 'token' is.

In OAuth, a (access) token is an identifier for a delegation of some authority from a specific user to a client. It is chosen by the server. It is an opaque blob as far as the client is concerned — they just have to include it in subsequent requests.

From the perspective of just the authentication part of OAuth (draft-ietf-oauth-authentication), a token is just an id. I don't see a token as any different from a username, or an app id, or an employee number, or a device id -- as far as any authentication protocol is concerned.

The web hasn't needed different versions of BASIC for users (with usernames) and for applications (generally with long random app-ids).

If we need BASIC for usernames and TOKEN PLAIN for delegation tokens, wont we also need something else for direct access by clients. Mightn't we need a different scheme for tokens issued by the OAuth web-delegation flow vs token issued via some other mechanism?



>> 2. A WWW-Auth scheme indicating that a web delegation flow can be used
>> to get user authorization.

> I am not sure this is the right way to provide delegation discovery (via the auth header). Using Link: headers is much more appropriate.

A Link header might work. 1 or 2 extra round-trips could be avoid with a WWW-Auth scheme compared to a Link relation, as a WWW-Auth scheme could be more descriptive (more scheme-specific parameters) that seems sensible to cram into a Link relation.



>> ->  Authorization: MAC realm="whatever"; algorithm="HMAC-SHA256";

> The syntax differences from my proposal aren't significant.

Indeed, I wasn't suggesting any change here (other than "MAC" as a better scheme name).


>> I think there is value in creating a family of authentication methods using a scheme and sub-scheme. It is better to support extensibility in the scheme than to force new methods to define new schemes. This will allow easier implementation of new sub-schemes.

So you want the "TOKEN" scheme to mean "delegation credentials", and the sub-scheme to be the authentication mechanism.
I don’t think a special indicator for "delegation credentials" is necessary (use case?). If an indicator is necessary we should make it independent of the authentication mechanism: an extra parameter to add to existing WWW-Auth schemes; a special string to include in the realm values of existing WWW-Auth schemes; a separate HTTP response header identifying which WWW-Auth headers are meant for "delegation credentials"…


>> This isn't necessary. Just use BASIC.
>> A server may need to ensure usernames and tokens can be distinguished,
>> but that is easy enough.

> Yes it is. The idea of requiring servers to make this distinction is impractical. Basic auth is well defined and any attempt to overload it with new meaning is wrong.

Could you explain what is impractical?
If a server really cannot distinguish tokens it chooses from usernames it can use separate URIs for the two groups.
I don't think treating an OAuth token as a username, or a shared secret as a password is a "new meaning".



James Manger
James.H.Manger@team.telstra.com
Identity and security team — Chief Technology Office — Telstra