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

Eran Hammer-Lahav <eran@hueniverse.com> Fri, 02 October 2009 19:14 UTC

Return-Path: <eran@hueniverse.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 764763A6972 for <oauth@core3.amsl.com>; Fri, 2 Oct 2009 12:14:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.504
X-Spam-Level:
X-Spam-Status: No, score=-3.504 tagged_above=-999 required=5 tests=[AWL=-0.905, BAYES_00=-2.599]
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 p+cRXuki-rhx for <oauth@core3.amsl.com>; Fri, 2 Oct 2009 12:14:36 -0700 (PDT)
Received: from p3plex1out01.prod.phx3.secureserver.net (p3plex1out01.prod.phx3.secureserver.net [72.167.180.17]) by core3.amsl.com (Postfix) with SMTP id 92A3A3A6842 for <oauth@ietf.org>; Fri, 2 Oct 2009 12:14:36 -0700 (PDT)
Received: (qmail 31095 invoked from network); 2 Oct 2009 19:16:04 -0000
Received: from unknown (HELO smtp.ex1.secureserver.net) (72.167.180.19) by p3plex1out01.prod.phx3.secureserver.net with SMTP; 2 Oct 2009 19:16:04 -0000
Received: from P3PW5EX1MB01.EX1.SECURESERVER.NET ([10.6.135.19]) by P3PW5EX1HT001.EX1.SECURESERVER.NET ([72.167.180.19]) with mapi; Fri, 2 Oct 2009 12:13:16 -0700
From: Eran Hammer-Lahav <eran@hueniverse.com>
To: "Manger, James H" <James.H.Manger@team.telstra.com>, "oauth@ietf.org" <oauth@ietf.org>
Date: Fri, 02 Oct 2009 12:16:02 -0700
Thread-Topic: [OAUTH-WG] Proposal for a New 2617 Scheme: Token
Thread-Index: AcpC8Sw2Ny1WupCSSWSDuMgrgFIZNwABvj2gACbMNyA=
Message-ID: <90C41DD21FB7C64BB94121FBBC2E72343784DF26E3@P3PW5EX1MB01.EX1.SECURESERVER.NET>
References: <90C41DD21FB7C64BB94121FBBC2E72343784DF259F@P3PW5EX1MB01.EX1.SECURESERVER.NET> <daf5b9570910011644w2ea00c51g2dae1a2f901322c9@mail.gmail.com> <255B9BB34FB7D647A506DC292726F6E11231D18995@WSMSG3153V.srv.dir.telstra.com>
In-Reply-To: <255B9BB34FB7D647A506DC292726F6E11231D18995@WSMSG3153V.srv.dir.telstra.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
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: Fri, 02 Oct 2009 19:14:40 -0000


> -----Original Message-----
> From: oauth-bounces@ietf.org [mailto:oauth-bounces@ietf.org] On Behalf
> Of Manger, James H
> Sent: Thursday, October 01, 2009 6:31 PM

> 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).

> 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.
 
> The two are quite separate.
> The first would be defined in draft-ietf-oauth-authentication and would
> make no reference to delegation at all. "MAC" would be a good name.
> 
> <-  WWW-Authenticate: MAC realm="whatever"; algorithm="HMAC-SHA1 HMAC-
> SHA256 CMAC-AES";
>                      mode="HEADER URI POST" <perhaps some more
> parameters>
> 
> ->  Authorization: MAC realm="whatever"; algorithm="HMAC-SHA256";
> sig="65dFM…"; nonce…

The syntax differences from my proposal aren't significant. 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.
 
> The option to encode the signature in a URI is worthwhile (eg a client
> can sign a URI then give it to another party to access, eg another
> party to click in a browser). Hence, the "mode" parameter above. I am
> less convinced by POST, but it is a small step from URI to POST so it
> is probably worth having.
> [HEADER = can put signature in HTTP Authorization request header;
>  URI = can put signature in URI query string;
>  POST = can put signature in HTML <form> POST]

Header server support should not be optional and hence does not need discovery.

Is it too much to ask all servers to support the URI mode? We are going to make supporting the auth headers mandatory in all implementations. Since we are dropping POST (no use cases, no matter how simple it is to keep) and headers are required, why not require support for a single URI header parameter?
 
> >	WWW-Authenticate: Token Plain realm=""
> >	Authorization: Token Plain <token> <secret>
> 
> 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.
 
> If an RSA-based mechanism is required a separate WWW-Auth scheme would
> be the best approach.

It is not clear what the RSA requirements are and how they should be managed yet. It should be a sub-scheme.
 
EHL