Re: [OAUTH-WG] FW: Appsdir review of draft-ietf-oauth-v2-23

Justin Richer <> Tue, 07 February 2012 21:20 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 6084621F87C3 for <>; Tue, 7 Feb 2012 13:20:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -6.599
X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[AWL=0.000, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id dixolki-TObT for <>; Tue, 7 Feb 2012 13:20:24 -0800 (PST)
Received: from ( []) by (Postfix) with ESMTP id 3998E21F87B7 for <>; Tue, 7 Feb 2012 13:20:10 -0800 (PST)
Received: from (localhost.localdomain []) by localhost (Postfix) with SMTP id D111E21B13E1; Tue, 7 Feb 2012 16:20:09 -0500 (EST)
Received: from IMCCAS01.MITRE.ORG ( []) by (Postfix) with ESMTP id BDF4E21B13F6; Tue, 7 Feb 2012 16:20:08 -0500 (EST)
Received: from [] ( by IMCCAS01.MITRE.ORG ( with Microsoft SMTP Server (TLS) id 14.1.339.1; Tue, 7 Feb 2012 16:20:08 -0500
Message-ID: <>
Date: Tue, 07 Feb 2012 16:18:49 -0500
From: Justin Richer <>
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:10.0) Gecko/20120129 Thunderbird/10.0
MIME-Version: 1.0
To: Eran Hammer <>
References: <> <90C41DD21FB7C64BB94121FBBC2E723453AADDD2D4@P3PW5EX1MB01.EX1.SECURESERVER.NET>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Originating-IP: []
Cc: OAuth WG <>
Subject: Re: [OAUTH-WG] FW: Appsdir review of draft-ietf-oauth-v2-23
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: OAUTH WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 07 Feb 2012 21:20:25 -0000

Responses inline. Don't know if you want to forward these to the 
appropriate other lists/authors as well.

On 02/07/2012 01:04 PM, Eran Hammer wrote:
> -----Original Message-----
> From: Henry S. Thompson []
> Sent: Tuesday, February 07, 2012 9:31 AM
> To:;;;; Eran Hammer;;
> Cc:
> Subject: Appsdir review of draft-ietf-oauth-v2-23
> I have been selected as the Applications Area Directorate reviewer for this draft (for background on appsdir, please see
> Please resolve these comments along with any other Last Call comments you may receive. Please wait for direction from your document shepherd or AD before posting a new version of the draft.
> Document: draft-ietf-oauth-v2-23
> Title: The OAuth 2.0 Authorization Protocol
> Reviewer: Henry S. Thompson
> Review Date: 2012-02-07
> IETF Last Call Date: 2012-01-24
> Summary: This draft is almost ready for publication as an Proposed
>           Standard but has a few issues that should be fixed
>           before publication
> [Note - My expertise is in the areas of markup and architecture, with only the average geek's understanding of security and cryptographic technologies.  Any comments below on security issues are therefore of the nature of general audience concerns, rather than technical worries.]
> Major Issues:
>  The failure to require TLS here is worrying.  At the very least I would expect a requirement that clients which do _not_ require TLS MUST provide significant user feedback calling attention to this
> -- by analogy, absence of a padlock does _not_ suffice. . .

There are two bits going on here, and I think there's confusion again 
about this being a *client* controlled endpoint. First, not all callback 
redirects are remote HTTP URLs. A http://localhost/ callback or an 
app:// callback are going to be very common with installed clients, and 
in both of these cases TLS makes no sense to require. Second, and this 
is the reason spelled out in the text, you can't really expect all 
*clients* to use proper TLS on their redirects. If it's a remote HTTP 
call, then it's likely a very Bad Idea to go over a plaintext socket, 
yes. But there are enough other cases where mandating it doesn't make 

Suggestion: call out second non-HTTP use case here as well, perhaps stop 
calling it an "endpoint" to differentiate it from the server-side pieces.

>  In a somewhat parallel case, I would expect this section to at least explain why the SHOULD NOT is not a MUST NOT. Since in practice the distinction between trusted and untrusted 3rd-party scripting is difficult if not impossible to draw, as written the 2nd para is effectively overriden by the third.
Assuming this means

A MUST NOT is impossible to enforce here. You're telling people to not 
include jQuery in their JavaScript app. Truth is, any third party 
library that you include in your app could get access to the security 
bits whether it's on the callback page or not. I think it's appropriate 
to provide guidance for best practices here, and the MUST be first and 
SHOULD be only makes sense. People will get it wrong in spite of what 
the spec says here one way or another.

Suggestion: drop the requirements (and move them to the security doc), 
or otherwise no change.

> 11  It seems at best old-fashioned that the designer of a new access token type, parameter, endpoint response type or extension error has no better tool available than Google to help him/her discover whether the name they have in mind is in use already.  The same is true under the proposed approach for any developer trying to determine what they can use or must support.  Is there some reason that mandated URI templates, after the fashion of
> are not mandated for the registries, e.g.
> ?  If there is a good reason, please use it to at least explicitly acknowledge and justify the basis for failing to provide a way for users and developers to use the "follow your nose" strategy [1].  If there is no good reason, please include the appropriate language to require something along the lines suggested above.  If you need a model, see [2].

I'm confused - is this a request to use a full URI for all extension 
values? I thought the purpose of a registry was to deconflict the short 
names, and that URIs could be used for anything else.

> Minor Issues:
> A short summary of the changes from OAuth 1.0/RFC5849 would have been helpful, and it might still be a good idea to add one. . .

I don't think this is possible. OAuth2 is built fundamentally 
differently from OAuth1, so this paragraph might as well read "just 
about everything but the concept". Suggestion: don't add this, unless 
someone can come up with a succinct way to summarize the decision to 
build on a new foundation.

> 4.1  Would it be helpful to indicate that steps D&E may occur at any time after C, and may be repeated subsequently?

D&E may be delayed, but shouldn't be repeated. The Access Code is 
one-time-use, and in the best deployments will expire after a short 
period of time. Suggestion: leave as is.

> 11.1  It might be useful to have an 11.1.2, which repeats references to the bearer and mac access token type registration drafts?
Is this a request to pre-register the two "core" token types? I'm fine 
with that, if that's valid. I've long thought that the "core" document 
needs stronger pointers to the other two. Suggestion: add in the refs if 
it's editorially valid to do so.

(Nits mentioned are valid formatting errors, should be fixed.)

  -- Justin