Re: [OAUTH-WG] review comments on draft-ietf-oauth-dyn-reg-11.txt

Justin Richer <jricher@mitre.org> Fri, 31 May 2013 15:26 UTC

Return-Path: <jricher@mitre.org>
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 5351521F9455 for <oauth@ietfa.amsl.com>; Fri, 31 May 2013 08:26:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.985
X-Spam-Level:
X-Spam-Status: No, score=-5.985 tagged_above=-999 required=5 tests=[AWL=0.613, BAYES_00=-2.599, HTML_MESSAGE=0.001, 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 bghx-fdxMAnQ for <oauth@ietfa.amsl.com>; Fri, 31 May 2013 08:26:16 -0700 (PDT)
Received: from smtpksrv1.mitre.org (smtpksrv1.mitre.org [198.49.146.77]) by ietfa.amsl.com (Postfix) with ESMTP id 65CF821F9344 for <oauth@ietf.org>; Fri, 31 May 2013 08:26:16 -0700 (PDT)
Received: from smtpksrv1.mitre.org (localhost.localdomain [127.0.0.1]) by localhost (Postfix) with SMTP id 9CF551F0956; Fri, 31 May 2013 11:26:15 -0400 (EDT)
Received: from IMCCAS03.MITRE.ORG (imccas03.mitre.org [129.83.29.80]) by smtpksrv1.mitre.org (Postfix) with ESMTP id 7F71A1F0954; Fri, 31 May 2013 11:26:15 -0400 (EDT)
Received: from [10.146.15.13] (129.83.31.56) by IMCCAS03.MITRE.ORG (129.83.29.80) with Microsoft SMTP Server (TLS) id 14.2.342.3; Fri, 31 May 2013 11:26:15 -0400
Message-ID: <51A8C0ED.6040607@mitre.org>
Date: Fri, 31 May 2013 11:25:33 -0400
From: Justin Richer <jricher@mitre.org>
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130510 Thunderbird/17.0.6
MIME-Version: 1.0
To: Phil Hunt <phil.hunt@oracle.com>
References: <20130524203638.25945.84709.idtracker@ietfa.amsl.com> <0354062A-DEB8-4272-861B-43DC48887F54@ve7jtb.com> <2E872A80-1B5B-468D-910C-1D6E9DFEFF78@oracle.com> <9F86FCC6-E737-4086-8821-81A94AEC4BE2@oracle.com> <54C61883-4A00-441E-B6DB-2B4156B969F4@ve7jtb.com> <2674C9F9-0C49-4EC3-A69D-20AAC35E8AB8@oracle.com> <2F891558-6DDF-4FFB-B2D3-F1219EB6CFAF@oracle.com> <51A79B69.9090702@mitre.org> <7BB78EA6-B0F4-4A9E-853C-DB978C9DFB0B@oracle.com> <51A7A18F.1040104@mitre.org> <4CCD92A5-0800-4E4C-8952-C8B88E22C811@oracle.com> <51A7ADAE.4070005@mitre.org> <62636DE9-80BD-4B83-817B-3E6622434FD0@oracle.com> <51A7C00B.6050409@mitre.org> <78BAEE23-FB66-4BA5-A1A5-5626D22AA014@oracle.com> <B33BFB58CCC8BE4998958016839DE27E08F97708@IMCMBX01.MITRE.ORG> <18C751E2-31B2-4C7F-BC9A-49F382F96673@oracle.com> <B33BFB58CCC8BE49989! 58016839DE27E08F977D8@IMCMBX01.MITRE.ORG> <77A0DA5E-09CE-4A5E-9500-54A0842252FB@oracle.com> <51A8B9C4.8020200! @mitre.org> <F293690C-1E82-4350-80D4-2E2C0EF86E55@oracle.com>
In-Reply-To: <F293690C-1E82-4350-80D4-2E2C0EF86E55@oracle.com>
Content-Type: multipart/alternative; boundary="------------020802090108080100050404"
X-Originating-IP: [129.83.31.56]
Cc: "oauth@ietf.org WG" <oauth@ietf.org>
Subject: Re: [OAUTH-WG] review comments on draft-ietf-oauth-dyn-reg-11.txt
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, 31 May 2013 15:26:22 -0000

Phil,

We *can* keep it straight just fine, but I just need you to be clear 
about which part you're objecting to because the answers are different. 
Please use the terms as defined in the document so that we all know 
which component we're talking about. I'm sure you'd agree than in 
specification work such as this, precision of language and labels is key 
for communication between parties. This is precisely why there's a 
Terminology section right up front, so that when I say "Registration 
Access Token" you can know that I mean a very specific thing, and when I 
say "Initial Registration Token" I mean a very different specific thing. 
So I'm asking you, please, use the defined terms so that we can avoid 
this unnecessary confusion.

But anyway, what you're talking about below, "the token the client uses 
to update is profile" *IS* the Registration Access Token. That's all 
that that token is used for. You're not asking for it to go away, you're 
asking for it to come from the Token Endpoint instead of the response 
from the Registration Endpoint. I don't see how the client *can* get it 
from the normal token process without jumping through specialized hoops 
to make that happen. I've implemented the draft the way that it is right 
now, both client and server side, and it works. Others have implemented 
it, too. We've done interop testing, and it works. This is a proven 
pattern and from where I sit there is both rough consensus and running code.

I believe that I've already pointed out how the solutions you've 
proposed so far won't work in practice, for various reasons, many of 
which have already been brought up and discussed previously. If you have 
another way for the client to get its Registration Access Token, please 
propose it; but I haven't seen anything yet that will fly.

  -- Justin

On 05/31/2013 11:10 AM, Phil Hunt wrote:
> Justin,
>
> This is my primary objection! We can't keep it straight. Their should 
> be no such thing as a registrstion access token!  Just the token the 
> client obtains to update its profile through the normal token request 
> process.
>
> Phil
>
> On 2013-05-31, at 10:55, Justin Richer <jricher@mitre.org 
> <mailto:jricher@mitre.org>> wrote:
>
>> Which token are you referring to here?
>>
>> If it's the Initial Registration Token, then you could get that 
>> through the normal token server no problem. (The lifecycle writeups 
>> don't call this out explicitly but I would be willing to do so.) Or 
>> you could get it elsewhere. Doesn't matter, just like it doesn't 
>> matter with any other OAuth2 protected resource.
>>
>> If it's the Registration Access Token, then having the token come 
>> from the token endpoint would require a lot more work and complexity 
>> on behalf of both of the client and server. Either you end up with 
>> public clients getting secrets they shouldn't need or with granting 
>> clients access to the client_credentials flow when they shouldn't 
>> actually have it. Plus it adds extra round trips which don't buy you 
>> anything.
>>
>>  -- Justin
>>
>> On 05/31/2013 10:15 AM, Phil Hunt wrote:
>>> The preference is to have the access token for registration issued 
>>> by the normal token server rather then by the registration endpoint.
>>>
>>> In the current draft it is obtained through a unique process and 
>>> must outlive the client.
>>>
>>> Phil
>>>
>>> On 2013-05-30, at 19:47, "Richer, Justin P." <jricher@mitre.org 
>>> <mailto:jricher@mitre.org>> wrote:
>>>
>>>> I don't understand any of the comments below -- it already *is* an 
>>>> OAuth2 protected resource without any special handling. Your access 
>>>> tokens can be short-lived, long-lived, federated, structured, 
>>>> random blobs ... totally doesn't matter. They are access tokens 
>>>> being used to access a normal protected resource. Full stop.
>>>>
>>>> Anything else is out of scope. The lifecycle discussions at the 
>>>> beginning are merely examples of some ways you *could* use it and 
>>>> are non-normative and non-exhaustive.
>>>>
>>>> You seem to be asking for something that's already in the draft.
>>>>
>>>>  -- Justin
>>>>
>>>> ------------------------------------------------------------------------
>>>> *From:* Phil Hunt [phil.hunt@oracle.com <mailto:phil.hunt@oracle.com>]
>>>> *Sent:* Thursday, May 30, 2013 7:31 PM
>>>> *To:* Richer, Justin P.
>>>> *Cc:* John Bradley; oauth@ietf.org <mailto:oauth@ietf.org> WG
>>>> *Subject:* Re: [OAUTH-WG] review comments on 
>>>> draft-ietf-oauth-dyn-reg-11.txt
>>>>
>>>>
>>>>
>>>> Phil
>>>>
>>>> On 2013-05-30, at 16:11, "Richer, Justin P." <jricher@mitre.org 
>>>> <mailto:jricher@mitre.org>> wrote:
>>>>
>>>>> Comments inline, marked by [JR].
>>>>>
>>>>> ------------------------------------------------------------------------
>>>>> *From:* Phil Hunt [phil.hunt@oracle.com <mailto:phil.hunt@oracle.com>]
>>>>> *Sent:* Thursday, May 30, 2013 5:25 PM
>>>>> *To:* Richer, Justin P.
>>>>> *Cc:* John Bradley; oauth@ietf.org <mailto:oauth@ietf.org> WG
>>>>> *Subject:* Re: [OAUTH-WG] review comments on 
>>>>> draft-ietf-oauth-dyn-reg-11.txt
>>>>>
>>>>> See below.
>>>>> Phil
>>>>>
>>>>> @independentid
>>>>> www.independentid.com <http://www.independentid.com>
>>>>> phil.hunt@oracle.com <mailto:phil.hunt@oracle.com>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On 2013-05-30, at 2:09 PM, Justin Richer wrote:
>>>>>
>>>>>> OK, I think see part of the hang up. I have not seen the scenario 
>>>>>> that you describe, where you trade a 3rd party token for a 
>>>>>> "local" token. I have seen where access tokens are federated 
>>>>>> directly at the PR. (Introspection lets you do some good things 
>>>>>> with that pattern.) But that's neither here nor there, as you can 
>>>>>> already do what you're asking for and I think I can clear things up:
>>>>>>
>>>>>> In your case, the "3rd party bearer assertion" is simply *not* 
>>>>>> the Initial Registration Token. It's an assertion that can be 
>>>>>> used to *get* an Initial Registration Token. The token that you 
>>>>>> get from the Token Endpoint, in your case, would be "local" from 
>>>>>> your own AS. Your registration endpoint would look at this token 
>>>>>> on the way in, know how to validate it, do whatever else it wants 
>>>>>> to with it, and process the registration. Then it would issue a 
>>>>>> Registration Access Token that to the registering client to use 
>>>>>> at the RESTful endpoint. Incidentally, that token would also be 
>>>>>> "local", just like before.
>>>>>
>>>>>> How you (the client/developer) get the actual Initial 
>>>>>> Registration Token is completely and forever out of scope for the 
>>>>>> Dynamic Registration spec.
>>>>>
>>>>> [PH]  Yes, the issuance of the third party bearer assertion token 
>>>>> token would be out of scope of this spec.
>>>>>
>>>>> If however the group decides to except federated direct access 
>>>>> tokens as registration *access* tokens, then I think we have to 
>>>>> define federation for access tokens first.   For me, I think this 
>>>>> is something that should be discussed in a different charter.
>>>>>
>>>>> [JR] It's an access token, plain and simple. The draft doesn't 
>>>>> care -- and shouldn't care -- if it's federated or not. I agree, 
>>>>> and have been arguing all along, that if you have a use case for 
>>>>> federated access tokens, you need to define the mechanisms for 
>>>>> such tokens, and that registration is *not* the place for that 
>>>>> definition.It's orthogonal but they can be used together. Let's 
>>>>> define them separately but ina compatible way.
>>>>>
>>>> [ph] thats not the impression i get from the draft. As i mentioned 
>>>> earlier using access token for registration is clearer.