The "scope flow" is intended to carry this information, and the authz 
manager/server compares the requested scope to a known mapping of protected 
resources to resource servers. (We're still working out details, and also 
trying to keep up with the changes to the OAuth2 substrate...)

        Eve

On 3 Aug 2010, at 7:04 AM, Torsten Lodderstedt wrote:

> I mean address as in "uniquely label".
> 
> Based on your explanation I assume you address resources instead of resource 
> servers. Correct? What parameter of the end-user authorization flow is used 
> to indicate the resource URL to the authz server. The scope?
> 
> regards,
> Torsten.
> 
> 
> 
> Am 02.08.2010 um 02:16 schrieb Eve Maler <e...@xmlgrrl.com>:
> 
>> I'm not sure if you mean "address" as in "handle", or "address" as in 
>> "uniquely label", but... UMA's first step involves a user-delegated 
>> introduction of a resource server to an authorization server as a special 
>> kind of client of it, using an OAuth2 web server flow with dynamic client 
>> registration as necessary. As part of this overall process, the resource 
>> server can tell the authorization server specifically which resource URLs 
>> are protected thereby (one way to do this is to wield its just-acquired 
>> access token at a protected resource registration endpoint at the authz 
>> server). Access tokens given to requesters (the real end-of-the-line 
>> clients) for accessing these resources are currently assumed to be given out 
>> on a per-resource-server basis, and each resource is uniquely associated 
>> with a single resource server and uniquely protected by a single 
>> authorization server, so there is no ambiguity. I suppose a resource server 
>> namespace could allow for higher-order aggregation as discussed below but I 
>> would personally prefer baby steps when it comes to the amount of dynamicism 
>> we're already assuming...
>> 
>> If you want to follow along with the UMA work, we have floated a number of 
>> spec drafts for these portions of our Step 1, and should shortly (within a 
>> day or so) have a more fleshed-out resource registration draft ready. We're 
>> not just cataloguing the resource URLs, but also the possible methods for 
>> accessing them; our assumption to date, as noted previously on this list, 
>> has been that the simple set of HTTP methods can get everyone really far -- 
>> but mindful of the need in OAuth-land for arbitrary "space-delimited list of 
>> strings" for scope, the current nascent draft allows for this.
>> 
>>      Eve
>> 
>> On 28 Jul 2010, at 11:32 PM, Torsten Lodderstedt wrote:
>> 
>>> Eve,
>>> 
>>> how does UMA plan to address resource servers during the OAuth end-user 
>>> authorization process?
>>> 
>>> regards,
>>> Torsten.
>>> 
>>> Am 29.07.2010 02:37, schrieb Eve Maler:
>>>> 
>>>> Belatedly...  Sorry if I sound like a broken record on this, but: Most of 
>>>> UMA's use involve letting a user introduce their various hosts 
>>>> (UMA-flavored resource servers) to their single chosen "authorization 
>>>> manager" (UMA-flavored authorization server), by treating the former as a 
>>>> dynamically introduced OAuth client of the latter. This sounds an awful 
>>>> lot like the question originally posed in this thread. We have exactly the 
>>>> problem of figuring out how the host can tell the AM what resources the AM 
>>>> should be protecting and what can be done to them, which we've begun to 
>>>> solve with what we're calling a "resource registration API" (RRAPI).
>>>> 
>>>> (BTW, we're also working on an I-D to submit here that proposes a solution 
>>>> for discovery/dynamic registration that meets our needs. Hoping it can 
>>>> feed into Eran's discovery work.)
>>>> 
>>>>  Eve
>>>> 
>>>> On 28 Jul 2010, at 1:23 AM, Torsten Lodderstedt wrote:
>>>> 
>>>>> thanks for sharing your thoughts.
>>>>> 
>>>>> Differentiating resource servers by using different end-user 
>>>>> authorization endpoint URLs is an option. I dont't know how this will 
>>>>> work in conjunction with discovery, especially since this differentiation 
>>>>> might by required on other endpoints, too. For example, if a client wants 
>>>>> to obtain an access token for the end-user's credentials, it has to 
>>>>> identify the resource server also on the tokens endpoint. There might be 
>>>>> additional endpoint for other flows with similar requirements, e.g. the 
>>>>> device flow.
>>>>> 
>>>>> Based on your proposal, a derived solution could be to define a standard 
>>>>> parameter "resourceserver" and to state how clients should use this 
>>>>> parameter on the different endpoints. On the coding level, there would be 
>>>>> no difference to your proposal :-) But the client would be able to 
>>>>> construct such a URL on its own.
>>>>> 
>>>>> Authorizing access for different resource servers is indeed an issue for 
>>>>> me. How would you propose to add the namespace? Shall the scope obtained 
>>>>> from the resource server already contain such a namespace are shall there 
>>>>> be a rule to construct such namespaced-ed scopes in the spec?
>>>>> 
>>>>> regards,
>>>>> Torsten.
>>>>> 
>>>>> Am 25.07.2010 19:11, schrieb Andrew Arnott:
>>>>>> 
>>>>>> It seems to me that if one auth server can create tokens for a diverse 
>>>>>> set of resource servers, then why not have different user authorization 
>>>>>> endpoint URLs for each type of resource server, as an added 
>>>>>> differentiator for the scope (a namespace, if you will)?
>>>>>> 
>>>>>> So suppose one auth server serves two different photo services, both 
>>>>>> using overlapping scopes such that a client requesting access of some 
>>>>>> scope is otherwise ambiguous between which resource server the client 
>>>>>> needs access to.  The auth server that serves both resource servers 
>>>>>> could have two end user authorization endpoints:
>>>>>> http://auth.server.org/authorize?resourceserver=1
>>>>>> http://auth.server.org/authorize?resourceserver=2
>>>>>> 
>>>>>> And that way the auth server knows exactly what the client needs.
>>>>>> 
>>>>>> The only scenario this doesn't allow for is for a user to authorize a 
>>>>>> client's access to both resource servers in one redirect.  If this were 
>>>>>> an issue, perhaps you can apply a namespace-like prefix to each scope 
>>>>>> substring:
>>>>>> 
>>>>>> rs1:photo:read rs2:photo:read
>>>>>> 
>>>>>> Which would serve a similar purpose.
>>>>>> 
>>>>>> --
>>>>>> Andrew Arnott
>>>>>> "I [may] not agree with what you have to say, but I'll defend to the 
>>>>>> death your right to say it." - S. G. Tallentyre
>>>>>> 
>>>>>> 
>>>>>> On Thu, Jul 22, 2010 at 3:07 PM, Torsten Lodderstedt 
>>>>>> <tors...@lodderstedt.net> wrote:
>>>>>> no one else in the group having an opinion on this topic?
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> Am 15.07.2010 20:14, schrieb Marius Scurtescu:
>>>>>> On Thu, Jul 15, 2010 at 10:03 AM, Torsten Lodderstedt
>>>>>> <tors...@lodderstedt.net>  wrote:
>>>>>> As I have written in my reply to Marius's posting. I'm fine with 
>>>>>> including
>>>>>> server ids in scopes. But this requires a definition of the scope's 
>>>>>> syntax
>>>>>> and semantics in the spec. Otherwise, scope interpretation (and server
>>>>>> identification) will be deployment specific.
>>>>>> Sure, it is deployment specific, but why is that an issue?
>>>>>> 
>>>>>> In your case, the authz server and all the resource servers are
>>>>>> managed by the same organization, right?
>>>>>> 
>>>>>> Do clients need to be aware of the actual resource server?
>>>>>> 
>>>>>> You can probably create a separate spec that defines scope syntax for
>>>>>> this purpose, if really needed. Does it have to be in core?
>>>>>> 
>>>>>> Marius
>>>>>> 
>>>>>> Solving the challenge I described in a deployment specific way is not an 
>>>>>> issue. But the consequence is that authz server, resource servers and 
>>>>>> clients are tight together.
>>>>>> 
>>>>>> Let me ask you one question: Why are we working together towards a 
>>>>>> standard protocol? I can tell you my expectations: I hope there will be 
>>>>>> broad support not only by libraries, but also by ready-to-use services 
>>>>>> and clients, so we could integrate such services into our deployment 
>>>>>> easily. Moreover, I would like to see OAuth to be included in 
>>>>>> application/service protocols like PortableContacts, SIP, WebDAV, IMAP, 
>>>>>> ...
>>>>>> 
>>>>>> So what if I would like to use standard clients to access our services? 
>>>>>> Using scopes for specifying resource server id's in this case is also 
>>>>>> simple - if you take an isolated view. But since scopes may be used to 
>>>>>> specifiy a lot of other things, like resources, permissions, and 
>>>>>> durations, handling w/o a more detailed spec will in practice be 
>>>>>> impossible.
>>>>>> 
>>>>>> Suppose a WebDAV service for media data access. Any WebDAV client knows 
>>>>>> the WebDAV protocol (== interface), e.g. the supported methods (GET, 
>>>>>> PUT, POST, DELETE, COPY, MOVE) and how to traverse directories. So it is 
>>>>>> sufficient to configure the client with the URL of my personal web 
>>>>>> storage. To start with let's assume, scopes are used to designate 
>>>>>> resource servers only. So the server's scope could be "webstorage".
>>>>>> 
>>>>>>    WWW-Authenticate OAuth realm='webstorage' scope="webstorage"
>>>>>> 
>>>>>> The client could just pass this parameter to the authz server and 
>>>>>> everything is fine.
>>>>>> 
>>>>>> On the next level, let's assume the (future) WebDAV standard with 
>>>>>> OAuth-support uses one permission per method type. So the full scope 
>>>>>> could be as follows:
>>>>>> 
>>>>>>    WWW-Authenticate OAuth realm='webstorage' scope="webstorage:GET 
>>>>>> webstorage:PUT webstorage:POST webstorage:DELETE webstorage:COPY 
>>>>>> webstorage:MOVE"
>>>>>> 
>>>>>> Passing this scope w/o any unmodified to the authz server is not an 
>>>>>> issue. But this implies the client asks for full access to the users 
>>>>>> media storage. Since our client is a gallery application, it requires 
>>>>>> the "GET" permission only. How does the client know which of the scope 
>>>>>> values to pick for the end-user authorization process? It must somehow 
>>>>>> select "webstorage:GET".
>>>>>> 
>>>>>> But how?
>>>>>> 
>>>>>> In my personal opinion, clients should be enabled to interpret, combine 
>>>>>> and even create scopes. And yes, this should go to the core of the spec.
>>>>>> 
>>>>>> regards,
>>>>>> Torsten.
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> _______________________________________________
>>>>>> 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
>>>>>> 
>>>>> _______________________________________________
>>>>> OAuth mailing list
>>>>> OAuth@ietf.org
>>>>> https://www.ietf.org/mailman/listinfo/oauth
>>>> 
>>>> 
>>>> Eve Maler
>>>> http://www.xmlgrrl.com/blog
>>>> http://www.twitter.com/xmlgrrl
>>>> http://www.linkedin.com/in/evemaler
>>>> 
>> 
>> 
>> Eve Maler
>> http://www.xmlgrrl.com/blog
>> http://www.twitter.com/xmlgrrl
>> http://www.linkedin.com/in/evemaler
>> 


Eve Maler
http://www.xmlgrrl.com/blog
http://www.twitter.com/xmlgrrl
http://www.linkedin.com/in/evemaler

_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to