Return-Path: <bcampbell@pingidentity.com>
X-Original-To: oauth@ietfa.amsl.com
Delivered-To: oauth@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1])
 by ietfa.amsl.com (Postfix) with ESMTP id 3F925129422
 for <oauth@ietfa.amsl.com>; Mon, 27 Mar 2017 06:45:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level: 
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5
 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1,
 DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, SPF_PASS=-0.001,
 URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key)
 header.d=pingidentity.com
Received: from mail.ietf.org ([4.31.198.44])
 by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id aa-w5U_qvkIP for <oauth@ietfa.amsl.com>;
 Mon, 27 Mar 2017 06:45:06 -0700 (PDT)
Received: from mail-pg0-x229.google.com (mail-pg0-x229.google.com
 [IPv6:2607:f8b0:400e:c05::229])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by ietfa.amsl.com (Postfix) with ESMTPS id 315AE12778E
 for <oauth@ietf.org>; Mon, 27 Mar 2017 06:45:05 -0700 (PDT)
Received: by mail-pg0-x229.google.com with SMTP id 21so40679080pgg.1
 for <oauth@ietf.org>; Mon, 27 Mar 2017 06:45:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=pingidentity.com; s=gmail;
 h=mime-version:in-reply-to:references:from:date:message-id:subject:to
 :cc; bh=WK8pcEazT2S8RI74Y4O+BPrB5/t62sZHkuI4eA6+L/4=;
 b=LTmncJ9MLjEESlBQuHvi5T+YOJhGbx8Lq2jI/h2qJRN1duzDPJuc0asCG2DDbJ/qUs
 VWx6PNoII+tzTtWxCqSK2AJUBuID00hey0oOKFWBv7Jf/4JlGQS8q3V+9Z5mGpRkU1FQ
 PMTmwssw+N4jkbfSjYxFWYGaQkWohnYJ3vmm0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:in-reply-to:references:from:date
 :message-id:subject:to:cc;
 bh=WK8pcEazT2S8RI74Y4O+BPrB5/t62sZHkuI4eA6+L/4=;
 b=FeupEH6/ZfYhTVw6nGlyocdhPvNmQd9ESMRSsYvmqS9ZDRpjZRLhrkTJ4YyYdPsPYn
 rBCcohrZ6kwTVVXhGg78w9XpOxWHEjvt7D//PDKjNJukRH0bXxk1FNvUDDg2PSUw9D2g
 V/6/BDeIm7oTpoGegoKh1hvy/xF8PwW6bbtlOzb3Gxgmz/TcEQt7lRoWc2ZSOQ5wzFK6
 AvCbEXgtr3igiKhf2H045dus5jDeO5ydcXH5u92Wy3LOT88Vc/AjxkAIlh8midpDBNYb
 jC9dVQteqkRpOO1YVJSwqrVmpUWbLISflWeAwy4dwhJfb68ycdZcZQV5sZgD3MtsUZZF
 YKdQ==
X-Gm-Message-State: AFeK/H29VxIUV82obbwMwadvLca9pMuQ9NUVMfcyN9Kj/ba5UxBhLZv1ndBexuVYOrf1cGg5yIVAbjComXoOPbLK
X-Received: by 10.98.72.66 with SMTP id v63mr25510841pfa.8.1490622304431; Mon,
 27 Mar 2017 06:45:04 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.170.138 with HTTP; Mon, 27 Mar 2017 06:44:33 -0700 (PDT)
In-Reply-To: <9199091B-5D7F-4D66-9EC5-CB0EF2D3CF6D@lodderstedt.net>
References: <148416124213.8244.5842562779051799977.idtracker@ietfa.amsl.com>
 <CA+k3eCTE1NM90QcZRFR0jATCqdeJWyTRUb6Ryp52n9FRg6aGpA@mail.gmail.com>
 <9199091B-5D7F-4D66-9EC5-CB0EF2D3CF6D@lodderstedt.net>
From: Brian Campbell <bcampbell@pingidentity.com>
Date: Mon, 27 Mar 2017 08:44:33 -0500
Message-ID: <CA+k3eCTjmifjsbec80vGTE5Hw4ws7oARuaatDk4RYOLK26-87Q@mail.gmail.com>
To: Torsten Lodderstedt <torsten@lodderstedt.net>
Cc: oauth <oauth@ietf.org>
Content-Type: multipart/alternative; boundary=94eb2c0b7a2ef34e04054bb68cbf
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/xXFby2tMe984i2wbwOdEr4Xjk2o>
Subject: Re: [OAUTH-WG] I-D Action: draft-ietf-oauth-token-exchange-07.txt
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: OAUTH WG <oauth.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/oauth>,
 <mailto:oauth-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/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: Mon, 27 Mar 2017 13:45:14 -0000

--94eb2c0b7a2ef34e04054bb68cbf
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Thanks for the review and question, Torsten.

The desire to support multiple audience/resource values in the request came
up during a review and discussion among the authors of the document when
preparing the -03 draft. As I recall, it was said that both Salesforce and
Microsoft had use-cases for it. I incorporated support for it into the
draft acting in the role of editor.

>From an individual perspective, I tend to agree with you that allowing for
multiple audiences/resources adds a lot of complexity that's like not
needed in many (or most) cases. And I would personally be open to making
audience and resource mutual exclusive and single valued. A question for
the WG I suppose.

The "invalid_target" error code that was added in -07 was intended to give
the AS a standard way to deal with the complexity and reject request with
multiple audiences/resources that it doesn't understand or is unwilling or
unable to process. It was intended as a compromise, of sorts, to allow for
the multiples but provide an easy out of saying it can't be supported based
on whatever implementation or policy of the AS.




On Sun, Mar 26, 2017 at 9:00 AM, Torsten Lodderstedt <
torsten@lodderstedt.net> wrote:

> Hi Brian,
>
> thanks for the clarification around resource, audience and scope.
>
> Here are my comments on the draft:
>
> In section 2.1 it states: =E2=80=9EMultiple "resource" parameters may be =
used to
> indicate
>       that the issued token is intended to be used at the multiple
>       resources listed.=E2=80=9C
>
> Can you please explain the rational in more detail? I don=E2=80=99t under=
stand why
> there is a need to ask for access tokens, which are good for multiple
> resources at once. This is a request type more or less exclusively used i=
n
> server to server scenarios, right? So the only reason I can think of is
> call reduction.
>
> On the other side, this feature increases the AS's complexity, e.g. its
> policy may prohibit to issue tokens for multiple resources in general or
> the particular set the client is asking for. How shall the AS handles suc=
h
> cases?
>
> And it is getting even more complicated given there could also be multipl=
e
> audience values and the client could mix them:
>
> "Multiple "audience" parameters
>       may be used to indicate that the issued token is intended to be
>       used at the multiple audiences listed.  The "audience" and
>       "resource" parameters may be used together to indicate multiple
>       target services with a mix of logical names and physical
>       locations.=E2=80=9C
>
> And in the end the client may add some scope values to the =E2=80=9Emeal=
=E2=80=9C, which
> brings us to
>
> =E2=80=9EEffectively, the requested access rights of the
>    token are the cartesian product of all the scopes at all the target
>    services."
>
> I personally would suggest to drop support for multiple audience and
> resource parameters and make audience and resource mutual exclusive. I
> think this is sufficient and much easier to implement.
>
> kind regards,
> Torsten.
>
>
> Am 11.01.2017 um 20:04 schrieb Brian Campbell <bcampbell@pingidentity.com
> >:
>
> Draft -07 of "OAuth 2.0 Token Exchange" has been published. The primary
> change in -07 is the addition of a description of the relationship betwee=
n
> audience/resource/scope, which was a request or comment that came up duri=
ng
> the f2f meeting in Seoul.
>
> Excerpted from the Document History:
>
>    -07
>
>    o  Fixed typo (desecration -> discretion).
>    o  Added an explanation of the relationship between scope, audience
>       and resource in the request and added an "invalid_target" error
>       code enabling the AS to tell the client that the requested
>       audiences/resources were too broad.
>
>
> ---------- Forwarded message ----------
> From: <internet-drafts@ietf.org>
> Date: Wed, Jan 11, 2017 at 12:00 PM
> Subject: [OAUTH-WG] I-D Action: draft-ietf-oauth-token-exchange-07.txt
> To: i-d-announce@ietf.org
> Cc: oauth@ietf.org
>
>
>
> A New Internet-Draft is available from the on-line Internet-Drafts
> directories.
> This draft is a work item of the Web Authorization Protocol of the IETF.
>
>         Title           : OAuth 2.0 Token Exchange
>         Authors         : Michael B. Jones
>                           Anthony Nadalin
>                           Brian Campbell
>                           John Bradley
>                           Chuck Mortimore
>         Filename        : draft-ietf-oauth-token-exchange-07.txt
>         Pages           : 31
>         Date            : 2017-01-11
>
> Abstract:
>    This specification defines a protocol for an HTTP- and JSON- based
>    Security Token Service (STS) by defining how to request and obtain
>    security tokens from OAuth 2.0 authorization servers, including
>    security tokens employing impersonation and delegation.
>
>
> The IETF datatracker status page for this draft is:
> https://datatracker.ietf.org/doc/draft-ietf-oauth-token-exchange/
>
> There's also a htmlized version available at:
> https://tools.ietf.org/html/draft-ietf-oauth-token-exchange-07
>
> A diff from the previous version is available at:
> https://www.ietf.org/rfcdiff?url2=3Ddraft-ietf-oauth-token-exchange-07
>
>
> Please note that it may take a couple of minutes from the time of
> submission
> until the htmlized version and diff are available at tools.ietf.org.
>
> Internet-Drafts are also available by anonymous FTP at:
> ftp://ftp.ietf.org/internet-drafts/
>
> _______________________________________________
> 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
>
>
>

--94eb2c0b7a2ef34e04054bb68cbf
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><div>Thanks for the review and question, Torsten. <br=
><br></div>The desire to support multiple audience/resource values in the r=
equest came up during a review and discussion among the authors of the docu=
ment when preparing the -03 draft. As I recall, it was said that both Sales=
force and Microsoft had use-cases for it. I incorporated support for it int=
o the draft acting in the role of editor.<br><br></div><div>From an individ=
ual perspective, I tend to agree with you that allowing for multiple audien=
ces/resources adds a lot of complexity that&#39;s like not needed in many (=
or most) cases. And I would personally be open to making audience and resou=
rce mutual exclusive and single valued. A question for the WG I suppose.<br=
><br></div><div>The &quot;invalid_target&quot; error code that was added in=
 -07 was intended to give the AS a standard way to deal with the complexity=
 and reject request with multiple audiences/resources that it doesn&#39;t u=
nderstand or is unwilling or unable to process. It was intended as a compro=
mise, of sorts, to allow for the multiples but provide an easy out of sayin=
g it can&#39;t be supported based on whatever implementation or policy of t=
he AS. <br></div><div>=C2=A0 <br></div><div><br><br></div></div><div class=
=3D"gmail_extra"><br><div class=3D"gmail_quote">On Sun, Mar 26, 2017 at 9:0=
0 AM, Torsten Lodderstedt <span dir=3D"ltr">&lt;<a href=3D"mailto:torsten@l=
odderstedt.net" target=3D"_blank">torsten@lodderstedt.net</a>&gt;</span> wr=
ote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border=
-left:1px #ccc solid;padding-left:1ex"><div style=3D"word-wrap:break-word">=
Hi Brian,<div><br></div><div>thanks for the clarification around resource, =
audience and scope.=C2=A0</div><div><br></div><div><div>Here are my comment=
s on the draft:</div><div><br></div><div>In section 2.1 it states: =E2=80=
=9EMultiple &quot;resource&quot; parameters may be used to indicate</div><d=
iv>=C2=A0 =C2=A0 =C2=A0 that the issued token is intended to be used at the=
 multiple</div><div>=C2=A0 =C2=A0 =C2=A0 resources listed.=E2=80=9C</div><d=
iv><br></div><div>Can you please explain the rational in more detail? I don=
=E2=80=99t understand why there is a need to ask for access tokens, which a=
re good for multiple resources at once. This is a request type more or less=
 exclusively used in server to server scenarios, right? So the only reason =
I can think of is call reduction.=C2=A0</div><div><br></div><div>On the oth=
er side, this feature increases the AS&#39;s complexity, e.g. its policy ma=
y prohibit to issue tokens for multiple resources in general or the particu=
lar set the client is asking for. How shall the AS handles such cases?</div=
><div><br></div><div>And it is getting even more complicated given there co=
uld also be multiple audience values and the client could mix them:=C2=A0</=
div><div><br></div><div>&quot;Multiple &quot;audience&quot; parameters</div=
><div>=C2=A0 =C2=A0 =C2=A0 may be used to indicate that the issued token is=
 intended to be</div><div>=C2=A0 =C2=A0 =C2=A0 used at the multiple audienc=
es listed.=C2=A0 The &quot;audience&quot; and</div><div>=C2=A0 =C2=A0 =C2=
=A0 &quot;resource&quot; parameters may be used together to indicate multip=
le</div><div>=C2=A0 =C2=A0 =C2=A0 target services with a mix of logical nam=
es and physical</div><div>=C2=A0 =C2=A0 =C2=A0 locations.=E2=80=9C</div><di=
v><br></div><div>And in the end the client may add some scope values to the=
 =E2=80=9Emeal=E2=80=9C, which brings us to=C2=A0</div><div><br></div><div>=
=E2=80=9EEffectively, the requested access rights of the</div><div>=C2=A0 =
=C2=A0token are the cartesian product of all the scopes at all the target</=
div><div>=C2=A0 =C2=A0services.&quot;</div><div><br></div><div>I personally=
 would suggest to drop support for multiple audience and resource parameter=
s and make audience and resource mutual exclusive. I think this is sufficie=
nt and much easier to implement.</div><div><br></div><div>kind regards,</di=
v><div>Torsten.</div><div><div class=3D"h5"><div><br></div><div><br><div><b=
lockquote type=3D"cite"><div>Am 11.01.2017 um 20:04 schrieb Brian Campbell =
&lt;<a href=3D"mailto:bcampbell@pingidentity.com" target=3D"_blank">bcampbe=
ll@pingidentity.com</a>&gt;:</div><br class=3D"m_-945284380411239355Apple-i=
nterchange-newline"><div><div dir=3D"ltr">Draft -07 of &quot;OAuth 2.0 <spa=
n class=3D"m_-945284380411239355m_6317541698219329431gmail-il">Token</span>=
 <span class=3D"m_-945284380411239355m_6317541698219329431gmail-il">Exchang=
e</span>&quot;
 has been published. The primary change in -07 is the addition of a=20
description of the relationship between audience/resource/scope, which=20
was a request or comment that came up during the f2f meeting in Seoul. <br>=
<br>Excerpted from the Document History:<br><br>=C2=A0=C2=A0 -07<br><br>=C2=
=A0=C2=A0 o=C2=A0 Fixed typo (desecration -&gt; discretion).<br>=C2=A0=C2=
=A0 o=C2=A0 Added an explanation of the relationship between scope, audienc=
e<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 and resource in the request and added a=
n &quot;invalid_target&quot; error<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 code e=
nabling the AS to tell the client that the requested<br>=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 audiences/resources were too broad.<br><br><br><div class=3D"g=
mail_quote">---------- Forwarded message ----------<br>From: <b class=3D"gm=
ail_sendername"></b> <span dir=3D"ltr">&lt;<a href=3D"mailto:internet-draft=
s@ietf.org" target=3D"_blank">internet-drafts@ietf.org</a>&gt;</span><br>Da=
te: Wed, Jan 11, 2017 at 12:00 PM<br>Subject: [OAUTH-WG] I-D Action: draft-=
ietf-oauth-token-exchang<wbr>e-07.txt<br>To: <a href=3D"mailto:i-d-announce=
@ietf.org" target=3D"_blank">i-d-announce@ietf.org</a><br>Cc: <a href=3D"ma=
ilto:oauth@ietf.org" target=3D"_blank">oauth@ietf.org</a><br><br><br><br>
A New Internet-Draft is available from the on-line Internet-Drafts director=
ies.<br>
This draft is a work item of the Web Authorization Protocol of the IETF.<br=
>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Title=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0:=
 OAuth 2.0 Token Exchange<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Authors=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: Mich=
ael B. Jones<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 Anthony Nadalin<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 Brian Campbell<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 John Bradley<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 Chuck Mortimore<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Filename=C2=A0 =C2=A0 =C2=A0 =C2=A0 : draft-iet=
f-oauth-token-exchang<wbr>e-07.txt<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Pages=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0:=
 31<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Date=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 :=
 2017-01-11<br>
<br>
Abstract:<br>
=C2=A0 =C2=A0This specification defines a protocol for an HTTP- and JSON- b=
ased<br>
=C2=A0 =C2=A0Security Token Service (STS) by defining how to request and ob=
tain<br>
=C2=A0 =C2=A0security tokens from OAuth 2.0 authorization servers, includin=
g<br>
=C2=A0 =C2=A0security tokens employing impersonation and delegation.<br>
<br>
<br>
The IETF datatracker status page for this draft is:<br>
<a href=3D"https://datatracker.ietf.org/doc/draft-ietf-oauth-token-exchange=
/" rel=3D"noreferrer" target=3D"_blank">https://datatracker.ietf.org/d<wbr>=
oc/draft-ietf-oauth-token-exch<wbr>ange/</a><br>
<br>
There&#39;s also a htmlized version available at:<br>
<a href=3D"https://tools.ietf.org/html/draft-ietf-oauth-token-exchange-07" =
rel=3D"noreferrer" target=3D"_blank">https://tools.ietf.org/html/dr<wbr>aft=
-ietf-oauth-token-exchange-<wbr>07</a><br>
<br>
A diff from the previous version is available at:<br>
<a href=3D"https://www.ietf.org/rfcdiff?url2=3Ddraft-ietf-oauth-token-excha=
nge-07" rel=3D"noreferrer" target=3D"_blank">https://www.ietf.org/rfcdiff?u=
<wbr>rl2=3Ddraft-ietf-oauth-token-exc<wbr>hange-07</a><br>
<br>
<br>
Please note that it may take a couple of minutes from the time of submissio=
n<br>
until the htmlized version and diff are available at <a href=3D"http://tool=
s.ietf.org/" rel=3D"noreferrer" target=3D"_blank">tools.ietf.org</a>.<br>
<br>
Internet-Drafts are also available by anonymous FTP at:<br>
<a href=3D"ftp://ftp.ietf.org/internet-drafts/" rel=3D"noreferrer" target=
=3D"_blank">ftp://ftp.ietf.org/internet-dr<wbr>afts/</a><br>
<br>
______________________________<wbr>_________________<br>
OAuth mailing list<br>
<a href=3D"mailto:OAuth@ietf.org" target=3D"_blank">OAuth@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/oauth" rel=3D"noreferrer" =
target=3D"_blank">https://www.ietf.org/mailman/l<wbr>istinfo/oauth</a><br>
</div><br></div>
______________________________<wbr>_________________<br>OAuth mailing list<=
br><a href=3D"mailto:OAuth@ietf.org" target=3D"_blank">OAuth@ietf.org</a><b=
r><a href=3D"https://www.ietf.org/mailman/listinfo/oauth" target=3D"_blank"=
>https://www.ietf.org/mailman/<wbr>listinfo/oauth</a><br></div></blockquote=
></div><br></div></div></div></div></div></blockquote></div><br></div>

--94eb2c0b7a2ef34e04054bb68cbf--

