Re: [OAUTH-WG] draft-hunt-oauth-client-association-00

Phil Hunt <phil.hunt@oracle.com> Fri, 01 November 2013 22:02 UTC

Return-Path: <phil.hunt@oracle.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 9910111E8136 for <oauth@ietfa.amsl.com>; Fri, 1 Nov 2013 15:02:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.296
X-Spam-Level:
X-Spam-Status: No, score=-6.296 tagged_above=-999 required=5 tests=[AWL=0.303, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
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 zfLDai7wf+eu for <oauth@ietfa.amsl.com>; Fri, 1 Nov 2013 15:02:41 -0700 (PDT)
Received: from aserp1040.oracle.com (aserp1040.oracle.com [141.146.126.69]) by ietfa.amsl.com (Postfix) with ESMTP id D600211E8143 for <oauth@ietf.org>; Fri, 1 Nov 2013 15:02:40 -0700 (PDT)
Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237]) by aserp1040.oracle.com (Sentrion-MTA-4.3.1/Sentrion-MTA-4.3.1) with ESMTP id rA1M2bQR016660 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Fri, 1 Nov 2013 22:02:37 GMT
Received: from aserz7022.oracle.com (aserz7022.oracle.com [141.146.126.231]) by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id rA1M2Z6k020124 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 1 Nov 2013 22:02:35 GMT
Received: from abhmt117.oracle.com (abhmt117.oracle.com [141.146.116.69]) by aserz7022.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id rA1M2Ze9017030; Fri, 1 Nov 2013 22:02:35 GMT
Received: from [192.168.1.12] (/174.7.250.104) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 01 Nov 2013 15:02:35 -0700
Content-Type: text/plain; charset="windows-1252"
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
From: Phil Hunt <phil.hunt@oracle.com>
In-Reply-To: <52740DAD.9030102@gmx.net>
Date: Fri, 01 Nov 2013 15:02:21 -0700
Content-Transfer-Encoding: quoted-printable
Message-Id: <DCA0C891-504B-4DAA-A414-9A7324150DA3@oracle.com>
References: <5273FA71.4000500@gmx.net> <1D4A7D8A-A532-4368-B0E0-87B73B57F1EC@oracle.com> <52740DAD.9030102@gmx.net>
To: Hannes Tschofenig <hannes.tschofenig@gmx.net>
X-Mailer: Apple Mail (2.1510)
X-Source-IP: acsinet21.oracle.com [141.146.126.237]
Cc: "oauth@ietf.org WG" <oauth@ietf.org>
Subject: Re: [OAUTH-WG] draft-hunt-oauth-client-association-00
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: Fri, 01 Nov 2013 22:02:46 -0000

I think for the client types, the trick is to try to make it restrictive enough so there's no second-guessing the client developer has to do about what SPs will accept.  The line I was drawing was for implicit/javascript clients in the current draft.

We could open it to a simple decision for the client developer.  If they think they will need an instance specific client_id from service endpoints, then they need to use dynamic registration.  Otherwise transient registration could be used for on-the-fly transient associations - which are still public clients.

My assessment was we could keep transient restricted to implicit/javascript only - making the choice very clear.  But I'd love to hear if someone has a case where they think transient fits a client doing one of the other authorization flows (the broader case).

BTW….this is why the client association draft is in fact so long.  There is considerable text discussing the classifications and their differences.

Looking at it now, I'm starting to feel stricter "normative" text (MUSTs & SHOULDS) and less fuzzy explanation and/or examples might actually be better for inter-op and perceived simplicity/clarity.

Phil

@independentid
www.independentid.com
phil.hunt@oracle.com

On 2013-11-01, at 1:23 PM, Hannes Tschofenig <hannes.tschofenig@gmx.net> wrote:

> Hi Phil,
> 
> We definitely have to figure out how the differentiation is made so that
> a developer (or someone who deploys the technology) understands the
> scenario they are in and what the implications are. At the moment I
> would struggle a bit.
> 
> Using examples is certainly a good idea, like you did below. There are,
> however, quickly challenges. For example, in the JavaScript case below
> you can imagine a developer of a smart phone app who uses JavaScript but
> then packages the application (using PhoneGap), which makes it behave
> very much like a native app.
> 
> And, as you say below, the notion of whether the endpoint is configured upfront (during development time) or dynamically configured may not necessarily matter.
> 
> It definitely makes sense to discuss this during the meeting and real-world examples may help.
> 
> Ciao
> Hannes
> 
> Am 01.11.13 20:56, schrieb Phil Hunt:
>> Hannes,
>> 
>> Great timing!
>> 
>> This is an aspect that I think deserves more discussion. One of the
>> challenges was to draw a clear line of distinction between transient
>> and dynamic.
>> 
>> Transient clients are really meant for javascript clients that decide
>> to connect to a particular end-point on the fly.  Note you can still
>> have "static" javascript clients that are hard coded to connect and
>> have already received a client_id through an out-of-band process.
>> 
>> Phil
>> 
>> @independentid www.independentid.com phil.hunt@oracle.com
>> 
>> On 2013-11-01, at 12:01 PM, Hannes Tschofenig
>> <hannes.tschofenig@gmx.net> wrote:
>> 
>>> Hi Phil, Hi Tony, Hi all,
>>> 
>>> I re-read the document and I believe the most important concept it
>>> introduces is the classification of different associations, namely
>>> into 'static', 'dynamic', and 'transient'. This is certainly
>>> something worthwhile to discuss during the meeting and to ensure
>>> that it is well understood, and that there are only these three
>>> classes (rather than two or four).
>>> 
>>> The description in the introduction makes the differentiation
>>> between the three concepts mostly based on how the endpoints are
>>> configured in the application.
>>> 
>>> With the static association the endpoint is hard-coded into the
>>> software during the development time. It cannot be changed. With
>>> the two other cases the endpoint can be changed. As such, the
>>> difference between the 'dynamic', and 'transient' association seems
>>> to be in the terms of how long the lifetime of the association.
>>> Now, what exactly is the lifetime of an association? Is the
>>> lifetime of the association understood as the lifetime of the
>>> configured endpoint identifier?
>>> 
>>> Then, when I re-read the text in Section 1 again then I suddenly
>>> get the impression that the lifetime of the association actually
>>> does not matter but instead the difference is rather whether the
>>> client is public or confidential. Is that true?
>>> 
>>> If it isn't true that this is the feature that makes the
>>> distinction between 'dynamic', and 'transient' then the notion of
>>> "public" vs. "confidential" client isn't too important for the rest
>>> of the document.
>>> 
>>> Ciao Hannes
>>> 
>>> 
>>> _______________________________________________ OAuth mailing list
>>> OAuth@ietf.org https://www.ietf.org/mailman/listinfo/oauth
>> 
>