Re: [OAUTH-WG] Simpilfying use of assertions when requesting an access token

Eran Hammer-Lahav <eran@hueniverse.com> Wed, 22 September 2010 16:53 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 5CBBD3A6A46 for <oauth@core3.amsl.com>; Wed, 22 Sep 2010 09:53:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.49
X-Spam-Level:
X-Spam-Status: No, score=-2.49 tagged_above=-999 required=5 tests=[AWL=0.109, 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 whkUjLi5n0yZ for <oauth@core3.amsl.com>; Wed, 22 Sep 2010 09:53:49 -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 E7DDF3A6A43 for <oauth@ietf.org>; Wed, 22 Sep 2010 09:53:48 -0700 (PDT)
Received: (qmail 9537 invoked from network); 22 Sep 2010 16:54:16 -0000
Received: from unknown (HELO smtp.ex1.secureserver.net) (72.167.180.19) by p3plex1out02.prod.phx3.secureserver.net with SMTP; 22 Sep 2010 16:54:15 -0000
Received: from P3PW5EX1MB01.EX1.SECURESERVER.NET ([10.6.135.20]) by P3PW5EX1HT001.EX1.SECURESERVER.NET ([72.167.180.19]) with mapi; Wed, 22 Sep 2010 09:54:11 -0700
From: Eran Hammer-Lahav <eran@hueniverse.com>
To: Brian Campbell <bcampbell@pingidentity.com>, Justin Richer <jricher@mitre.org>
Date: Wed, 22 Sep 2010 09:53:08 -0700
Thread-Topic: [OAUTH-WG] Simpilfying use of assertions when requesting an access token
Thread-Index: ActZ2y3iTQomGd23TImSuSauMm1yhgAmzbBA
Message-ID: <90C41DD21FB7C64BB94121FBBC2E72343D45D7F94F@P3PW5EX1MB01.EX1.SECURESERVER.NET>
References: <90C41DD21FB7C64BB94121FBBC2E72343B3F35BE13@P3PW5EX1MB01.EX1.SECURESERVER.NET> <1283462840.3809.42.camel@localhost.localdomain> <90C41DD21FB7C64BB94121FBBC2E72343B3F35BE2D@P3PW5EX1MB01.EX1.SECURESERVER.NET> <AANLkTinvch2Xc+LzMzVjQGjMx0yXHKheR=93D5ExJhzC@mail.gmail.com> <1285104656.15179.12.camel@localhost.localdomain> <AANLkTi=3iCCDzbtuzHx7iD1qVTGadiPMnBNpHuVyuC-b@mail.gmail.com>
In-Reply-To: <AANLkTi=3iCCDzbtuzHx7iD1qVTGadiPMnBNpHuVyuC-b@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Cc: "OAuth WG (oauth@ietf.org)" <oauth@ietf.org>
Subject: Re: [OAUTH-WG] Simpilfying use of assertions when requesting an access token
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: Wed, 22 Sep 2010 16:53:50 -0000

It's a question of use cases. Right now, a single assertion parameter seems to be useful. But there is no strong reason why the SAML spec can't register that as an extension. The thing is, once that is done, other specs using the same parameter (say, a future SAML spec for a newer version) will need to update the registry and potentially the RFC of the extension... Not pretty.

So if we have consensus that an assertion parameter is better than a saml2 and saml3 parameters for each extension, I'd say keep it in.

EHL

> -----Original Message-----
> From: Brian Campbell [mailto:bcampbell@pingidentity.com]
> Sent: Tuesday, September 21, 2010 3:20 PM
> To: Justin Richer
> Cc: Eran Hammer-Lahav; OAuth WG (oauth@ietf.org)
> Subject: Re: [OAUTH-WG] Simpilfying use of assertions when requesting an
> access token
> 
> I'm not sure one email from me asking for clarification exactly counts
> as a movement ;-)   I was just thinking that it'd be more consistent
> to have each uri-defined grant type define it's own parameter set.
> Really this is what is already happening with the core defined short names -
> the "authorization_code" grant type defines the "code" param, the
> "password" grant type defines the "username" and "password"
> params, and "refresh_token" defines "refresh_token".   The
> "client_credentials" grant type is a little different in that it doesn't directly
> define parameters but defers to a different part of the spec to do that but a
> uri extension could conceivably do something similar (point to other specs or
> other layers in the protocol stack or whatever).
> 
> Having said all that, however, I do see the logic in what you said about having
> the one assertion parameter.  But, I dunno, it just seems a little awkward
> there all by itself.
> 
> 
> On Tue, Sep 21, 2010 at 3:30 PM, Justin Richer <jricher@mitre.org> wrote:
> > I personally think it makes a certain amount of sense to have the
> > assertion parameter: if you have only one thing to say, here's where
> > to say it. And I think that we've got a few cases of assertions with
> > only a single string to assert. However, I was always concerned with
> > that single parameter as the *only* allowed parameter, which Eran has
> > said won't be a problem. That said, if there's a movement for dropping
> > it in favor of extension-defined parameter sets, I won't block it.
> >
> >  -- Justin
> >
> > On Tue, 2010-09-21 at 17:11 -0400, Brian Campbell wrote:
> >> Following from that (Justin: "url-defined grant type can also legally
> >> add and remove parameters from the endpoint, right?" / Eran: "Yes")
> >> does the assertion parameter still make sense to have in the core
> >> spec?  I had sort of assumed that it would be going away in favor of
> >> whatever parameters any url-defined grant type would deem necessary.
> >> However, Eran's "working copy" of draft -11 as of 2010-09-03 still
> >> has the assertion parameter.  Is that area still being worked on or
> >> was the intent to leave the parameter in for -11?
> >>
> >>
> >> On Thu, Sep 2, 2010 at 3:28 PM, Eran Hammer-Lahav
> <eran@hueniverse.com> wrote:
> >> > Yes.
> >> >
> >> > -----Original Message-----
> >> > From: Justin Richer [mailto:jricher@mitre.org]
> >> > Sent: Thursday, September 02, 2010 2:27 PM
> >> > To: Eran Hammer-Lahav
> >> > Cc: OAuth WG (oauth@ietf.org)
> >> > Subject: Re: [OAUTH-WG] Simpilfying use of assertions when
> >> > requesting an access token
> >> >
> >> > +1
> >> >
> >> > I've never liked the notion of not being able to extend the "grant type"
> >> > field, and this change addresses that particular gripe.
> >> >
> >> > Just so I'm clear here: an extension that defines its own url-defined
> grant type can also legally add and remove parameters from the endpoint,
> right?
> >> >
> >> >  -- Justin
> >> >
> >> > On Thu, 2010-09-02 at 17:11 -0400, Eran Hammer-Lahav wrote:
> >> >> I would like to make this change in -11:
> >> >>
> >> >>
> >> >>
> >> >> Instead of the current user of the 'assertion' grant type -
> >> >>
> >> >>
> >> >>
> >> >>   POST /token HTTP/1.1
> >> >>
> >> >>   Host: server.example.com
> >> >>
> >> >>   Content-Type: application/x-www-form-urlencoded
> >> >>
> >> >>
> >> >>
> >> >>   grant_type=assertion&
> >> >>
> >> >>
> >> >>
> assertion_type=urn%3Aoasis%3Anames%3Atc%3ASAML%3A2.0%3Aassertio
> n&
> >> >>
> >> >>   assertion=PHNhbWxwOl[...omitted for brevity...]ZT4%3D
> >> >>
> >> >>
> >> >>
> >> >> Drop the 'assertion' grant type and put the assertion type
> >> >> directly in the grant_type parameter:
> >> >>
> >> >>
> >> >>
> >> >>   POST /token HTTP/1.1
> >> >>
> >> >>   Host: server.example.com
> >> >>
> >> >>   Content-Type: application/x-www-form-urlencoded
> >> >>
> >> >>
> >> >>
> >>
> >>   grant_type=urn%3Aoasis%3Anames%3Atc%3ASAML%3A2.0%3Aassertio
> n&
> >> >>
> >> >>   assertion=PHNhbWxwOl[...omitted for brevity...]ZT4%3D
> >> >>
> >> >>
> >> >>
> >> >> In other words, the grant_type parameter value will be defined as:
> >> >>
> >> >>
> >> >>
> >> >> -          authorization_code
> >> >>
> >> >> -          password
> >> >>
> >> >> -          client_credentials
> >> >>
> >> >> -          refresh_token
> >> >>
> >> >> -          an abolute URI (extensions)
> >> >>
> >> >>
> >> >>
> >> >> I considered turning all the values into URIs but found it to be
> >> >> counter-intuitive. The practice of using "official" short names
> >> >> and extension URIs is well established and is already the general
> >> >> architecture used here. This just makes it cleaner.
> >> >>
> >> >>
> >> >>
> >> >> I ran this idea by Brian Campbell and Chuck Mortimore who are
> >> >> generally supportive of the idea.
> >> >>
> >> >>
> >> >>
> >> >> Any objections?
> >> >>
> >> >>
> >> >>
> >> >> EHL
> >> >>
> >> >>
> >> >>
> >> >>
> >> >
> >> >
> >> > _______________________________________________
> >> > OAuth mailing list
> >> > OAuth@ietf.org
> >> > https://www.ietf.org/mailman/listinfo/oauth
> >> >
> >
> >
> >