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

Justin Richer <jricher@mitre.org> Tue, 28 May 2013 14:29 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 E500F21F9524 for <oauth@ietfa.amsl.com>; Tue, 28 May 2013 07:29:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.599
X-Spam-Level:
X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[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 zZ6u6LMu4nI6 for <oauth@ietfa.amsl.com>; Tue, 28 May 2013 07:29:35 -0700 (PDT)
Received: from smtpksrv1.mitre.org (smtpksrv1.mitre.org [198.49.146.77]) by ietfa.amsl.com (Postfix) with ESMTP id 7853921F94E1 for <oauth@ietf.org>; Tue, 28 May 2013 07:29:34 -0700 (PDT)
Received: from smtpksrv1.mitre.org (localhost.localdomain [127.0.0.1]) by localhost (Postfix) with SMTP id DD6681F0732; Tue, 28 May 2013 10:29:33 -0400 (EDT)
Received: from IMCCAS01.MITRE.ORG (imccas01.mitre.org [129.83.29.78]) by smtpksrv1.mitre.org (Postfix) with ESMTP id D1A601F06FB; Tue, 28 May 2013 10:29:33 -0400 (EDT)
Received: from [10.146.15.13] (129.83.31.56) by IMCCAS01.MITRE.ORG (129.83.29.78) with Microsoft SMTP Server (TLS) id 14.2.342.3; Tue, 28 May 2013 10:29:33 -0400
Message-ID: <51A4BF27.50800@mitre.org>
Date: Tue, 28 May 2013 10:28:55 -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: Torsten Lodderstedt <torsten@lodderstedt.net>
References: <20130524203638.25945.84709.idtracker@ietfa.amsl.com> <5071FA1C-F6F7-43AD-9EDC-13B0D480F97A@mitre.org> <51A3AE0B.1020802@lodderstedt.net>
In-Reply-To: <51A3AE0B.1020802@lodderstedt.net>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
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: Tue, 28 May 2013 14:29:44 -0000

Torsten, thanks for the review. Comments inline.

On 05/27/2013 03:03 PM, Torsten Lodderstedt wrote:
> Hi Justin,
>
> the drafts looks very good.
>
> Just some questions/comments from my side:
>
> section 1.4
>
> How is the client supposed to identify/distinguish authorization 
> servers? Based on the Client Registration Endpoint URI? Authorization 
> server identification is necessary in order to map client_ids to 
> authorization servers for clients, which are connected to multiple 
> authorization servers.
That's a great question -- but I think it's entirely dependent on how 
discovery and configuration is set up for a client, which is ultimately 
orthogonal to registration. The way that I've implemented it in our 
client is based on the OpenID Connect discovery process, which bases 
everything in the server's configuration off of an "issuer" URL. It 
would be easy enough to point out here that discovery and 
differentiation of different servers is out of scope.

>
> section 1.4.1 f
>
> Why does the client secret expire while the access token ist still 
> valid? Secret and token are stored at the same
> locations so an attacker may obtain both at once.
Secrets are used at the token endpoint, so the attack surface is 
slightly different. Since you can only use the registration access token 
at the registration endpoint, you can use it to rotate your other 
credentials.

>
> "token_endpoint_auth_method"
> What is the use case for dynamic registration of public clients? In my 
> opinion, public clients exist because OAuth 2.0 core does not provided 
> a mechanism to provision secrets to the different instances of an 
> installed/native app. Dynamic registration closes this gap, so any 
> installed app may retrieve a distinct secret.

This gap-closing is true for some classes of client that used to have to 
be public, like many native apps. But there are still clients that have 
no use for a client secret, like in-browser clients that use the 
implicit flow. Now if these clients are also talking to multiple auth 
servers, they'll each need a client_id at the auth server (because 
there's no practical way to publish a "public" client ID to *all* auth 
servers). A discussion in the security considerations about the 
limitations and usefulness of this use case is probably worthwhile, so 
I'll make a note to do that.

>
> "client_secret_post vs client_secret_basic"
> BASIC and POST are essentially the same just different ways to send 
> the client secret. If an authorization server supports both, both 
> should work for any client. So are both methods treated differently?
I agree, and this was one of my original arguments for making this field 
plural (or plural-able), but there hasn't been WG support for that so far.

>
> "jwks_uri"
> What is this data used for? the OAuth JWT Bearer Token Profiles?

That's one, but it's really for any higher-level protocol that uses 
signing and encryption. There are several out there that are using JOSE 
on top of OAuth to do things, so we felt it was worthwhile to have one 
standard place to have the client say "here's my public key".

  -- Justin

>
> best regards,
> Torsten.
>
> Am 24.05.2013 23:10, schrieb Richer, Justin P.:
>> New Dynamic Registration draft is published, incorporating much of 
>> the discussion from the group this week.
>>
>> Some normative changes that should have minimal impact:
>>   - "expires_at" is now "client_secret_expires_at"
>>   - "issued_at" is now "client_id_issued_at"
>>   - creation of an IANA registry for token_endpoint_auth_method
>>   - removal of two underdefined values from 
>> token_endpoint_auth_method (client_secret_jwt and private_key_jwt), 
>> these are now defined in an extension (OpenID Connect Registration)
>>
>> And several editorial changes:
>>
>>   - new "client lifecycle" section that describes how different kinds 
>> of clients can use the dynamic registration protocol, how a client's 
>> credentials get refreshed, and the relationship between the Client 
>> Identifier and the Client software
>>   - new "registration tokens and credentials" section describing the 
>> different kinds of tokens and credentials used in the registration 
>> process, what they're for, and why they're all separate
>>   - clarified the definitions of several fields like policy_uri and 
>> tos_uri
>>
>> Thanks for all the great feedback, and please keep the constructive 
>> commentary coming!
>>   -- Justin
>>
>> On May 24, 2013, at 4:36 PM, <internet-drafts@ietf.org>
>>   wrote:
>>
>>> A New Internet-Draft is available from the on-line Internet-Drafts 
>>> directories.
>>> This draft is a work item of the Web Authorization Protocol Working 
>>> Group of the IETF.
>>>
>>>     Title           : OAuth 2.0 Dynamic Client Registration Protocol
>>>     Author(s)       : Justin Richer
>>>                           John Bradley
>>>                           Michael B. Jones
>>>                           Maciej Machulak
>>>     Filename        : draft-ietf-oauth-dyn-reg-11.txt
>>>     Pages           : 34
>>>     Date            : 2013-05-24
>>>
>>> Abstract:
>>>    This specification defines an endpoint and protocol for dynamic
>>>    registration of OAuth 2.0 Clients at an Authorization Server and
>>>    methods for the dynamically registered client to manage its
>>>    registration.
>>>
>>>
>>> The IETF datatracker status page for this draft is:
>>> https://datatracker.ietf.org/doc/draft-ietf-oauth-dyn-reg
>>>
>>> There's also a htmlized version available at:
>>> http://tools.ietf.org/html/draft-ietf-oauth-dyn-reg-11
>>>
>>> A diff from the previous version is available at:
>>> http://www.ietf.org/rfcdiff?url2=draft-ietf-oauth-dyn-reg-11
>>>
>>>
>>> Internet-Drafts are also available by anonymous FTP at:
>>> ftp://ftp.ietf.org/internet-drafts/
>>>
>>> _______________________________________________
>>> 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
>