Re: [OAUTH-WG] Issue: Scope parameter

Dick Hardt <dick.hardt@gmail.com> Mon, 19 April 2010 05:29 UTC

Return-Path: <dick.hardt@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 C0ACD3A6AAA for <oauth@core3.amsl.com>; Sun, 18 Apr 2010 22:29:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.381
X-Spam-Level:
X-Spam-Status: No, score=-2.381 tagged_above=-999 required=5 tests=[AWL=0.217, 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 Z9Xy6bOY3fYg for <oauth@core3.amsl.com>; Sun, 18 Apr 2010 22:29:03 -0700 (PDT)
Received: from mail-yx0-f182.google.com (mail-yx0-f182.google.com [209.85.210.182]) by core3.amsl.com (Postfix) with ESMTP id 00CD03A6AAF for <oauth@ietf.org>; Sun, 18 Apr 2010 22:27:49 -0700 (PDT)
Received: by yxe12 with SMTP id 12so2589399yxe.32 for <oauth@ietf.org>; Sun, 18 Apr 2010 22:27:39 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:subject:mime-version :content-type:from:in-reply-to:date:cc:message-id:references:to :x-mailer; bh=2GAnxbGrSUM7/LY2BQMc8k86/XgELzCbQBIBsJ6OwgU=; b=iRuMFCWawp0+llLIqBKGhf4jdqFPXpQ06XFVwYMVVsPrmfFbXJK9YDf6iekYklq7s4 MlaRj3V7kPRT24nZ6NJobbKJJPwBn+DmHVxjt6mRk8vPawrqhFcM8u73haatStKJ16r+ 0nJUbqjrn4U73JiTE9gj1+m3dHDA85/GDth5o=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=subject:mime-version:content-type:from:in-reply-to:date:cc :message-id:references:to:x-mailer; b=oPUrq1ZijEhOmImmY0DYYogJrSpPPefOQTGsxCRhRACSvrcmMlyeNoGMsLYUGbVoFj pImMhYUsGQU7tlFlcFr2BGRBWm8X2WBPKZRJTLofvG8WLLen33t6QTFedUo3GMjmoCIf YNf1MdSjO0fKbANdDQVhnGBWP5Gnk88grBq8E=
Received: by 10.150.235.15 with SMTP id i15mr5788779ybh.80.1271654859052; Sun, 18 Apr 2010 22:27:39 -0700 (PDT)
Received: from [10.0.1.4] (c-67-180-195-167.hsd1.ca.comcast.net [67.180.195.167]) by mx.google.com with ESMTPS id 20sm1434832yxe.59.2010.04.18.22.27.36 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sun, 18 Apr 2010 22:27:38 -0700 (PDT)
Mime-Version: 1.0 (Apple Message framework v1078)
Content-Type: multipart/alternative; boundary="Apple-Mail-2--857604392"
From: Dick Hardt <dick.hardt@gmail.com>
In-Reply-To: <90C41DD21FB7C64BB94121FBBC2E723438E30A3794@P3PW5EX1MB01.EX1.SECURESERVER.NET>
Date: Sun, 18 Apr 2010 22:27:35 -0700
Message-Id: <B9DB81DC-2B8F-4FFF-9FF1-78DB334DF101@gmail.com>
References: <C7ECB1F7.32357%eran@hueniverse.com> <h2l987bab591004181812ve43197f9la55f59b753bd2959@mail.gmail.com> <90C41DD21FB7C64BB94121FBBC2E723438E30A3794@P3PW5EX1MB01.EX1.SECURESERVER.NET>
To: Eran Hammer-Lahav <eran@hueniverse.com>
X-Mailer: Apple Mail (2.1078)
Cc: OAuth WG <oauth@ietf.org>
Subject: Re: [OAUTH-WG] Issue: Scope parameter
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: Mon, 19 Apr 2010 05:29:04 -0000


On 2010-04-18, at 9:56 PM, Eran Hammer-Lahav wrote:

> The client_id parameter is not expected to have an internal structure known to clients.

The client developer needs to understand it.

> The likelihood of a client library treating this value as anything other than an opaque string is practically zero. client_id is well defined, especially when it comes to how clients are expected to interact with it. I have not seen a single implementation or requirement to put client-aware meaning into the client_id parameter value. It is an opaque, server-issued string.


What about the format parameter that specifies that assertion?


>  
> The proposed scope parameter is expected to always have an internal structure and clients are expected to read some documentation explaining how to use it. The likelihood of a client library to implement one such structure based on the first service it is used for is not insignificant. And once one popular service use it in one way, others are likely to do the same to make their developers life easier. So why leave this up to the first popular service to decide.

This does not make sense. Services are already defining scope parameters, libraries are adding them in.
The client library should treat the scope parameter as a string just like all the other strings that are passed around. Given that a number of popular services have a scope like parameter now, I don't know of a situation where a library developer has done what you fear.

>  
> Libraries are expected to pass up and down *any* parameter, regardless of its status as a core protocol parameter or not. A library that doesn’t is broken. If they do that, defining a scope parameter adds absolutely nothing. For example, we can add a language parameter which will be used by the client to request a specific UI language experience but leave the value to be server specific. Clearly this is useless without defining how the parameter shall be used. From an interop and spec perspective, how is scope different?

It is much simpler for the library to have an interface where you specify specific values than hand in an arbitrary set of name value pairs.

>  
> The current proposal is to pick an ambiguous term and add it as a parameter with no clear meaning, purpose, or structure. I don’t know what scope means.
> Does it include permissions? The desired access lifetime? The ability to share the tokens with other providers? Different HTTP methods? All the examples I have seen treat it as a list of resources either directly (list of URIs) or indirectly (list of sets or service types).

It could be any of those things. The scope of access that the client is asking for.

>  
> How about we also add a ‘redelegation’, ‘duration’, ‘permission’, ‘methods’, and a few more and leave them all server specific? According to the proposal logic, why not?

Those would all be included under scope.

Many implementors are saying they want the scope parameter. Are there implementors / deployers that don't want it?  You seem to have a strong opinion on this point that is based on a potential interop fear you have that is contrary to many implementors.

-- Dick