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

"Manger, James H" <James.H.Manger@team.telstra.com> Fri, 02 October 2009 01:29 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 6760C3A68B0 for <oauth@core3.amsl.com>; Thu, 1 Oct 2009 18:29:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.259
X-Spam-Level:
X-Spam-Status: No, score=-2.259 tagged_above=-999 required=5 tests=[AWL=-0.364, 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 zK6rxgjpsVx3 for <oauth@core3.amsl.com>; Thu, 1 Oct 2009 18:29:39 -0700 (PDT)
Received: from mailipbo.ntcif.telstra.com.au (mailipbo.ntcif.telstra.com.au [202.12.233.29]) by core3.amsl.com (Postfix) with ESMTP id 57E503A699C for <oauth@ietf.org>; Thu, 1 Oct 2009 18:29:39 -0700 (PDT)
Received: from unknown (HELO mailai.ntcif.telstra.com.au) ([202.12.162.17]) by mailipbi.ntcif.telstra.com.au with ESMTP; 02 Oct 2009 11:31:04 +1000
Received: from mail2.cdn.telstra.com.au (localhost [127.0.0.1]) by mailai.ntcif.telstra.com.au (Postfix) with ESMTP id 63037FF89 for <oauth@ietf.org>; Fri, 2 Oct 2009 11:31:04 +1000 (EST)
Received: from WSMSG3705.srv.dir.telstra.com (wsmsg3705.in.telstra.com.au [172.49.40.203]) by mail2.cdn.telstra.com.au (Postfix) with ESMTP id 230FB41E3F for <oauth@ietf.org>; Fri, 2 Oct 2009 11:30:49 +1000 (EST)
Received: from WSMSG3153V.srv.dir.telstra.com ([172.49.40.159]) by WSMSG3705.srv.dir.telstra.com ([172.49.40.203]) with mapi; Fri, 2 Oct 2009 11:31:03 +1000
From: "Manger, James H" <James.H.Manger@team.telstra.com>
To: "oauth@ietf.org" <oauth@ietf.org>
Date: Fri, 02 Oct 2009 11:31:01 +1000
Thread-Topic: [OAUTH-WG] Proposal for a New 2617 Scheme: Token
Thread-Index: AcpC8Sw2Ny1WupCSSWSDuMgrgFIZNwABvj2g
Message-ID: <255B9BB34FB7D647A506DC292726F6E11231D18995@WSMSG3153V.srv.dir.telstra.com>
References: <90C41DD21FB7C64BB94121FBBC2E72343784DF259F@P3PW5EX1MB01.EX1.SECURESERVER.NET> <daf5b9570910011644w2ea00c51g2dae1a2f901322c9@mail.gmail.com>
In-Reply-To: <daf5b9570910011644w2ea00c51g2dae1a2f901322c9@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="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 01:29:41 -0000

I think OAuth needs:

1. A WWW-Auth scheme indicating that requests can be signed with a shared-secret key.

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

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 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]


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


If an RSA-based mechanism is required a separate WWW-Auth scheme would be the best approach.


A WWW-Auth scheme to trigger the delegation flow is more interesting, but that is for a separate thread.



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