Re: [OAUTH-WG] Seeking Clarification: Potential Ambiguity in Specification

agks mehx <agksmehx@gmail.com> Tue, 10 January 2012 00:17 UTC

Return-Path: <agksmehx@gmail.com>
X-Original-To: oauth@ietfa.amsl.com
Delivered-To: oauth@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0579111E80C8 for <oauth@ietfa.amsl.com>; Mon, 9 Jan 2012 16:17:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.598
X-Spam-Level:
X-Spam-Status: No, score=-3.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dOewf686h2NL for <oauth@ietfa.amsl.com>; Mon, 9 Jan 2012 16:17:48 -0800 (PST)
Received: from mail-yx0-f172.google.com (mail-yx0-f172.google.com [209.85.213.172]) by ietfa.amsl.com (Postfix) with ESMTP id A87B511E8080 for <oauth@ietf.org>; Mon, 9 Jan 2012 16:17:48 -0800 (PST)
Received: by yenl8 with SMTP id l8so1472559yen.31 for <oauth@ietf.org>; Mon, 09 Jan 2012 16:17:48 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=kuFJjf8rMrPv+Igmww0frQzabjEc5dJJ6y5TMg1OP/g=; b=TZ16ertSeG2mNvZu931hwt5g7p5QnB1fAFaJyBjd9fOGbyXETjzsT842xPj156fPnI /24Z58lRSWOC4/4DeMWUG7RyJa0CnDAtLup5TlEN5aM7BHTFthfFbIj2qLiQAkLEaVdK UGhEsiZxi2pIccDVzlEKhYX3xs/N1eo8kbqxg=
MIME-Version: 1.0
Received: by 10.236.148.36 with SMTP id u24mr23627415yhj.49.1326154668192; Mon, 09 Jan 2012 16:17:48 -0800 (PST)
Received: by 10.236.67.41 with HTTP; Mon, 9 Jan 2012 16:17:48 -0800 (PST)
In-Reply-To: <6.2.5.6.2.20120109153323.0ab3bf80@resistor.net>
References: <CAG+j4TrQGwiDj01huDgfEy+02b4=tTDYifiXcvhDHrw3i32-6Q@mail.gmail.com> <6.2.5.6.2.20120109070921.0aec8d00@resistor.net> <CAG+j4TrFoxvMMK_Bx=0e1qFLjUmKKaEmJD6hBnR06H6Fm75xfw@mail.gmail.com> <6.2.5.6.2.20120109153323.0ab3bf80@resistor.net>
Date: Mon, 9 Jan 2012 16:17:48 -0800
Message-ID: <CAG+j4TpuO0N7n9xxB=3mh7EZhsjXDtB2DPa0S8BBJmhV_mv4Xw@mail.gmail.com>
From: agks mehx <agksmehx@gmail.com>
To: SM <sm@resistor.net>, Eran Hammer <eran@hueniverse.com>, oauth@ietf.org
Content-Type: multipart/alternative; boundary=20cf303a32cbea33a404b62171a5
Subject: Re: [OAUTH-WG] Seeking Clarification: Potential Ambiguity in Specification
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: OAUTH WG <oauth.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/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, 10 Jan 2012 00:17:50 -0000

Hi SM and Eran,

I am confused again, after re-reading Eran's response, whether or not an
implementation that rejects *missing* (as opposed to empty) scope is
conformant or not.  (Eran, your response was a bit ambiguous on whether an
implementation is free to error out on an missing scope parameter or not --
I can clearly see it is free to error out on an empty scope parameter, but
that's a different situation than the one I am concerned about.)

The vendor definitely gives a higher priority to claiming conformance and I
believe they would change their implementation, but they believe they are
conformant.

I do feel the IETF Working Group should make this part of the spec less
ambiguous -- why not just make 'scope' REQUIRED and end the misery?  Or,
make it clear that an implementation is not conformant to the spec if it
requires optional parameters?

Additionally, I will resend a use-case for the no-scope parameter because
my earlier reply unintentionally went privately to Eran and not to the list:

I can suggest a spec modification that says that an implementation MUST
accept a request without a scope parameter, in which case one possibility
for an implementing server is to return an access token or code that does
not allow any operations.  The purpose of this otherwise "useless"
token/code is that the OAuth server confirms that the user is *some* user
without any information on *which* user it is.  (If the user is not
authenticated by the vendor then of course no valid token/code is returned.)

An example might help:  Facebook, when it started, would manage social
networks based on college email domain -- harvard.edu, etc.  Facebook used
to do it by asking for your email address and sending a confirmation mail.
 But what if I wanted to tell Facebook just the fact that I was at foo.edu but
I did not want to share my email address with Facebook, or any other unique
identifier?  If the spec required implementations to work without a scope
parameter, it would solve this use case perfectly.  Facebook wouldn't
really care about my school email address or unique id -- I could use my
non-school personal email and all Facebook wanted to know was whether I
should be in that school network or not simply by using the barebones
no-scope OAuth request.

Vendors do not lose anything if the spec requires such no-scope requests to
be fulfilled. They are merely confirming that a user is *some* user with
the user's consent.  There are valid cases on the client side such as
determining network membership without needing network identity.  And it
cleans out the optional semantics of scope.

Users win in that they have a way to confirm network membership without
having to reveal a unique identifier.

Clients win in that users will be more willing to confirm network
membership if they are not also required to reveal a unique identitfier.

This is off-the-cuff but I will be very happy to formalize it and present
it to the list.  I hope the essential concept made it through my writing!

A.

On Mon, Jan 9, 2012 at 3:47 PM, SM <sm@resistor.net> wrote:

> Hello,
>
> At 15:14 09-01-2012, agks mehx wrote:
>
>> Thank you for the response.  If I understand correctly, the vendor is
>> correctly that their implementation conforms to the specification even
>> though it rejects requests that do not specify the scope parameter.  That
>> answers my question.
>>
>
> The better answer is from Eran ( http://www.ietf.org/mail-**
> archive/web/oauth/current/**msg08194.html<http://www.ietf.org/mail-archive/web/oauth/current/msg08194.html>).
>
>
>  Whether I was asking for (i) a clarification; or (ii) trying to resolve a
>> disagreement.  I think I was trying to verify whether indeed there was a
>> disagreement. I. e. whether my understanding of the specification was
>> correct or not.  It seems I was mistaken in understanding the spec.
>>
>
> See comment below.
>
>
>  There is no disagreement with the vendor at this point because the two
>> responses from this list indicate that the vendor is right.  (I still don't
>> understand why scope isn't made a required parameter in the specification
>> so that such confusion can be avoided, but that's a minor point.)
>>
>
> You locked in on the term "optional" without going into the details of the
> draft.  I would not claim conformance with a specification if my API
> specifies that the optional parts are required as someone writing an
> implementation from the draft will run into the same problem as you.
>  Saying that the vendor is wrong will not get them to fix it.
>
> Regards,
> -sm
>