On Mon, Apr 19, 2010 at 8:14 AM, Eran Hammer-Lahav <e...@hueniverse.com>wrote:

> Where does it say you cannot add a parameter named scope? To suggest that
> you can’t use the specification because it doesn’t define a placeholder for
> something called ‘scope’ is ridiculous.
>
>
>
> Simpler client interface is a valid argument, but so is striving for actual
> interop. Almost every single company is going to add a custom parameter to
> their implementation. Are you suggesting that if we define ‘scope’ we will
> significantly reduce the need to define **any** vendor-specific
> parameters? Because if not, libraries will still need to pass custom
> parameters as key-value pairs in their interface.
>
>
>
> So far no one has made an argument why this parameter **has** to be
> defined as a server-specific value! What breaks if we define it as a
> comma-separated list of URIs or realms (the server will need to use realm
> values it can distinguish from resource URIs in case it uses URIs for realm
> values, which is trivial to do)? Please explain to me how this proposal
> doesn’t work for you.
>
>
>
> When the group discussed signatures you demanded we start with use cases.
> So let’s do that now. How do people plan to use this parameter? What are you
> going to include as scope? What’s the internal encoding/structure you are
> going to use?
>
>
>
> The burden is on **you** to explain why a parameter in an interop
> specification MUST be left vendor specific, or why we can’t figure it out *
> *now**.
>
We all want to move towards a common syntax for scopes, but I don't think we
will be able to generalize this on day one.

Even if we agreed on a common syntax we all are aiming for, we would need to
support existing vendor scopes until we get there. Google today uses a list
of URLs for scope definition, and we want OAuth to support this even if we
decide to move towards something better.

Standardizing only on a parameter name may seem to be low-value, but it both
provides some consistency and also a clear placeholder for where to put a
parameter to ask for access to a specific resource / set of scopes.

Think that people feel strongly about keeping this in because the spec feels
incomplete if it doesn't have some way to ask for specific resources - I'd
much rather have custom parameter values than custom parameter names.


>
>
> EHL
>
>
>
>
>
>
>
> *From:* Anthony Nadalin [mailto:tony...@microsoft.com]
> *Sent:* Monday, April 19, 2010 5:53 AM
> *To:* Eran Hammer-Lahav; Dick Hardt
> *Cc:* OAuth WG
> *Subject:* RE: [OAUTH-WG] Issue: Scope parameter
>
>
>
> > I’m strongly opposed to writing a spec that must be profiled in order to
> be implemented and the proposed definition of the scope parameter mandates
> profiling the spec.
>
>
>
> I’m strongly opposed to having a specification that can’t be used because
> it’s so restrictive
>
>
>
> *From:* oauth-boun...@ietf.org [mailto:oauth-boun...@ietf.org] *On Behalf
> Of *Eran Hammer-Lahav
> *Sent:* Sunday, April 18, 2010 11:03 PM
> *To:* Dick Hardt
> *Cc:* OAuth WG
> *Subject:* Re: [OAUTH-WG] Issue: Scope parameter
>
>
>
> I’m strongly opposed to writing a spec that must be profiled in order to be
> implemented and the proposed definition of the scope parameter mandates
> profiling the spec.
>
>
>
> If it has a structure – what is it? If it is an opaque string, where does
> the client get it from? You cannot have interop if the protocol requires
> reading paperwork. There is a difference between reusing code (which is what
> your argument is about) than interop.
>
>
>
> The fact it is easier to pass a named parameter than a list of key-value
> pairs is just not a good enough reason. I can live with a parameter with an
> opaque value, but it needs to be better defined than ‘scope’.
>
>
>
> I have seen services with both scope and permission parameters. What’s the
> guidance to these services? Drop permissions and encode it into the scope?
> Define it as server-specific? Toss a coin? How about also putting the
> desired username into scope instead of another parameter?
>
>
>
> How about we add ‘custom1’, ‘custom2’, and ‘custom3’ parameters to make it
> easier for servers to use generic libraries with their own extensions? I’m
> sure we can find a few more generally useful words to throw in there.
>
>
>
> ---
>
>
>
> Interop is accomplished when a standard authentication protocol is used
> together with a standard API protocol. For example, Portable Contacts uses
> OAuth with a standard API and schema to achieve transparent interop. Clients
> don’t need to know anything specific about the server to request an address
> book record if they know where the Poco endpoint is, and can speak OAuth to
> get permission to private data.
>
>
>
> If we define a scope parameter, Poco will stop working unless Poco defines
> how to use the scope parameter when asking for a token capable of accessing
> Poco resources. But it cannot do it without breaking existing services with
> their completely incompatible definition and format for scope.
>
>
>
> On the other hand, if we defined a basic way to use scope, Poco will be
> able to use that in a consistent way across services and work in the same
> automagical way.
>
>
>
> I am not arguing against having a scope parameter. I think we should and
> have enough implementation experience to do it now (we didn’t 3 years ago).
> I am arguing that the current proposal is ignoring the responsibility we
> have to improve interop. If people want scope they need to do a better job
> defining what it is.
>
>
>
> From anything I heard so far on this list, a comma-separated list of URIs
> or realms would work.
>
>
>
> ---
>
>
>
> My service requires:
>
>
>
> Resources – list of resource URIs or realms
>
> Permission – read / change / add / delete
>
> Duration – access token lifetime
>
>
>
> Reading the definition of the scope parameter I don’t know how to map my
> requirements to it. Am I expected to invent an encoding scheme to get all
> this information into the scope parameter? It seem that **every** server
> developer will need to invent such a scheme.
>
>
>
> Using your exact argument, I can also request that we add a ‘permission’
> and ‘duration’ parameters, equally undefined, because it is easier for my
> developers to have the library pass these.
>
>
>
> EHL
>
>
>
>
>
>
>
> *From:* Dick Hardt [mailto:dick.ha...@gmail.com]
> *Sent:* Sunday, April 18, 2010 10:28 PM
> *To:* Eran Hammer-Lahav
> *Cc:* OAuth WG
> *Subject:* Re: [OAUTH-WG] Issue: Scope parameter
>
>
>
>
>
>
>
> On 2010-04-18, at 9:56 PM, Eran Hammer-Lahav wrote:
>
>
>
> The client_id parameter is not expected to have an internal structure known
> to clients.
>
>
>
> The client developer needs to understand it.
>
>
>
> The likelihood of a client library treating this value as anything other
> than an opaque string is practically zero. client_id is well defined,
> especially when it comes to how clients are expected to interact with it. I
> have not seen a single implementation or requirement to put client-aware
> meaning into the client_id parameter value. It is an opaque, server-issued
> string.
>
>
>
>
>
> What about the format parameter that specifies that assertion?
>
>
>
>
>
>
>
> The proposed scope parameter is expected to always have an internal
> structure and clients are expected to read some documentation explaining how
> to use it. The likelihood of a client library to implement one such
> structure based on the first service it is used for is not insignificant.
> And once one popular service use it in one way, others are likely to do the
> same to make their developers life easier. So why leave this up to the first
> popular service to decide.
>
>
>
> This does not make sense. Services are already defining scope parameters,
> libraries are adding them in.
>
> The client library should treat the scope parameter as a string just like
> all the other strings that are passed around. Given that a number of popular
> services have a scope like parameter now, I don't know of a situation where
> a library developer has done what you fear.
>
>
>
>
>
> Libraries are expected to pass up and down **any** parameter, regardless
> of its status as a core protocol parameter or not. A library that doesn’t is
> broken. If they do that, defining a scope parameter adds absolutely nothing.
> For example, we can add a language parameter which will be used by the
> client to request a specific UI language experience but leave the value to
> be server specific. Clearly this is useless without defining how the
> parameter shall be used. From an interop and spec perspective, how is scope
> different?
>
>
>
> It is much simpler for the library to have an interface where you specify
> specific values than hand in an arbitrary set of name value pairs.
>
>
>
>
>
> The current proposal is to pick an ambiguous term and add it as a parameter
> with no clear meaning, purpose, or structure. I don’t know what scope means.
>
> Does it include permissions? The desired access lifetime? The ability to
> share the tokens with other providers? Different HTTP methods? All the
> examples I have seen treat it as a list of resources either directly (list
> of URIs) or indirectly (list of sets or service types).
>
>
>
> It could be any of those things. The scope of access that the client is
> asking for.
>
>
>
>
>
> How about we also add a ‘redelegation’, ‘duration’, ‘permission’,
> ‘methods’, and a few more and leave them all server specific? According to
> the proposal logic, why not?
>
>
>
> Those would all be included under scope.
>
>
>
> Many implementors are saying they want the scope parameter. Are there
> implementors / deployers that don't want it?  You seem to have a strong
> opinion on this point that is based on a potential interop fear you have
> that is contrary to many implementors.
>
>
>
> -- Dick
>
> _______________________________________________
> 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

Reply via email to