Return-Path: <dick.hardt@gmail.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 0C08B1200B8
 for <oauth@ietfa.amsl.com>; Mon, 22 Jul 2019 14:46:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level: 
X-Spam-Status: No, score=-1.997 tagged_above=-999 required=5
 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1,
 DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001,
 RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001,
 URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key)
 header.d=gmail.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 uX8_1VTQDfCg for <oauth@ietfa.amsl.com>;
 Mon, 22 Jul 2019 14:46:32 -0700 (PDT)
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [IPv6:2a00:1450:4864:20::12e])
 (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 223841200B6
 for <oauth@ietf.org>; Mon, 22 Jul 2019 14:46:32 -0700 (PDT)
Received: by mail-lf1-x12e.google.com with SMTP id b29so20531073lfq.1
 for <oauth@ietf.org>; Mon, 22 Jul 2019 14:46:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; 
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=ho2Fnu9EaXFdQ94b8Hn+NLR1dQ6LIb6YPviowWxH0G4=;
 b=cjNQQez8JB6m6ls80nh8vNDfh69qU4FycJnBcgk/0flgqb5nVnuumP9kv8uLpKS2o0
 iy3QPdwNYVQnIH6X/R/lDERB6/eePAB1owfcXCknEv2ovl/AtDi2uzB5CcYArxICGYkz
 kjtxIAKY07jZV+duMM0Qu4abzwJF4ejYv+4qKBUigh7rhw+Zwnu+TaEF/C4GubAlHY0+
 IlLejJRmFcSgnlhNkKauOdUNe3OXtQe0DDL7GcqgwZrLUfzxm9M91aTRFnHSGaLas4mm
 OXZ8QWhN3Cd+1x70on4ZSmce1iUGWGUftsCCjXUkUicBXBTOuHz9Vq1lkfMoJ8MyIReg
 k+YA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=ho2Fnu9EaXFdQ94b8Hn+NLR1dQ6LIb6YPviowWxH0G4=;
 b=AUkE9zvc4KlVds41fAXXpcsqZ7mib8sse+wh9hBOwgogmDhtMgS4ZIXxcpvb7UnKEe
 hwSe7xMRzb0xm+QAVvPBP4uJW6rYbLj+thG6wBXrlo4R/jga9LAgg/8yfYOsMkJFXyXH
 ijGpZIXhwLjQAMyeg+T02r7BKJ3wnCVRj87NpBL41BgyNn5zkB3XfRODKqkqmBji1di/
 eQ2CBN7uUpNNBm4a7tiR9eJIsgxxSOp10OuJPsc7zCRVxx5oCGthXHFOmmwKR1kRITFt
 c9kN/EqGPwGz2RPIM1WNno0BQHvU+V8r1NycU58foSnrG/fQ1ybIiwGcaZYk1VuYtM+F
 fckg==
X-Gm-Message-State: APjAAAUjrSTdVKq77cjhAl/q4aygBz3IvQApJWnZfyMZGyOV/t1072aG
 K3w3owGt4yQjoe1fcWuety65aWNC8ptiMyTMoG4=
X-Google-Smtp-Source: APXvYqzaqugvwY8LLQFmf7qULIZXzJMxwU2mOWAebj2vocHd/zxPYZBFHnvee2lAWRm8wo4vdLjrFM+1lsO/ERn2WpA=
X-Received: by 2002:ac2:546a:: with SMTP id e10mr33651854lfn.75.1563831990256; 
 Mon, 22 Jul 2019 14:46:30 -0700 (PDT)
MIME-Version: 1.0
References: <BD2D90C8-B629-4955-A22C-6E80E6390EEE@mit.edu>
 <CAGBSGjr+kfiavvzhPDF2SaBLDAjusoOGjvgTA85FadM+s_2u=A@mail.gmail.com>
 <E041DFD5-0501-471E-94B3-D1B36595F0BB@forgerock.com>
 <CAD9ie-smP4dyMPQAuMvD8AxXV1KNuLwBuYFRPtQDVCRBKkd-2A@mail.gmail.com>
 <06AF6986-B2D2-4B00-B8DA-0DB2F7C1FA8F@forgerock.com>
In-Reply-To: <06AF6986-B2D2-4B00-B8DA-0DB2F7C1FA8F@forgerock.com>
From: Dick Hardt <dick.hardt@gmail.com>
Date: Mon, 22 Jul 2019 17:46:19 -0400
Message-ID: <CAD9ie-uQGEwpOEhR2fVT_teCn=xXze2Hz5p23S4mY0GmuJJYkw@mail.gmail.com>
To: Neil Madden <neil.madden@forgerock.com>
Cc: Aaron Parecki <aaron@parecki.com>, oauth <oauth@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000448906058e4c02e5"
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/sX1Phsqd7Q22NKGtmqk3Q_Oc--c>
Subject: Re: [OAUTH-WG] Transaction Authorization
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.29
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, 22 Jul 2019 21:46:35 -0000

--000000000000448906058e4c02e5
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Neil

I see that you are looking at how to modify Justin's proposal, and I'm
looking at what are the requirements.

Ignoring the specifics, is there a reason why multiple tokens need to be
returned in the same request?


On Mon, Jul 22, 2019 at 9:41 AM Neil Madden <neil.madden@forgerock.com>
wrote:

>
> On 21 Jul 2019, at 22:22, Dick Hardt <dick.hardt@gmail.com> wrote:
>
> Hi Neil, I agree that an access token that is usable across resources is
> problematic.
>
> How are you thinking multiple access tokens would be returned?
>
>
> Well there are lots of possible ways, e.g.:
>
> {
> "tokens": [
>     { "resource": "https://res1", "access_token": "..." },
>     { "resource": "res2", ...}, ...
> ]
> }
>
> I'm not particularly wedded to any format.
>
> Why do you think the request needs to return multiple tokens rather than
> making a separate request for each token? That would seem to simplify the
> request and response as context would only need to provided for the one
> access token.
>
>
> Note that in Aaron's proposal we have a "user" section on (presumably)
> every access token response, which indicates a userinfo endpoint that
> itself needs an access token. So either the same access token is used to
> access that userinfo endpoint (which means that the RS can also access th=
e
> userinfo endpoint), or else we already need to return a second access tok=
en
> in the same request, e.g.:
>
> {
>       "access_token": {
>         "value": "UM1P9PMHKUR64TB8N6BW7OZB8CDFONP219RP1LT0",
>         "type": "bearer"
>       },
>       "user": {
>         "id": "5035678642",
>         "userinfo": "https://authorization-server.com/user/5035678642",
>         "userinfo_at": "b0Dl3KsXXOGc7tWfFLZYv7G5bXk"
>       }
>     }
>
>
>
>
> On Fri, Jul 19, 2019 at 11:42 PM Neil Madden <neil.madden@forgerock.com>
> wrote:
>
>> If we=E2=80=99re going to redesign OAuth, one improvement would be to al=
low a
>> client to request different access tokens for different resource servers=
 in
>> a single request. That should include issuing a different access token f=
or
>> the userinfo endpoint vs other RSes.
>>
>> One of the weaknesses of combined OAuth + OIDC use now is that if you
>> request OIDC scopes and scopes for another resource in the same request
>> then you inadvertently give those other RSes access to the user=E2=80=99=
s profile.
>>
>> =E2=80=94 Neil
>>
>> On 20 Jul 2019, at 01:02, Aaron Parecki <aaron@parecki.com> wrote:
>>
>> Hi all, I'm looking forward to the discussion on this on Tuesday!
>>
>> I wanted to add my thoughts on a potential addition to this draft,
>> specifically around returning some minimal user information in the
>> transaction response.
>>
>> The summary of the suggestion is to return a new "user" key along with
>> the access token that contains the user ID and userinfo endpoint, such a=
s:
>>
>>     {
>>       "access_token": {
>>         "value": "UM1P9PMHKUR64TB8N6BW7OZB8CDFONP219RP1LT0",
>>         "type": "bearer"
>>       },
>>       "user": {
>>         "id": "5035678642",
>>         "userinfo": "https://authorization-server.com/user/5035678642"
>>       }
>>     }
>>
>> A more detailed analysis of the specific proposal and motivation behind
>> this is available on my blog:
>>
>> https://aaronparecki.com/2019/07/18/17/adding-identity-to-xyz
>>
>> Thanks!
>>
>> ----
>> Aaron Parecki
>> aaronparecki.com
>> @aaronpk <http://twitter.com/aaronpk>
>>
>>
>>
>> On Tue, Jul 9, 2019 at 2:48 PM Justin Richer <jricher@mit.edu> wrote:
>>
>>> I have requested time to present Transactional Authorization (the XYZ
>>> project) at the Montreal meeting in a couple weeks. Ahead of that, I=E2=
=80=99ve
>>> uploaded a new version of the spec:
>>>
>>> https://tools.ietf.org/html/draft-richer-transactional-authz-02
>>>
>>> Additionally, I=E2=80=99ve updated the writeup and examples on
>>> https://oauth.xyz/
>>>
>>> I plan to be in Montreal for the whole week, and I=E2=80=99ve requested=
 from the
>>> chairs that I present during the Tuesday session due to limited
>>> availability of some key WG members on Friday.
>>>
>>> =E2=80=94 Justin
>>>
>>> _______________________________________________
>>> 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
>>
>
>

--000000000000448906058e4c02e5
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi Neil<div><br></div><div>I see that you are looking at h=
ow to modify Justin&#39;s proposal, and I&#39;m looking at what are the req=
uirements.</div><div><br></div><div>Ignoring the specifics, is there a reas=
on why multiple tokens need to be returned in the same request?</div><div><=
br></div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gma=
il_attr">On Mon, Jul 22, 2019 at 9:41 AM Neil Madden &lt;<a href=3D"mailto:=
neil.madden@forgerock.com">neil.madden@forgerock.com</a>&gt; wrote:<br></di=
v><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;borde=
r-left:1px solid rgb(204,204,204);padding-left:1ex"><div style=3D"overflow-=
wrap: break-word;"><br><div><blockquote type=3D"cite"><div>On 21 Jul 2019, =
at 22:22, Dick Hardt &lt;<a href=3D"mailto:dick.hardt@gmail.com" target=3D"=
_blank">dick.hardt@gmail.com</a>&gt; wrote:</div><br class=3D"gmail-m_25488=
72296769470915Apple-interchange-newline"><div><div dir=3D"ltr">Hi Neil, I a=
gree that an access token that is usable across resources is problematic.<d=
iv><br></div><div>How are you thinking multiple access tokens would be retu=
rned?</div></div></div></blockquote><div><br></div><div>Well there are lots=
 of possible ways, e.g.:</div><div><br></div><div>{</div><div>&quot;tokens&=
quot;: [</div><div>=C2=A0 =C2=A0 { &quot;resource&quot;: &quot;<a href=3D"h=
ttps://res1" target=3D"_blank">https://res1</a>&quot;, &quot;access_token&q=
uot;: &quot;...&quot; },=C2=A0</div><div>=C2=A0 =C2=A0 { &quot;resource&quo=
t;: &quot;res2&quot;, ...}, ...</div><div>]</div><div>}</div><div><br></div=
><div>I&#39;m not particularly wedded to any format.</div><div><br></div><b=
lockquote type=3D"cite"><div><div dir=3D"ltr"><div>Why do you think the req=
uest needs to return multiple tokens rather than making a separate request =
for each token? That would seem to simplify the request and response as con=
text would only need to provided for the one access token.</div></div></div=
></blockquote><div><br></div><div>Note that in Aaron&#39;s proposal we have=
 a &quot;user&quot; section on (presumably) every access token response, wh=
ich indicates a userinfo endpoint that itself needs an access token. So eit=
her the same access token is used to access that userinfo endpoint (which m=
eans that the RS can also access the userinfo endpoint), or else we already=
 need to return a second access token in the same request, e.g.:</div><div>=
<br></div><div><span style=3D"font-family:HelveticaNeue">{</span><br style=
=3D"font-family:HelveticaNeue"><span style=3D"font-family:HelveticaNeue">=
=C2=A0 =C2=A0=C2=A0=C2=A0 &quot;access_token&quot;: {</span><br style=3D"fo=
nt-family:HelveticaNeue"><span style=3D"font-family:HelveticaNeue">=C2=A0 =
=C2=A0=C2=A0=C2=A0 =C2=A0 &quot;value&quot;: &quot;UM1P9PMHKUR64TB8N6BW7OZB=
8CDFONP219RP1LT0&quot;,</span><br style=3D"font-family:HelveticaNeue"><span=
 style=3D"font-family:HelveticaNeue">=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0 &quot=
;type&quot;: &quot;bearer&quot;</span><br style=3D"font-family:HelveticaNeu=
e"><span style=3D"font-family:HelveticaNeue">=C2=A0 =C2=A0=C2=A0=C2=A0 },</=
span><br style=3D"font-family:HelveticaNeue"><span style=3D"font-family:Hel=
veticaNeue">=C2=A0 =C2=A0=C2=A0=C2=A0 &quot;user&quot;: {</span><br style=
=3D"font-family:HelveticaNeue"><span style=3D"font-family:HelveticaNeue">=
=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0 &quot;id&quot;: &quot;5035678642&quot;,</s=
pan><br style=3D"font-family:HelveticaNeue"><span style=3D"font-family:Helv=
eticaNeue">=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0 &quot;userinfo&quot;: &quot;</s=
pan><a href=3D"https://authorization-server.com/user/5035678642" style=3D"f=
ont-family:HelveticaNeue" target=3D"_blank">https://authorization-server.co=
m/user/5035678642</a><span style=3D"font-family:HelveticaNeue">&quot;,</spa=
n></div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;userinfo_at&quot;: &quot;b0D=
l3KsXXOGc7tWfFLZYv7G5bXk&quot;<br style=3D"font-family:HelveticaNeue"><span=
 style=3D"font-family:HelveticaNeue">=C2=A0 =C2=A0=C2=A0=C2=A0 }</span><br =
style=3D"font-family:HelveticaNeue"><span style=3D"font-family:HelveticaNeu=
e">=C2=A0 =C2=A0=C2=A0}</span></div><br><blockquote type=3D"cite"><div><div=
 dir=3D"ltr"><div><br></div><div><br></div></div><br><div class=3D"gmail_qu=
ote"><div dir=3D"ltr" class=3D"gmail_attr">On Fri, Jul 19, 2019 at 11:42 PM=
 Neil Madden &lt;<a href=3D"mailto:neil.madden@forgerock.com" target=3D"_bl=
ank">neil.madden@forgerock.com</a>&gt; wrote:<br></div><blockquote class=3D=
"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(2=
04,204,204);padding-left:1ex"><div dir=3D"auto"><div dir=3D"ltr"></div><div=
 dir=3D"ltr">If we=E2=80=99re going to redesign OAuth, one improvement woul=
d be to allow a client to request different access tokens for different res=
ource servers in a single request. That should include issuing a different =
access token for the userinfo endpoint vs other RSes.=C2=A0</div><div dir=
=3D"ltr"><br></div><div dir=3D"ltr">One of the weaknesses of combined OAuth=
 + OIDC use now is that if you request OIDC scopes and scopes for another r=
esource in the same request then you inadvertently give those other RSes ac=
cess to the user=E2=80=99s profile.=C2=A0</div><div dir=3D"ltr"><br></div><=
div dir=3D"ltr">=E2=80=94 Neil</div><div dir=3D"ltr"><br>On 20 Jul 2019, at=
 01:02, Aaron Parecki &lt;<a href=3D"mailto:aaron@parecki.com" target=3D"_b=
lank">aaron@parecki.com</a>&gt; wrote:<br><br></div><blockquote type=3D"cit=
e"><div dir=3D"ltr"><div dir=3D"ltr">Hi all, I&#39;m looking forward to the=
 discussion on this on Tuesday!<div><br></div><div>I wanted to add my thoug=
hts on a potential addition to this draft, specifically around returning so=
me minimal user information in the transaction response.</div><div><br></di=
v><div>The summary of the suggestion is to return a new &quot;user&quot; ke=
y along with the access token that contains the user ID and userinfo endpoi=
nt, such as:</div><div><br></div><div>=C2=A0 =C2=A0 {<br>=C2=A0 =C2=A0=C2=
=A0=C2=A0 &quot;access_token&quot;: {<br>=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0 &=
quot;value&quot;: &quot;UM1P9PMHKUR64TB8N6BW7OZB8CDFONP219RP1LT0&quot;,<br>=
=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0 &quot;type&quot;: &quot;bearer&quot;<br>=
=C2=A0 =C2=A0=C2=A0=C2=A0 },<br>=C2=A0 =C2=A0=C2=A0=C2=A0 &quot;user&quot;:=
 {<br>=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0 &quot;id&quot;: &quot;5035678642&quo=
t;,<br>=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0 &quot;userinfo&quot;: &quot;<a href=
=3D"https://authorization-server.com/user/5035678642" target=3D"_blank">htt=
ps://authorization-server.com/user/5035678642</a>&quot;<br>=C2=A0 =C2=A0=C2=
=A0=C2=A0 }<br>=C2=A0 =C2=A0=C2=A0}<br><div><br></div><div>A more detailed =
analysis of the specific proposal and motivation behind this is available o=
n my blog:</div><div><br></div><div><a href=3D"https://aaronparecki.com/201=
9/07/18/17/adding-identity-to-xyz" target=3D"_blank">https://aaronparecki.c=
om/2019/07/18/17/adding-identity-to-xyz</a><br></div><div><br></div><div>Th=
anks!</div><div><br clear=3D"all"><div><div dir=3D"ltr" class=3D"gmail-m_25=
48872296769470915gmail-m_912130507597235530gmail_signature"><div>----</div>=
<div>Aaron Parecki</div><div><a href=3D"http://aaronparecki.com/" target=3D=
"_blank">aaronparecki.com</a></div><div><a href=3D"http://twitter.com/aaron=
pk" target=3D"_blank">@aaronpk</a></div><div><br></div></div></div><br></di=
v></div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmai=
l_attr">On Tue, Jul 9, 2019 at 2:48 PM Justin Richer &lt;<a href=3D"mailto:=
jricher@mit.edu" target=3D"_blank">jricher@mit.edu</a>&gt; wrote:<br></div>=
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-=
left:1px solid rgb(204,204,204);padding-left:1ex">



<div>
I have requested time to present Transactional Authorization (the XYZ proje=
ct) at the Montreal meeting in a couple weeks. Ahead of that, I=E2=80=99ve =
uploaded a new version of the spec:
<div><br>
</div>
<div><a href=3D"https://tools.ietf.org/html/draft-richer-transactional-auth=
z-02" target=3D"_blank">https://tools.ietf.org/html/draft-richer-transactio=
nal-authz-02</a></div>
<div><br>
</div>
<div>Additionally, I=E2=80=99ve updated the writeup and examples on <a href=
=3D"https://oauth.xyz/" target=3D"_blank">
https://oauth.xyz/</a>=C2=A0</div>
<div><br>
</div>
<div>I plan to be in Montreal for the whole week, and I=E2=80=99ve requeste=
d from the chairs that I present during the Tuesday session due to limited =
availability of some key WG members on Friday.=C2=A0</div>
<div><br>
<div>
<div style=3D"font-family:Helvetica;font-size:12px;font-style:normal;font-v=
ariant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:star=
t;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;t=
ext-decoration:none">
=E2=80=94 Justin</div>
</div>
<br>
</div>
</div>

_______________________________________________<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/listinfo/oauth</a><br>
</blockquote></div>
</div></blockquote><blockquote type=3D"cite"><div dir=3D"ltr"><span>_______=
________________________________________</span><br><span>OAuth mailing list=
</span><br><span><a href=3D"mailto:OAuth@ietf.org" target=3D"_blank">OAuth@=
ietf.org</a></span><br><span><a href=3D"https://www.ietf.org/mailman/listin=
fo/oauth" target=3D"_blank">https://www.ietf.org/mailman/listinfo/oauth</a>=
</span><br></div></blockquote></div>_______________________________________=
________<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/listinfo/oauth</a><br>
</blockquote></div>
</div></blockquote></div><br></div></blockquote></div>

--000000000000448906058e4c02e5--

