+1 to ensuring that dynamic introduction is possible.  I see a lot of
discussions that end up saying that this or that can be spec'd in the
server docs and the client hard coded to the docs; this is fine for
some features but not for very general ones that everybody needs to
use.

On Sunday, March 21, 2010, Eve Maler <e...@xmlgrrl.com> wrote:
> David, great stuff -- thanks for putting this together!  Here are a few 
> comments and questions from a quick read on the plane down to Anaheim, in 
> spec order (the weight/priority therefore varies widely).
>
> Abstract
>
> - "delegate": The use of this word seems like it's different from how it's 
> been used in the past, e.g. in "user delegation".  It's not a big deal, but 
> possibly confusing.
>
> Introduction:
>
> - I'm glad there's a hint here of "autonomously or on behalf of an end-user", 
> but I notice the distinction between "user delegation flows" and 
> "autonomous-client flows" introduced by WRAP seems to have been made more 
> implicit in this draft.  UMA has an interest in understanding very carefully 
> how flows get distinguished along these lines, and in fact we may need to 
> define even more flows and types of flows for our own purposes (see our 
> Lexicon at http://kantarainitiative.org/confluence/display/uma/Lexicon for 
> more).  Hope to discuss this a bit tomorrow.  (And see more below in my 
> comments on 2.5.)
>
> - "provisioning tokens": I'd say resource owners don't personally provision 
> tokens, but rather signal that authorization servers should do so on their 
> behalf.
>
> - The use of "server" in the intro is very natural.  See terminology comments 
> below for more.
>
> 1.3. Terminology
>
> - access token: The client might instead be making requests on behalf of 
> itself, not "the user", right?
>
> - authorization server and protected resource: These definitions cry out to 
> have a formal definition of "server" (or "protected resource server"?) in 
> this section as well, since "server" is already invoked quite naturally in a 
> few places to mean the server of a protected resource.  Though the definition 
> of protected resource says it's the resource served by an HTTP server, a few 
> remaining WRAP-inherited instances of the term elsewhere try to force it to 
> be both. I have some additional comments below that rely on a nice clean 
> distinction between the authorization server and the server of a protected 
> resource, because even though they're often colocated in pure-OAuth use 
> cases, UMA makes strategic use of the option to separate them.  (Oh, also: 
> s/A HTTP/An HTTP/)
>
> - client identifier: s/used used/used/
>
> - resource owner: "such that it issues...": This is a bit awkward.  Maybe say 
> "to approve the issuing of an access token to a client"?
>
> 1.3.1. Endpoints
>
> - "such as via documentation": FWIW, because UMA goes for dynamic 
> introduction of various parties, we're using hostmeta and XRD to do this sort 
> of thing.  Is there any wider interest in providing a (perhaps merely 
> advisory) method of documentation that involves these technologies (or 
> similar), to get greater interop?
>
> - "API request": Because I'm coming from a mindset that sees all web 
> resources as possibly being "OAuth-protected", and because we want to ensure 
> the option of loose coupling between authorization server and protected 
> resource server, I'm struggling to figure out (a) if calling this "API 
> request" is too limiting given that maybe every resource on the server (e.g. 
> every photo in a directory) is subject to a request for access, and (b) if 
> this is something the protected resource server itself should advertise (vs. 
> the authorization server), as appropriate.
>
> - "user authorization request": s/resource owners's/resource owner's/g (the 
> typo appears in a bunch of places)
>
> 2. Getting an Access Token
>
> - "MUST implement at least one...": Are its implementation choices something 
> the authorization server should advertise in documentation?
>
> - It would be helpful to give really concrete examples/use cases of all of 
> the profiles in the intro, so people can determine from this single place 
> which profiles interest them.
>
> 2.1. Web Server Flow
>
> - "without acquiring and end-user's credentials": Is this an obliquely stated 
> version of "avoiding the 'password anti-pattern'"?  I think it could be 
> useful to mention this phrase here somewhere.  Also, it's a little confusing 
> to mention the resource owner and an end-user without seeming to connect them.
>
> - oauth_callback_url: It says this is required, but what if the authorization 
> server already required the client to pre-register this?
>
> - "MUST first verify the identity of the resource owner": Should this be 
> followed with "...and seek their approval of the authorization request" or 
> similar?  (This whole thing doesn't seem testable since it's outside the view 
> of the protocol, so I'm wondering if uppercase MUST is warranted.)
>
> - oauth_error_reason: Does "user_denied" mean "the user denied the request"?  
> Since the spec holds out the (slim) possibility of the resource owner not 
> being an end-user, should this be "resource_owner_denied" or "request_denied" 
> or something?
>
> - I'm thinking oauth_error_reason is where UMA could define an extension that 
> gives an error like "claims_required".  I need to sort this out with my gang, 
> but provide it here as food for thought.  Should we be defining our own 
> parameter instead (and if so, should this spec say something about cases 
> where this is done by others)?  Alternatively, should this spec allow for 
> extended error codes in some formal fashion?
>
> - "The server must retain the scope...": I *think* this means the 
> authorization server, given that it's the one issuing the token, so this 
> should be explicitly stated.  Keep in mind that UMA has reason to keep the 
> kinds of servers architecturally separate, which means we needed to build a 
> way for an UMA host (effectively an OAuth protected resource server) to be 
> able to correlate the client's desired scope (as retained by the 
> authorization server and baked into the issued token somehow, such that it 
> can be validated when presented by the client) and the actual type of access 
> attempted by the client.  Actually, I think OAuth has this need too, so 
> perhaps UMA isn't all that different.
>
> 2.2. Web Client Flow
>
> - s/a mobile device/on a mobile device/
>
> - "the client is downloaded to the resource owner's user-agent": I *think* I 
> can make sense of this, but the order just seems weird and backwards. :-)  Is 
> the client, in fact, functioning as an HTTP user-agent itself?  Or is the 
> client downloaded to the user's physical device (in which a separate 
> user-agent is colocated)?
>
> - "SHOULD verify that the callback URI provided ... is valid": Why not MUST?  
> It seems eminently doable.
>
> 2.3. Device Flow
>
> - "The client MAY both poll and have...": Cleaner to say "The client MUST 
> either poll or have an interface element, or both."
>
> 2.4. Username and Password Flow
>
> - "The client MUST discard the resource owner's username...": This is 
> obviously very desirable, but seems untestable.  Is the uppercase MUST 
> warranted?
>
> - "The authorization server ... MAY verify that the client is authorized to 
> use this flow": Why and how would this MAY work?  I'm not quite understanding 
> the goal here.
>
> 2.5. Client Identifier and Secret Flow
>
> - "This flow is suitable when the client is also the resource owner": I think 
> this was supposed to be the "two-legged"/"autonomous-client" solution, but 
> this phrase throws that into doubt for me.  What was the intent here?  Note 
> that UMA (like a lot of others) is interested in solving automated 
> self-registration of an autonomous client at an authorization server.  (In 
> case it's of interest, we've been trying to sort out the legal implications 
> of parties who are *not* the resource owner seeking authorized access; this 
> is where our "claims_required" stuff comes in.  Sometimes the client 
> represents "itself", or rather a company or org acting on its own behalf; 
> sometimes it represents a person different from the resource owner; etc.  See 
> our Lexicon at http://kantarainitiative.org/confluence/display/uma/Lexicon.)
>
> - Probably this is an effect of needing more time for study, but why does 
> this profile not use oauth_error_code like the others do, relying only on a 
> 401?
>
> 3. Refreshing an Access Token
>
> - "The authorization server MUST verify that the resource owner...": This 
> seems untestable.  Is the uppercase MUST warranted?
>
> - "the protected resource MUST NOT allow the user of the corresponding access 
> token without its secret": This is a case where "[protected resource] server" 
> would work way better than "protected resource", as resources don't allow or 
> disallow actions; they just exist.
>
> 4.1.2. Client Calls Protected Resource Using URL Query Parameter
>
> - "Prior to making a request": Just FYI, UMA makes use of a key stage prior 
> to a client making an access-token-bearing request; the client (UMA 
> requester) can hit the resource out of the blue, and in this way learns the 
> relevant access token request endpoint from the protected resource server 
> (UMA host).
>
> - "the following examples use the HTTP GET method": Should the wording here 
> and in the next section ("The client constructs an HTTP 'POST'...") be 
> rationalized to be more similar?
>
> Look forward to discussing more tomorrow,
>
>         Eve
>
> On 19 Mar 2010, at 6:28 PM, David Recordon wrote:
>
>> As I mentioned a few weeks ago [1], I started working on editing the first 
>> draft of OAuth 2.0 over the past two weeks.  While I realize that it's 6pm 
>> Friday (sorry about that), I hope to have a solid discussion about it at 
>> Monday's meeting.  You can find the current draft of it – plus all of the 
>> document history – on my public GitHub account a 
>> thttp://github.com/daveman692/OAuth-2.0.  Eran will be doing an initial 
>> editing pass before Monday and then spend more time with it next week.
>>
>> I've attached both a HTML and TXT copy to this email and plan to officially 
>> submit it as an Internet Draft.
>>
>> The following are highlighted changes from draft-hardt-oauth-01:
>>   1.  A Web Client flow designed for use within JavaScript.  It also
>>       supports the use cases of the rich app profile so that they're
>>       not two separate flows.
>>   2.  A new device flows which is based on the Netflix/Tivo flow (TV
>>       shows you a code that you type in on your computer).
>>       http://www.ietf.org/mail-archive/web/oauth/current/msg01346.html
>>   3.  Remove captchas from the username/password flow.  They haven't
>>       been successfully implemented within this context and create
>>       complexity especially when we use other signals to detect
>>       compromised accounts.
>>       http://www.ietf.org/mail-archive/web/oauth/current/msg01293.html
>>   4.  Don't allow bearer tokens without either SSL and/or signatures.
>>       While some providers may offer this ability, they should be out
>>       of spec for doing so though technically it won't break the flows.
>>   5.  Abstract the refresh token flow out of each profile into its own
>>       section.  Support the ability to request access token secrets
>>       when refreshing.
>>   6.  Support signatures for making API requests but not for getting
>>       access tokens.  If you want to use signatures, you'll get an
>>       access token and then make a refresh call where you ask for a
>>       token secret.  This causes the auth server to mark the token as
>>       no longer being valid as a bearer token via SSL.  This
>>       performance tradeoff seems realistic given many use cases focus
>>       on high-volume API transactions and thus the one additional
>>       request at the onset should be noise.  The signature mechanism is
>>       currently from OAuth 1.0.
>>
>> Obviously I couldn't have made so much progress so quickly if it weren't for 
>> WRAP and I hope that 2.0 both addresses the WRAP use cases as well as those 
>> we all have been discussing here.  I hope that I haven't missed anyone who 
>> contributed to prior work and am happy to add other authors if I have (and 
>> they wish to be added)!
>>
>> Thanks,
>> --David
>>
>> [1] http://www.ietf.org/mail-archive/web/oauth/current/msg01225.html
>>
>
> Eve Maler
> e...@xmlgrrl.com
> http://www.xmlgrrl.com/blog
>
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth
>

-- 
--
John Panzer / Google
jpan...@google.com / abstractioneer.org / @jpanzer
_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to