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

David Recordon <recordond@gmail.com> Fri, 10 September 2010 08:05 UTC

Return-Path: <recordond@gmail.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 C6C793A6A65 for <oauth@core3.amsl.com>; Fri, 10 Sep 2010 01:05:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.468
X-Spam-Level:
X-Spam-Status: No, score=-2.468 tagged_above=-999 required=5 tests=[AWL=0.130, BAYES_00=-2.599, HTML_MESSAGE=0.001]
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 EKuTEud7iEM0 for <oauth@core3.amsl.com>; Fri, 10 Sep 2010 01:04:55 -0700 (PDT)
Received: from mail-gx0-f172.google.com (mail-gx0-f172.google.com [209.85.161.172]) by core3.amsl.com (Postfix) with ESMTP id 6B3B53A6989 for <oauth@ietf.org>; Fri, 10 Sep 2010 01:04:55 -0700 (PDT)
Received: by gxk20 with SMTP id 20so1254279gxk.31 for <oauth@ietf.org>; Fri, 10 Sep 2010 01:05:22 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:cc:content-type; bh=bWCuv1EAhrYV4z+4/oH192wxqnSNR8/AV6fu5RTkCgc=; b=Xef+D3kWZUjZ8ZhMO86It75PcZdpD+pG3SFDPG0PqEAXeuRcgxlGnLtpfmNSCLJwQz I2DKyKR5lqrmJQIY2yL361itkBgMUtWXZDL7DT9T6U+Y2PrZfXvSpKLndUH6UQmHVJZg zIt555veinojabkKu6Vjbc/S1BJNPsIoPdO/w=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=o4UiwfpsCR42N2NkBqwnQ7gO24rEt/QCWYHXl4mMfioV4W4WvN/OZxV8HfKi+RpGPS 6e0xlN6p4gbGPL4EmV61SsMYvoL0PxgPBsmmbF8HRX6HTYs7iTFU2tsBD58+3yVm9PaL xu0anADuMfIn7WwcA1qRlizMTDnM2lxjbJ4fM=
MIME-Version: 1.0
Received: by 10.101.183.33 with SMTP id k33mr246246anp.16.1284105922264; Fri, 10 Sep 2010 01:05:22 -0700 (PDT)
Received: by 10.101.119.7 with HTTP; Fri, 10 Sep 2010 01:05:22 -0700 (PDT)
In-Reply-To: <20D537B5-432F-422D-B415-63276C2970CA@alkaline-solutions.com>
References: <90C41DD21FB7C64BB94121FBBC2E72343B3F35BE13@P3PW5EX1MB01.EX1.SECURESERVER.NET> <20D537B5-432F-422D-B415-63276C2970CA@alkaline-solutions.com>
Date: Fri, 10 Sep 2010 01:05:22 -0700
Message-ID: <AANLkTikXb_2Fk_Mhw2EeLVFYS3rN1W34rY_NKy4eM-v0@mail.gmail.com>
From: David Recordon <recordond@gmail.com>
To: David Waite <david@alkaline-solutions.com>
Content-Type: multipart/alternative; boundary="001636c929c359bf8b048fe335f5"
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: Fri, 10 Sep 2010 08:05:11 -0000

One of the things I really liked about WRAP (which we've largely preserved
in 2.0) is more specific flows for the different use cases. I generally
don't think that we should make this anymore generic than it already is. I
do think that merging the assertion type into the grant type parameter is
the right decision for the assertion use cases.


On Fri, Sep 10, 2010 at 12:37 AM, David Waite
<david@alkaline-solutions.com>wrote:

> I think combining the grant_type and assertion_type together is a great
> idea. However, I have recently been wondering if it would be a good idea to
> unify all the access grants to use the same parameters.
>
> For instance, you could have the parameters:
>
>        grant_type - the type of access grant (of course)
>        grant_qualifier - an identifier or URI associated with the grant
>        grant_value - the data (such as an opaque or secret value) used for
> a particular type of access grant
>
> So for the grant types mentioned below, you would have:
>
>        password:
>                a grant_qualifier of the user identifier, and a grant_value
> of their password
>
>        client_credentials:
>                a grant_qualifier of the client identifier, and a
> grant_value of the shared secret
>
>        refresh_token:
>                no grant_qualifier, a grant_value of the refresh token
>
>        authorization_code:
>                a grant_qualifier of the callback URI used to return the
> authorization code to the client, and a grant_value of the actual code
>
>        <SAML assertion extension URI>:
>                no grant_qualifier, a grant_value of the assertion as a
> string
>
> This would seem to have the following benefits:
>        - A number of query parameters defined to be used only in cases of a
> particular grant_type value would be eliminated
>        - The qualifier/value would provide a guideline for structuring new
> grant types
>        - The "grant_" prefix for the parameters could provide a logical
> grouping for any additional parameters, if a new grant type required more
> than the qualifier/value pair above.
>
> I must admit however, I had difficulty figuring out how to phrase
> 'qualifier' so that it would apply to a callback URI. I think it makes sense
> in that an authorization code is issued against and only valid for a
> specific callback URI, but would understand if this came off feeling like
> overloading that parameter.
>
> -David Waite
>
> On Sep 2, 2010, at 3:11 PM, 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%3Aassertion&
> >   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%3Aassertion&
> >   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
>
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth
>