Re: [OAUTH-WG] Consistency in access token parameter

Joseph Smarr <jsmarr@gmail.com> Tue, 20 April 2010 16:42 UTC

Return-Path: <jsmarr@gmail.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 12BA13A6AE0 for <oauth@core3.amsl.com>; Tue, 20 Apr 2010 09:42:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level:
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001]
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 W+wJTO2lq0CK for <oauth@core3.amsl.com>; Tue, 20 Apr 2010 09:42:05 -0700 (PDT)
Received: from mail-pv0-f172.google.com (mail-pv0-f172.google.com [74.125.83.172]) by core3.amsl.com (Postfix) with ESMTP id D5ADD3A6912 for <oauth@ietf.org>; Tue, 20 Apr 2010 09:42:05 -0700 (PDT)
Received: by pvf33 with SMTP id 33so4113559pvf.31 for <oauth@ietf.org>; Tue, 20 Apr 2010 09:41:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:reply-to:in-reply-to :references:from:date:received:message-id:subject:to:cc:content-type; bh=W+HQ62kP04kiKGrW0qsewaGaH34hBplPPYZSmIRjeO8=; b=JNu9po3x6BNz9P6Ggll1SxHJwUam1Tn4ONhvLJ8EGtPrKQ65SvNmWanElFWOEmlspz T76E2inekgHpO7XE+WU7T8OHimotNp3CL9G0AwZpiJArM658mWUHmO7s8+b663UfJlwi fnxP0XEDft56qbN2TUAg/lE/BIIG9aqwz+s/0=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:reply-to:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; b=GX6bNEtev9tkOas8Bz3iWxpjDU+iOrvWns9ym7z4dLCeCevcCRFZC/60q6Vp9qtISq /6vi0WoOrhN0dEaIxTW++SsA1LxkSzvcgJogjXeJWmq4qA8T57606J3dVvlG1BWzXXYE gqoM5XPSbuDFfbCi3kGNfZM4v3LQNppwBiH3o=
MIME-Version: 1.0
Received: by 10.143.164.14 with HTTP; Tue, 20 Apr 2010 09:41:34 -0700 (PDT)
In-Reply-To: <90C41DD21FB7C64BB94121FBBC2E723438E5C7F456@P3PW5EX1MB01.EX1.SECURESERVER.NET>
References: <C7F1D1FC.32809%eran@hueniverse.com> <4BCD3B85.3080809@lodderstedt.net> <2513A610118CC14C8E622C376C8DEC93D54D66DEAB@SC-MBXC1.TheFacebook.com> <90C41DD21FB7C64BB94121FBBC2E723438E5C7F456@P3PW5EX1MB01.EX1.SECURESERVER.NET>
From: Joseph Smarr <jsmarr@gmail.com>
Date: Tue, 20 Apr 2010 09:41:34 -0700
Received: by 10.142.249.27 with SMTP id w27mr1581500wfh.188.1271781714193; Tue, 20 Apr 2010 09:41:54 -0700 (PDT)
Message-ID: <r2lc334d54e1004200941r3c3461c2va51384d26b3b5e5b@mail.gmail.com>
To: Eran Hammer-Lahav <eran@hueniverse.com>
Content-Type: multipart/alternative; boundary="00504502cec44e6d280484adc1ff"
Cc: "oauth@ietf.org" <oauth@ietf.org>
Subject: Re: [OAUTH-WG] Consistency in access token parameter
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: jsmarr@stanfordalumni.org
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: Tue, 20 Apr 2010 16:42:08 -0000

In my experience, a frequent source of bugs/frustration for developers
implementing OAuth 1.0 was the fact that we have multiple "tokens" that are
easy to mix up and use in the wrong place. For instance, when I helped Dave
Winer debug his implementation (see
http://josephsmarr.com/2009/02/17/implementing-oauth-is-still-too-hard-but-it-doesnt-have-to-be/),
the problem ended up being that he was passing his request-token instead of
his access-token when making API requests (they're both returned as
oauth_token, after all). (So I'd strongly urge us to pick as disparate names
for the various "tokens" in OAuth 2.0 as possible, and to not use similar
variable names when returning them, to minimize these chances of mix-up.
It's probably also helpful if they look visually distinct, so it would be
more obvious "oh, you're using the wrong kind of token here", but that may
be too hard to enforce in practice.)

Thanks, js

On Tue, Apr 20, 2010 at 8:04 AM, Eran Hammer-Lahav <eran@hueniverse.com>wrote:

> There is an explanation (I'm not defending it, just explaining).
>
> In the flow endpoint I chose 'access_token' over token because of the
> refresh token. It seems better to talk about two different kinds of tokens
> than to have one generic 'token' and one with special meaning
> 'refresh_token'.
>
> The protected resource endpoint is the only place I agree requires a prefix
> because it always intrudes on another namespace or platform and the
> likelihood of a conflict is high. I used 'oauth_token' instead of
> 'oauth_access_token' for brevity thinking that it should be trivial to
> figure out what to put there (the only other option is a refresh token which
> isn't likely to be confused here).
>
> The header uses 'token' because it is a generic authentication scheme which
> doesn't mandate you use the OAuth flows to get a token. This is the only
> place I feel strongly about not changing it.
>
> Feel free to propose new names.
>
> EHL
>
> > -----Original Message-----
> > From: oauth-bounces@ietf.org [mailto:oauth-bounces@ietf.org] On Behalf
> > Of Luke Shepard
> > Sent: Tuesday, April 20, 2010 12:46 AM
> > To: oauth@ietf.org
> > Subject: [OAUTH-WG] Consistency in access token parameter
> >
> > There are potentially three names for access tokens in this spec:
> >
> > - token
> > - access_token
> > - oauth_token
> >
> > You hit the /oauth/access_token endpoint, and get back access_token=blah.
> > Then you take that string and pass it to the protected resource as
> > oauth_token=blah.
> >
> > Developers that have prototyped things over here have found this to be
> > confusing. It's simpler to just take the same named param everywhere.
> >
> > I vote that one of two things happen:
> >
> > 1/ Return oauth_token from the access token endpoint.
> > 2/ Accept access_token on the protected resource endpoint.
> > 3/ Return "token" (and still "refresh_token") from the access_token
> > endpoint, and accept "token" on the protected resource.
> >
> > I know there will be infinite debate about the right way to do this, but
> just
> > wanted some thoughts for now. I will probably choose #2 as that seems
> most
> > explicit, even though it's a few more characters.
> >
> > _______________________________________________
> > OAuth mailing list
> > OAuth@ietf.org
> > https://www.ietf.org/mailman/listinfo/oauth
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth
>