Re: [OAUTH-WG] resource server id needed?

Torsten Lodderstedt <torsten@lodderstedt.net> Thu, 15 July 2010 06:19 UTC

Return-Path: <torsten@lodderstedt.net>
X-Original-To: oauth@core3.amsl.com
Delivered-To: oauth@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id D049A3A681A for <oauth@core3.amsl.com>; Wed, 14 Jul 2010 23:19:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.04
X-Spam-Level:
X-Spam-Status: No, score=-2.04 tagged_above=-999 required=5 tests=[AWL=0.209, BAYES_00=-2.599, HELO_EQ_DE=0.35]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wBbWS6hcfkYE for <oauth@core3.amsl.com>; Wed, 14 Jul 2010 23:19:50 -0700 (PDT)
Received: from smtprelay03.ispgateway.de (smtprelay03.ispgateway.de [80.67.31.26]) by core3.amsl.com (Postfix) with ESMTP id 8BF473A67E6 for <oauth@ietf.org>; Wed, 14 Jul 2010 23:19:50 -0700 (PDT)
Received: from [79.253.14.82] (helo=[192.168.71.23]) by smtprelay03.ispgateway.de with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.68) (envelope-from <torsten@lodderstedt.net>) id 1OZHnc-0007hf-18; Thu, 15 Jul 2010 08:20:00 +0200
Message-ID: <4C3EA88A.1050509@lodderstedt.net>
Date: Thu, 15 Jul 2010 08:19:54 +0200
From: Torsten Lodderstedt <torsten@lodderstedt.net>
User-Agent: Thunderbird 2.0.0.24 (Windows/20100228)
MIME-Version: 1.0
To: Marius Scurtescu <mscurtescu@google.com>
References: <4C3E389D.5080300@lodderstedt.net> <AANLkTilbBWMoMj5DIJ7IMYzlBGgZHni7xCYHyAzz_XK4@mail.gmail.com>
In-Reply-To: <AANLkTilbBWMoMj5DIJ7IMYzlBGgZHni7xCYHyAzz_XK4@mail.gmail.com>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 8bit
X-Df-Sender: torsten@lodderstedt-online.de
Cc: "OAuth WG (oauth@ietf.org)" <oauth@ietf.org>
Subject: Re: [OAUTH-WG] resource server id needed?
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: OAUTH WG <oauth.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/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: Thu, 15 Jul 2010 06:19:51 -0000

Marius Scurtescu schrieb:
> On Wed, Jul 14, 2010 at 3:22 PM, Torsten Lodderstedt
> <torsten@lodderstedt.net> wrote:
>   
>> I have a question concerning the OAuth philosophy: How many resource servers
>> may be managed by a single OAuth authorization server? (a) A single resource
>> server or (b) several of them exposing different resource types?
>>
>> If the answer is (b) then how is a particular resource server identified in
>> the protocol? Clients have Ids, end-users as well (at least in a future
>> protocol extension), but what about resource server Ids?
>>
>> I think resource servers must be identifiable in multi-server deployments
>> for several reasons:
>> - Interpretation of the scope parameter should be resource server specific -
>> "read" may have different meanings in mail and address book
>> - An authorization server probably wants to apply server-specific security
>> policy, e.g. different access token durations
>> - It will be possible to create special tokens per server
>>
>> I think we should introduce a resource server id in the authz and access
>> token request.
>>
>> Any thoughts?
>>     
>
> I think the scope fills this role. Scopes implemented as URIs, for
> example, allow the authz server to map them to resource servers.
>
> Marius
>   
That's an option indeed and would very much like to adopt it. But is the 
current draft specific enough to make that work?

Let's take the example of a valid scope Eran gave in on of his recent 
postings:

“friends:read:2d photos:write:1y”

Where would you include the resource server's URI? I assume in front of 
every value, like this:

“http://myserver.example.com/friends:read:2d 
http://myserver.example.com/photos:write:1y”

Let's now take this example one step further and extend the first 
resource description.

“http://myserver.example.com/friends/max.mustermann/:read:2d 
http://myserver.example.com/photos:write:1y”

How shall a standard compliant authz server parse that scope? And what 
is the resource server part? The host part only or everything up to the 
last '/'?
BTW: This example assumes ':' as internal delimiter between resources, 
permissions and durations.

In my opinion, in order to support the use case I described, we have to 
come up with a more detailed specification of the syntax and semantics 
of scopes.

What do you think?

regards,
Torsten.