Re: [OAUTH-WG] proposal: multiple access tokens from a single authorization flow
Eran Hammer-Lahav <eran@hueniverse.com> Fri, 11 June 2010 20:12 UTC
Return-Path: <eran@hueniverse.com>
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 D16FC3A69A8 for <oauth@core3.amsl.com>; Fri, 11 Jun 2010 13:12:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.974
X-Spam-Level:
X-Spam-Status: No, score=-1.974 tagged_above=-999 required=5 tests=[AWL=0.625, BAYES_00=-2.599]
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 1ls-gnHejFN1 for <oauth@core3.amsl.com>; Fri, 11 Jun 2010 13:12:43 -0700 (PDT)
Received: from p3plex1out02.prod.phx3.secureserver.net (p3plex1out02.prod.phx3.secureserver.net [72.167.180.18]) by core3.amsl.com (Postfix) with SMTP id 4F5193A6A56 for <oauth@ietf.org>; Fri, 11 Jun 2010 13:12:42 -0700 (PDT)
Received: (qmail 24290 invoked from network); 11 Jun 2010 20:12:45 -0000
Received: from unknown (HELO smtp.ex1.secureserver.net) (72.167.180.19) by p3plex1out02.prod.phx3.secureserver.net with SMTP; 11 Jun 2010 20:12:45 -0000
Received: from P3PW5EX1MB01.EX1.SECURESERVER.NET ([10.6.135.20]) by P3PW5EX1HT001.EX1.SECURESERVER.NET ([72.167.180.19]) with mapi; Fri, 11 Jun 2010 13:12:36 -0700
From: Eran Hammer-Lahav <eran@hueniverse.com>
To: Torsten Lodderstedt <torsten@lodderstedt.net>
Date: Fri, 11 Jun 2010 13:12:35 -0700
Thread-Topic: [OAUTH-WG] proposal: multiple access tokens from a single authorization flow
Thread-Index: AcsJn1xY9EmUmWPHTSCOBO44uKYUYgAAwyUA
Message-ID: <90C41DD21FB7C64BB94121FBBC2E72343B3EAF76BD@P3PW5EX1MB01.EX1.SECURESERVER.NET>
References: <4BFAA6AB.8040809@lodderstedt.net> <4BFC3142.6010506@lodderstedt.net> <AANLkTilRireowt1v8SidOiMJ-7ilBfvSqAiNfecA7uwR@mail.gmail.com> <4BFC371A.5040109@lodderstedt.net> <AANLkTikF1wk5eqme-N4RHviB5M7HzGYzy0p1mGuaux5g@mail.gmail.com> <4C07F407.4050305@lodderstedt.net> <1275663845.7068.94.camel@localhost.localdomain> <4C09732B.5040800@lodderstedt.net> <4C0F6A9C.2060607@lodderstedt.net> <4C1108C4.9040501@lodderstedt.net> <AANLkTils4bwYtv5u9yXJycqTQ_NFt0BUtA7P0kBTITpX@mail.gmail.com> <90C41DD21FB7C64BB94121FBBC2E72343B3EAF7473@P3PW5EX1MB01.EX1.SECURESERVER.NET> <4C129387.1090703@lodderstedt.net>
In-Reply-To: <4C129387.1090703@lodderstedt.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Cc: "OAuth WG (oauth@ietf.org)" <oauth@ietf.org>
Subject: Re: [OAUTH-WG] proposal: multiple access tokens from a single authorization flow
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: Fri, 11 Jun 2010 20:12:47 -0000
I'll let you know when I see the I-D :-) EHL > -----Original Message----- > From: Torsten Lodderstedt [mailto:torsten@lodderstedt.net] > Sent: Friday, June 11, 2010 12:51 PM > To: Eran Hammer-Lahav > Cc: David Recordon; OAuth WG (oauth@ietf.org) > Subject: Re: [OAUTH-WG] proposal: multiple access tokens from a single > authorization flow > > Hi, > > thanks for your advice. I described the new parameter in my proposal. > What additional text/information would you expect in an I-D? > > regards, > Torsten. > > Am 11.06.2010 01:02, schrieb Eran Hammer-Lahav: > > I strongly believe that it should be first presented as an I-D. This is true in > general for most proposed changes of this size. It is hard to tell how big of an > impact a change like this will have without some actual text. Once proposed, > the WG can decide if this is of interest as a WG item. If it is, we discuss the > technical details. Then, we can have a chat about editorial work and how to > best fit it within the OAuth specifications framework. > > > > Hope this helps. > > > > EHL > > > > > >> -----Original Message----- > >> From: oauth-bounces@ietf.org [mailto:oauth-bounces@ietf.org] On > >> Behalf Of David Recordon > >> Sent: Thursday, June 10, 2010 8:54 AM > >> To: Torsten Lodderstedt > >> Cc: OAuth WG (oauth@ietf.org) > >> Subject: Re: [OAUTH-WG] proposal: multiple access tokens from a > >> single authorization flow > >> > >> I strongly believe that it should be an extension. Even optional > >> response parameters increase the complexity for client developers and > >> this in particular affects the data model used to store access tokens. > >> > >> --David > >> > >> > >> On Thu, Jun 10, 2010 at 8:46 AM, Torsten Lodderstedt > >> <torsten@lodderstedt.net> wrote: > >> > >>> no one in the WG having an opinion on this topic? > >>> > >>> Am 09.06.2010 12:19, schrieb Torsten Lodderstedt: > >>> > >>>> Hi all, > >>>> > >>>> I would like to see support in OAuth2 for the authorization of > >>>> arbitrary scopes in a single authorization flow for all kinds of > >>>> deployments. In some deployments this may require to issue multiple > >>>> > >> access tokens at once. > >> > >>>> Therefore, I would like to propose the following addition to > >>>> section 2.3.2.1. (Access Token Response): > >>>> > >>>> Add an optional parameter "additional_access_tokens". > >>>> > >>>> additional_access_tokens > >>>> OPTIONAL. Array of access tokens issued by the authorization > >>>> server along with respective expiration and scope. > >>>> Used > >>>> if the authorization server decides to issue > >>>> more than > >>>> one access token. The scopes of the different > >>>> tokens may > >>>> not overlap. > >>>> > >>>> Example: > >>>> HTTP/1.1 200 OK > >>>> Content-Type: application/json > >>>> Cache-Control: no-store > >>>> > >>>> { > >>>> "access_token":"SlAV32hkKG", > >>>> "expires_in":3600, > >>>> "refresh_token":"8xLOxBtZp8", > >>>> scope:"https://imap.example.com", > >>>> additional_access_tokens:[ > >>>> { > >>>> "access_token":"SlAV32hkKG2", > >>>> "expires_in":3600, > >>>> scope:"https://sip.example.com" > >>>> }, > >>>> { > >>>> "access_token":"SlAV32hkKG3", > >>>> "expires_in":3600, > >>>> scope:"https://contacts.example.com/read" > >>>> }, > >>>> { > >>>> "access_token":"SlAV32hkKG4", > >>>> "expires_in":3600, > >>>> scope:"https://webdav.example.com/read" > >>>> } > >>>> ] > >>>> } > >>>> > >>>> --- Some motivation --- > >>>> > >>>> I think we will see more and more clients integrating different > >>>> end-user services (like mashups). Based on the current draft, some > >>>> OAuth authorization servers may not be able to support such clients > >>>> with an acceptable user experiences. > >>>> > >>>> Suppose a communication client integrating the following services: > >>>> - e-Mail via IMAP > >>>> - Voice over IP using the SIP protocol > >>>> - Contacts via SyncML over HTTP > >>>> - Webstorage access (e.g. for e-Mail attachments) using HTTP/WebDAV > >>>> > >>>> For a particular end-user, the client may discover that all of the > >>>> end-user's services rely on the same OAuth2-based authorization > >>>> server because they are provided by the same organization (e.g. an > >>>> isp or > >>>> > >> a telco). > >> > >>>> The services are distinguished at the authorization server by > >>>> different scopes (probably including permissions as well), e.g. : > >>>> > >>>> imap - https://imap.example.com > >>>> sip - https://sip.example.com > >>>> contacts - https://contacts.example.com/read webstorage - > >>>> https://contacts.example.com/read > >>>> > >>>> Some providers may want to issue different service-specific tokens > >>>> in such a setup (Deutsche Telekom does it already), for the > >>>> following > >>>> > >> reasons: > >> > >>>> 1) Security > >>>> > >>>> a) minimize impact of token abuse - tokens may leak in many ways, > e.g. > >>>> through log files, proxies or HTTP referer. If a provider just uses > >>>> a single token for all services, the impact of token leakage is > >>>> much higher. For example, if a token gets exposed by the _contacts_ > >>>> service via HTTP referer, an adversary may place long-distance > >>>> calls using that token on the _VoIP_ service at the expense of the > >>>> end-user. This threat holds for all kinds of tokens (handles and > >>>> self- > >>>> > >> contained tokens). > >> > >>>> b) use a shared secret between authz server and a single service > >>>> only - a major critism from the operational security perspective to > >>>> OAuth 1.0a was the need to spread client secrets to resource servers. > >>>> Using the same shared secret to sign/encrypt tokens for different > >>>> services is a comparable problem. This aspect is relevant for self- > >>>> > >> contained tokens, only. > >> > >>>> 2) Privacy - the provider wants to restrict access of services to > >>>> personal data to the data a particular service is allowed and > >>>> authorized to see. This is good style (IMHO), it might also be > >>>> required by law (e.g. German Federal Data Protection Act). This > >>>> aspect is relevant for self-contained tokens, only. > >>>> > >>>> 3) Bandwith efficiency - putting only the data required by the > >>>> services into the token saves bandwith. This aspect is relevant for > >>>> self-contained tokens, only. > >>>> > >>>> In my opinion, most of these aspects are just a consequence of the > >>>> decoupling of authorization server and resource server(s) in OAuth2. > >>>> If a single authorization server is responsible for several > >>>> resource servers, it has to ensure privacy protection and > >>>> prevention of token abuse for all of its services. This should also > >>>> include some separation between services, no matter if one uses > >>>> self-contained tokens > >>>> > >> or handles. > >> > >>>> Without the change I proposed, the authorization server in the > >>>> example scenario would need to force the client to perform _four_ > >>>> subsequent authorization flows in order to obtain all required > >>>> tokens. Moreover, the client would need to manage four refresh > tokens. > >>>> > >>>> I would kindly ask you to support my proposal. In my opinion, it > >>>> significantly improves the applicability of OAuth2 while the change > >>>> to the current draft is minimal. Moreover, deployments w/o the need > >>>> to issue multiple tokens are not affected at all. > >>>> > >>>> Any thoughts? > >>>> > >>>> 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 > >>
- [OAUTH-WG] multiple access tokens from a single a… Torsten Lodderstedt
- Re: [OAUTH-WG] multiple access tokens from a sing… Keenan, Bill
- Re: [OAUTH-WG] multiple access tokens from a sing… Marius Scurtescu
- Re: [OAUTH-WG] multiple access tokens from a sing… Manger, James H
- Re: [OAUTH-WG] multiple access tokens from a sing… Marius Scurtescu
- Re: [OAUTH-WG] multiple access tokens from a sing… Manger, James H
- Re: [OAUTH-WG] multiple access tokens from a sing… Marius Scurtescu
- Re: [OAUTH-WG] multiple access tokens from a sing… Richer, Justin P.
- Re: [OAUTH-WG] multiple access tokens from a sing… Manger, James H
- Re: [OAUTH-WG] multiple access tokens from a sing… Luke Shepard
- Re: [OAUTH-WG] multiple access tokens from a sing… Torsten Lodderstedt
- Re: [OAUTH-WG] multiple access tokens from a sing… Marius Scurtescu
- Re: [OAUTH-WG] multiple access tokens from a sing… Torsten Lodderstedt
- Re: [OAUTH-WG] multiple access tokens from a sing… Marius Scurtescu
- [OAUTH-WG] Proposal: Redesigning the Refresh Toke… Thomas Hardjono
- Re: [OAUTH-WG] multiple access tokens from a sing… Lukas Rosenstock
- Re: [OAUTH-WG] multiple access tokens from a sing… Torsten Lodderstedt
- Re: [OAUTH-WG] multiple access tokens from a sing… Torsten Lodderstedt
- Re: [OAUTH-WG] multiple access tokens from a sing… Justin Richer
- Re: [OAUTH-WG] multiple access tokens from a sing… Torsten Lodderstedt
- [OAUTH-WG] proposal: multiple access tokens from … Torsten Lodderstedt
- Re: [OAUTH-WG] proposal: multiple access tokens f… Torsten Lodderstedt
- Re: [OAUTH-WG] proposal: multiple access tokens f… David Recordon
- Re: [OAUTH-WG] proposal: multiple access tokens f… Eran Hammer-Lahav
- Re: [OAUTH-WG] proposal: multiple access tokens f… Torsten Lodderstedt
- Re: [OAUTH-WG] proposal: multiple access tokens f… Eran Hammer-Lahav
- Re: [OAUTH-WG] proposal: multiple access tokens f… Breno
- Re: [OAUTH-WG] proposal: multiple access tokens f… Eran Hammer-Lahav
- Re: [OAUTH-WG] proposal: multiple access tokens f… Justin Richer
- Re: [OAUTH-WG] proposal: multiple access tokens f… Breno
- Re: [OAUTH-WG] proposal: multiple access tokens f… Manger, James H
- Re: [OAUTH-WG] proposal: multiple access tokens f… Eran Hammer-Lahav
- Re: [OAUTH-WG] proposal: multiple access tokens f… Torsten Lodderstedt
- [OAUTH-WG] I-D: multiple access tokens Torsten Lodderstedt
- Re: [OAUTH-WG] proposal: multiple access tokens f… Igor Faynberg
- Re: [OAUTH-WG] multiple access tokens from a sing… Thomas Hardjono
- Re: [OAUTH-WG] multiple access tokens from a sing… Torsten Lodderstedt
- Re: [OAUTH-WG] multiple access tokens from a sing… Thomas Hardjono
- Re: [OAUTH-WG] multiple access tokens from a sing… Richer, Justin P.
- Re: [OAUTH-WG] multiple access tokens from a sing… Thomas Hardjono
- Re: [OAUTH-WG] multiple access tokens from a sing… Dick Hardt
- Re: [OAUTH-WG] multiple access tokens from a sing… Torsten Lodderstedt