From wparad@rhosys.ch  Tue Feb 20 11:41:27 2024
Return-Path: <wparad@rhosys.ch>
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 4986DC180B5D
 for <oauth@ietfa.amsl.com>; Tue, 20 Feb 2024 11:41:27 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.086
X-Spam-Level: 
X-Spam-Status: No, score=-2.086 tagged_above=-999 required=5
 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1,
 DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001,
 RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001,
 SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01,
 T_REMOTE_IMAGE=0.01, T_SCC_BODY_TEXT_LINE=-0.01,
 URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001]
 autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key)
 header.d=rhosys.ch
Received: from mail.ietf.org ([50.223.129.194])
 by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id nrVXEb_pbxqE for <oauth@ietfa.amsl.com>;
 Tue, 20 Feb 2024 11:41:22 -0800 (PST)
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [IPv6:2a00:1450:4864:20::62d])
 (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by ietfa.amsl.com (Postfix) with ESMTPS id CEA8EC180B59
 for <oauth@ietf.org>; Tue, 20 Feb 2024 11:41:22 -0800 (PST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-a27e7b70152so251331366b.0
 for <oauth@ietf.org>; Tue, 20 Feb 2024 11:41:22 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=rhosys.ch; s=google; t=1708458080; x=1709062880; darn=ietf.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=i8XfQ+JE6Xm3/hl0tZ2nPmcqFlac4E2+Q/ddd3/DDYs=;
 b=B2Ro/fBVaX60vK9OG+xQgvHxNMOcPnG/X34wgVOIzWyLOO6GvvEv0U3MnlycXptfOp
 nn7xsoVBSmKSiugjYduxGAKxI8fBiFZBmp8+5Nw1dSMnR/YPw850Vx01QDbsmw3ezY0h
 F/KGVa571VNnv7+SR4PdwcGtRW3DmxvT7XXav1yOttltAiTwxdbQFPWt5fx1FGvc9OVK
 +4TLBfyvDT1KX8wROAWlbaLlCbzMjIvZ5COlUHQKWVfjFTcmBVdxUs1DBMfJl6hbrdQL
 CNHBd8mAgJ/stU8lCf0l8yhZMxdOZc3lArdk0sxksVzBwINwt/FiqDi7wunyd8hjKFf4
 VlbA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1708458080; x=1709062880;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=i8XfQ+JE6Xm3/hl0tZ2nPmcqFlac4E2+Q/ddd3/DDYs=;
 b=brdZFmtuR2xwywo7siEI3lcK784fkb9u4j0uzaQNFpaEwGn9E5EmL/la8ZIkp1tbBh
 BryyrYDOu6NBsJ+3gKB/ZtDLjoODrwMcpuNPKWQkchK9AahIXkJQOUoEr2E+mMbpNMMP
 mf+wUvNc4eHTs94qYQ23lnx547nP2MJSAIqDiwvTU8WApDsB2Goa0Q23f4UrT0Vt19Rf
 ZJvs/Ad5PmR+ZRnhrBPhzioVV1WiUYZn19aRXsL/wqrLxBGxx60lqaLcyeoNQdGHgPTp
 jT8UEskdFX/siGoIvKfwNVClE6AJvPjT5bDqu092vGtwFwwlfoAQ4oE50FFkthwij5Dc
 564A==
X-Forwarded-Encrypted: i=1;
 AJvYcCV7JwS1iv1tii8LUBKBTa9yUu5wdf6j9Ux400EgEmibjZT37efIFcOzyKVSGTvbP8qEsbHYTRYn7S9xooTDRA==
X-Gm-Message-State: AOJu0YyPLTnk9WaDuvwF1/v8xTP0SdmyiYTp9ylsb6D5eNP9MgvAnq3/
 aGqcHEWcDPtodylMf3gFwxDiI7cFkfoXWvXibsjC6k7NxmVw9P7d/IylA0drcgHxIU6RApiWY+e
 IzzqkSOO0ir5XuW8hRTd4T3+Eh9Ox0H1iS/DC
X-Google-Smtp-Source: AGHT+IFKzR8Y4Jq5HEFDN7Qh1nLLdRyLgF5PM9xspHjPUYuycL2XgaA5dpg/HH1iceCFZdPE86psXGv6TFgCSMFhJAo=
X-Received: by 2002:a17:907:7751:b0:a3e:4919:4fea with SMTP id
 kx17-20020a170907775100b00a3e49194feamr4886330ejc.0.1708458080403; Tue, 20
 Feb 2024 11:41:20 -0800 (PST)
MIME-Version: 1.0
References: <CAD=XBCog_o8GzpDMTYKvvi=2mneM0nW0vfCc=FubtOFNF5WM=A@mail.gmail.com>
 <374ADB2C-2F74-4B95-8CDA-3266089CD00C@gmail.com>
 <CAD=XBCqs-Qf7P--KvqQcJq37Agh3gn-bfwfj7tZvwdngx+4k+A@mail.gmail.com>
In-Reply-To: <CAD=XBCqs-Qf7P--KvqQcJq37Agh3gn-bfwfj7tZvwdngx+4k+A@mail.gmail.com>
From: Warren Parad <wparad@rhosys.ch>
Date: Tue, 20 Feb 2024 20:41:09 +0100
Message-ID: <CAJot-L0fZNTCe+m=QiKjbTprn=uLZoWnQ71XcWA2S0gP2xVB-A@mail.gmail.com>
To: Sachin Mamoru <sachinmamoru@gmail.com>
Cc: Neil Madden <neil.e.madden@gmail.com>, oauth@ietf.org, janak@wso2.com, 
 thilinasenarath97@gmail.com, "piraveena@wso2.com" <piraveena@wso2.com>
Content-Type: multipart/alternative; boundary="000000000000ff31ad0611d5647a"
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/_D9SBhD0t49j7XoClorDEwzvnMg>
Subject: Re: [OAUTH-WG] Evaluation of Scope Management in Refresh Token
 Behavior
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.39
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: Tue, 20 Feb 2024 19:41:27 -0000

--000000000000ff31ad0611d5647a
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Sachin,

Why does it matter what Curity does here? Is the question about what should
happen according to the specification or whether or not Curity is compliant
with the spec when it comes to refresh tokens?

- Warren

On Tue, Feb 20, 2024 at 8:27=E2=80=AFPM Sachin Mamoru <sachinmamoru@gmail.c=
om>
wrote:

> Hi Neil,
>
> Thanks for the clarification.
> But Curity has a different approach and they implemented it according to
> the concept of narrowing down the refresh token scopes.
>
> "The scope was originally read openid profile and after refresh the
> access was reduced to read profile (i.e., the access_token now only has r=
ead
> profile scope and any new tokens obtained using the refresh token
> daa38700-ba96-4ef1-8b30-5cb3527aae19 will have the same, reduced scope).
> Note that *increasing* the scope of access cannot be done in this way
> unless first reduced and increased back to the original scope."
>
> [1]
> https://curity.io/resources/learn/refresh-tokens/#changing-scope-of-acces=
s-token-on-refresh
>
> Thanks & Regards,
> Sachin
>
> On Tue, 20 Feb 2024 at 21:59, Neil Madden <neil.e.madden@gmail.com> wrote=
:
>
>>
>>
>> On 20 Feb 2024, at 11:02, Sachin Mamoru <sachinmamoru@gmail.com> wrote:
>>
>> =EF=BB=BF
>> Hi Neil,
>>
>> Does that mean it should be identical to the narrowed scope request or
>> the original request scope?
>>
>>
>> It says it has to be identical to the scope of the existing refresh toke=
n
>> in the request, not the scope specified in the request. So effectively y=
ou
>> can never downscope a refresh token in this way. Whatever scope you
>> specify, any RT returned must always retain the original scope.
>>
>> (There are other ways to downscope a RT, eg ForgeRock=E2=80=99s macaroon=
s allow
>> you to attenuate the scope if you wish).
>>
>> =E2=80=94 Neil
>>
>>
>> On Tue, 20 Feb 2024 at 16:31, Sachin Mamoru <sachinmamoru@gmail.com>
>> wrote:
>>
>>>
>>>
>>> On Tue, 20 Feb 2024 at 12:23, Neil Madden <neil.e.madden@gmail.com>
>>> wrote:
>>>
>>>>
>>>> On 20 Feb 2024, at 06:44, Sachin Mamoru <sachinmamoru@gmail.com> wrote=
:
>>>>
>>>> =EF=BB=BF
>>>> Hi All,
>>>>
>>>> When we request an access token using 3 scopes (scope1, scope2, scope3=
).
>>>>
>>>> Then will receive a refresh token (refresh_token1) with the access
>>>> token.
>>>>
>>>> After that will request another access token with refresh_token1 and
>>>> provide the scope list as scope1 and scope2 (Narrow down scopes).
>>>>
>>>> Similarly, get another refresh token (refresh_token2) with the access
>>>> token.
>>>>
>>>> Now if we request another access token with refresh_token2, we cannot
>>>> request scope3, instead, we can either request both scope1 and scope2 =
or
>>>> one of them.
>>>>
>>>> But in the specification, didn't able to find anything related to
>>>> narrow-down scopes with refresh token.
>>>>
>>>> From Spec
>>>>
>>>> 1.5.  Refresh Token - Refresh tokens are issued to the client by the
>>>> authorization server and are used to obtain a new access token when
>>>> the current access token becomes invalid or expires or to obtain
>>>> additional access tokens with identical or narrower scope (access
>>>> tokens may have a shorter lifetime and fewer permissions than
>>>> authorized by the resource owner).
>>>>
>>>> 6.  Refreshing an Access Token
>>>>
>>>> The scope of the access request as described by Section 3.3.  The
>>>> requested scope MUST NOT include any scope not originally granted by
>>>> the resource owner, and if omitted is treated as equal to the scope
>>>> originally granted by the resource owner.
>>>>
>>>> https://datatracker.ietf.org/doc/html/rfc6749
>>>>
>>>>
>>>> IMO, from a security aspect, the current behaviour is much more secure
>>>> because it is designed to maintain the principle of least privilege, w=
here
>>>> it updates the refresh token authorised scopes based on the requested =
ones.
>>>>
>>>>
>>>> What should be the correct behaviour?
>>>> narrow-down scope refresh token should also be able to request access
>>>> token with original scope list?
>>>>
>>>>
>>>> Also from section 6:
>>>>
>>>> If a
>>>>    new refresh token is issued, the refresh token scope MUST be
>>>>    identical to that of the refresh token included by the client in th=
e
>>>>    request.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> =E2=80=94 Neil
>>>>
>>>>
>>>
>>> --
>>>
>>> Sachin Mamoru
>>> Software Engineer, WSO2
>>> +94771292681
>>> | sachinmamoru.me  <https://sachinmamoru.me>
>>> sachinmamoru@gmail.com  <sachinmamoru@gmail.com>
>>> <https://www.linkedin.com/in/sachin-mamoru/>
>>> <https://twitter.com/MamoruSachin>
>>>
>>>
>>
>> --
>>
>> Sachin Mamoru
>> Software Engineer, WSO2
>> +94771292681
>> | sachinmamoru.me  <https://sachinmamoru.me>
>> sachinmamoru@gmail.com  <sachinmamoru@gmail.com>
>> <https://www.linkedin.com/in/sachin-mamoru/>
>> <https://twitter.com/MamoruSachin>
>>
>>
>
> --
>
> Sachin Mamoru
> Software Engineer, WSO2
> +94771292681
> | sachinmamoru.me  <https://sachinmamoru.me>
> sachinmamoru@gmail.com  <sachinmamoru@gmail.com>
> <https://www.linkedin.com/in/sachin-mamoru/>
> <https://twitter.com/MamoruSachin>
>
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth
>

--000000000000ff31ad0611d5647a
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Sachin,<div><br></div><div>Why does it matter what Curity =
does here? Is the question about what should happen according to the specif=
ication or whether or not Curity is compliant with the spec when it comes t=
o refresh tokens?</div><div><br></div><div>- Warren</div></div><br><div cla=
ss=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Tue, Feb 20, 20=
24 at 8:27=E2=80=AFPM Sachin Mamoru &lt;<a href=3D"mailto:sachinmamoru@gmai=
l.com">sachinmamoru@gmail.com</a>&gt; wrote:<br></div><blockquote class=3D"=
gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(20=
4,204,204);padding-left:1ex"><div dir=3D"ltr">Hi Neil,<div><br></div><div>T=
hanks for the clarification.</div><div>But Curity has a different approach =
and they implemented it according to the concept of narrowing down=C2=A0the=
 refresh token scopes.</div><div><br></div><div>&quot;<span style=3D"color:=
rgb(77,77,77);font-family:Roboto-Regular,-apple-system,&quot;system-ui&quot=
;,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif;font-size:17.6px">=
The scope was originally=C2=A0</span><code style=3D"box-sizing:border-box;f=
ont-family:Roboto-Mono,Consolas,Monaco,&quot;Andale Mono&quot;,&quot;Ubuntu=
 Mono&quot;,monospace;background-color:rgb(247,250,252);border:1px solid rg=
ba(0,0,0,0.05);border-radius:4px;font-size:14px;padding:0.15em 0.2em 0.05em=
;word-break:break-word;color:rgb(77,77,77)">read openid profile</code><span=
 style=3D"color:rgb(77,77,77);font-family:Roboto-Regular,-apple-system,&quo=
t;system-ui&quot;,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif;fo=
nt-size:17.6px">=C2=A0and after refresh the access was reduced to=C2=A0</sp=
an><code style=3D"box-sizing:border-box;font-family:Roboto-Mono,Consolas,Mo=
naco,&quot;Andale Mono&quot;,&quot;Ubuntu Mono&quot;,monospace;background-c=
olor:rgb(247,250,252);border:1px solid rgba(0,0,0,0.05);border-radius:4px;f=
ont-size:14px;padding:0.15em 0.2em 0.05em;word-break:break-word;color:rgb(7=
7,77,77)">read profile</code><span style=3D"color:rgb(77,77,77);font-family=
:Roboto-Regular,-apple-system,&quot;system-ui&quot;,&quot;Segoe UI&quot;,Ro=
boto,Helvetica,Arial,sans-serif;font-size:17.6px">=C2=A0(i.e., the=C2=A0</s=
pan><code style=3D"box-sizing:border-box;font-family:Roboto-Mono,Consolas,M=
onaco,&quot;Andale Mono&quot;,&quot;Ubuntu Mono&quot;,monospace;background-=
color:rgb(247,250,252);border:1px solid rgba(0,0,0,0.05);border-radius:4px;=
font-size:14px;padding:0.15em 0.2em 0.05em;word-break:break-word;color:rgb(=
77,77,77)">access_token</code><span style=3D"color:rgb(77,77,77);font-famil=
y:Roboto-Regular,-apple-system,&quot;system-ui&quot;,&quot;Segoe UI&quot;,R=
oboto,Helvetica,Arial,sans-serif;font-size:17.6px">=C2=A0now only has=C2=A0=
</span><code style=3D"box-sizing:border-box;font-family:Roboto-Mono,Consola=
s,Monaco,&quot;Andale Mono&quot;,&quot;Ubuntu Mono&quot;,monospace;backgrou=
nd-color:rgb(247,250,252);border:1px solid rgba(0,0,0,0.05);border-radius:4=
px;font-size:14px;padding:0.15em 0.2em 0.05em;word-break:break-word;color:r=
gb(77,77,77)">read profile</code><span style=3D"color:rgb(77,77,77);font-fa=
mily:Roboto-Regular,-apple-system,&quot;system-ui&quot;,&quot;Segoe UI&quot=
;,Roboto,Helvetica,Arial,sans-serif;font-size:17.6px">=C2=A0scope and any n=
ew tokens obtained using the refresh token=C2=A0</span><code style=3D"box-s=
izing:border-box;font-family:Roboto-Mono,Consolas,Monaco,&quot;Andale Mono&=
quot;,&quot;Ubuntu Mono&quot;,monospace;background-color:rgb(247,250,252);b=
order:1px solid rgba(0,0,0,0.05);border-radius:4px;font-size:14px;padding:0=
.15em 0.2em 0.05em;word-break:break-word;color:rgb(77,77,77)">daa38700-ba96=
-4ef1-8b30-5cb3527aae19</code><span style=3D"color:rgb(77,77,77);font-famil=
y:Roboto-Regular,-apple-system,&quot;system-ui&quot;,&quot;Segoe UI&quot;,R=
oboto,Helvetica,Arial,sans-serif;font-size:17.6px">=C2=A0will have the same=
, reduced scope). Note that=C2=A0</span><em style=3D"box-sizing:border-box;=
font-family:Roboto-Regular,-apple-system,&quot;system-ui&quot;,&quot;Segoe =
UI&quot;,Roboto,Helvetica,Arial,sans-serif;color:rgb(77,77,77);font-size:17=
.6px">increasing</em><span style=3D"color:rgb(77,77,77);font-family:Roboto-=
Regular,-apple-system,&quot;system-ui&quot;,&quot;Segoe UI&quot;,Roboto,Hel=
vetica,Arial,sans-serif;font-size:17.6px">=C2=A0the scope of access cannot =
be done in this way unless first reduced and increased back to the original=
 scope.</span>&quot;</div><div><br></div><div>[1]=C2=A0<a href=3D"https://c=
urity.io/resources/learn/refresh-tokens/#changing-scope-of-access-token-on-=
refresh" target=3D"_blank">https://curity.io/resources/learn/refresh-tokens=
/#changing-scope-of-access-token-on-refresh</a></div><div><br></div><div>Th=
anks &amp; Regards,</div><div>Sachin</div></div><br><div class=3D"gmail_quo=
te"><div dir=3D"ltr" class=3D"gmail_attr">On Tue, 20 Feb 2024 at 21:59, Nei=
l Madden &lt;<a href=3D"mailto:neil.e.madden@gmail.com" target=3D"_blank">n=
eil.e.madden@gmail.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_q=
uote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,2=
04);padding-left:1ex"><div dir=3D"auto"><div dir=3D"ltr"></div><div dir=3D"=
ltr"><br></div><div dir=3D"ltr"><br><blockquote type=3D"cite">On 20 Feb 202=
4, at 11:02, Sachin Mamoru &lt;<a href=3D"mailto:sachinmamoru@gmail.com" ta=
rget=3D"_blank">sachinmamoru@gmail.com</a>&gt; wrote:<br><br></blockquote><=
/div><blockquote type=3D"cite"><div dir=3D"ltr">=EF=BB=BF<div dir=3D"ltr">H=
i Neil,<div><br></div><div>Does that mean it should be identical to the nar=
rowed scope request or the original request scope?</div></div></div></block=
quote><div><br></div><div>It says it has to be identical to the scope of th=
e existing refresh token in the request, not the scope specified in the req=
uest. So effectively you can never downscope a refresh token in this way. W=
hatever scope you specify, any RT returned must always retain the original =
scope.=C2=A0</div><div><br></div><div>(There are other ways to downscope a =
RT, eg ForgeRock=E2=80=99s macaroons allow you to attenuate the scope if yo=
u wish).=C2=A0</div><div><br></div><div>=E2=80=94 Neil</div><br><blockquote=
 type=3D"cite"><div dir=3D"ltr"><br><div class=3D"gmail_quote"><div dir=3D"=
ltr" class=3D"gmail_attr">On Tue, 20 Feb 2024 at 16:31, Sachin Mamoru &lt;<=
a href=3D"mailto:sachinmamoru@gmail.com" target=3D"_blank">sachinmamoru@gma=
il.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"m=
argin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left=
:1ex"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote"><div dir=3D=
"ltr" class=3D"gmail_attr">On Tue, 20 Feb 2024 at 12:23, Neil Madden &lt;<a=
 href=3D"mailto:neil.e.madden@gmail.com" target=3D"_blank">neil.e.madden@gm=
ail.com</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-lef=
t:1ex"><div dir=3D"auto"><div dir=3D"ltr"></div><div dir=3D"ltr"><br></div>=
<div dir=3D"ltr"><blockquote type=3D"cite">On 20 Feb 2024, at 06:44, Sachin=
 Mamoru &lt;<a href=3D"mailto:sachinmamoru@gmail.com" target=3D"_blank">sac=
hinmamoru@gmail.com</a>&gt; wrote:<br><br></blockquote></div><blockquote ty=
pe=3D"cite"><div dir=3D"ltr">=EF=BB=BF<div dir=3D"ltr">Hi All,<div><br></di=
v><div><p dir=3D"ltr" style=3D"line-height:1.2;margin-top:0pt;margin-bottom=
:0pt"><span style=3D"color:rgb(0,0,0);background-color:transparent;font-var=
iant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:=
normal;vertical-align:baseline"><font face=3D"arial, sans-serif">When we re=
quest an access token using 3 scopes (scope1, scope2, scope3).</font></span=
></p><p dir=3D"ltr" style=3D"line-height:1.2;margin-top:0pt;margin-bottom:0=
pt"><span style=3D"color:rgb(0,0,0);background-color:transparent;font-varia=
nt-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:no=
rmal;vertical-align:baseline"><font face=3D"arial, sans-serif">Then will re=
ceive a refresh token (refresh_token1) with the access token.</font></span>=
</p><font face=3D"arial, sans-serif"><br></font><p dir=3D"ltr" style=3D"lin=
e-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style=3D"color:rgb(0,0=
,0);background-color:transparent;font-variant-numeric:normal;font-variant-e=
ast-asian:normal;font-variant-alternates:normal;vertical-align:baseline"><f=
ont face=3D"arial, sans-serif">After that will request another access token=
 with refresh_token1 and provide the scope list as scope1 and scope2 (Narro=
w down scopes).</font></span></p><p dir=3D"ltr" style=3D"line-height:1.2;ma=
rgin-top:0pt;margin-bottom:0pt"><span style=3D"color:rgb(0,0,0);background-=
color:transparent;font-variant-numeric:normal;font-variant-east-asian:norma=
l;font-variant-alternates:normal;vertical-align:baseline"><font face=3D"ari=
al, sans-serif">Similarly, get another refresh token (refresh_token2) with =
the access token.</font></span></p><font face=3D"arial, sans-serif"><br></f=
ont><p dir=3D"ltr" style=3D"line-height:1.2;margin-top:0pt;margin-bottom:0p=
t"><span style=3D"color:rgb(0,0,0);background-color:transparent;font-varian=
t-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:nor=
mal;vertical-align:baseline"><font face=3D"arial, sans-serif">Now if we req=
uest another access token with refresh_token2, we cannot request scope3, in=
stead, we can either request both scope1 and scope2 or one of them.<br></fo=
nt></span></p><font face=3D"arial, sans-serif"><br></font><p dir=3D"ltr" st=
yle=3D"line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style=3D"col=
or:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font=
-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:ba=
seline"><font face=3D"arial, sans-serif">But in the specification, didn&#39=
;t able to find anything related to narrow-down scopes with refresh token.<=
/font></span></p><font face=3D"arial, sans-serif"><br></font><p dir=3D"ltr"=
 style=3D"line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style=3D"=
color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;f=
ont-variant-east-asian:normal;font-variant-alternates:normal;text-decoratio=
n-line:underline;vertical-align:baseline"><font face=3D"arial, sans-serif">=
>From Spec</font></span></p><font face=3D"arial, sans-serif"><br></font><p d=
ir=3D"ltr" style=3D"line-height:1.2;margin-top:0pt;margin-bottom:0pt"><font=
 face=3D"arial, sans-serif"><span style=3D"color:rgb(0,0,0);background-colo=
r:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;fo=
nt-variant-alternates:normal;vertical-align:baseline">1.5.=C2=A0 Refresh To=
ken -=C2=A0</span><span style=3D"background-color:transparent;color:rgb(0,0=
,0)">Refresh tokens are issued to the client by the authorization server an=
d are=C2=A0</span><span style=3D"background-color:transparent;color:rgb(0,0=
,0)">used to obtain a new access token when the current access token=C2=A0<=
/span><span style=3D"background-color:transparent;color:rgb(0,0,0)">becomes=
 invalid or expires or to obtain additional access tokens=C2=A0</span><span=
 style=3D"background-color:transparent;color:rgb(0,0,0)">with identical or =
narrower scope (access tokens may have a shorter=C2=A0</span><span style=3D=
"background-color:transparent;color:rgb(0,0,0)">lifetime and fewer permissi=
ons than authorized by the resource=C2=A0</span><span style=3D"background-c=
olor:transparent;color:rgb(0,0,0)">owner).</span></font></p><font face=3D"a=
rial, sans-serif"><br></font><p dir=3D"ltr" style=3D"line-height:1.2;margin=
-top:0pt;margin-bottom:0pt"><span style=3D"color:rgb(0,0,0);background-colo=
r:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;fo=
nt-variant-alternates:normal;vertical-align:baseline"><font face=3D"arial, =
sans-serif">6.=C2=A0 Refreshing an Access Token</font></span></p><p dir=3D"=
ltr" style=3D"line-height:1.2;margin-top:0pt;margin-bottom:0pt"><font face=
=3D"arial, sans-serif"><span style=3D"color:rgb(0,0,0);background-color:tra=
nsparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-va=
riant-alternates:normal;vertical-align:baseline">The scope of the access re=
quest as described by=C2=A0</span><span style=3D"background-color:transpare=
nt;color:rgb(0,0,0)">Section 3.3.=C2=A0 The requested scope MUST NOT includ=
e any scope=C2=A0</span><span style=3D"background-color:transparent;color:r=
gb(0,0,0)">not originally granted by the resource owner, and if omitted is=
=C2=A0</span><span style=3D"background-color:transparent;color:rgb(0,0,0)">=
treated as equal to the scope originally granted by the=C2=A0</span><span s=
tyle=3D"background-color:transparent;color:rgb(0,0,0)">resource owner.</spa=
n></font></p><font face=3D"arial, sans-serif"><br></font><p dir=3D"ltr" sty=
le=3D"line-height:1.2;margin-top:0pt;margin-bottom:0pt"><a href=3D"https://=
datatracker.ietf.org/doc/html/rfc6749" style=3D"text-decoration-line:none" =
target=3D"_blank"><span style=3D"background-color:transparent;font-variant-=
numeric:normal;font-variant-east-asian:normal;font-variant-alternates:norma=
l;text-decoration-line:underline;vertical-align:baseline"><font face=3D"ari=
al, sans-serif">https://datatracker.ietf.org/doc/html/rfc6749</font></span>=
</a></p><p dir=3D"ltr" style=3D"line-height:1.2;margin-top:0pt;margin-botto=
m:0pt"><font face=3D"arial, sans-serif"><br></font></p><p dir=3D"ltr" style=
=3D"line-height:1.2;margin-top:0pt;margin-bottom:0pt"><font face=3D"arial, =
sans-serif">IMO, from a security aspect, the current behaviour is much more=
 secure because it is designed to maintain the principle of least privilege=
, where it updates the refresh token authorised scopes based on the request=
ed ones.</font></p><p dir=3D"ltr" style=3D"line-height:1.2;margin-top:0pt;m=
argin-bottom:0pt"><br></p><p dir=3D"ltr" style=3D"line-height:1.2;margin-to=
p:0pt;margin-bottom:0pt">What should be the correct behaviour?<br>narrow-do=
wn scope refresh token should also be able to request access token with ori=
ginal scope list?<font face=3D"arial, sans-serif"><br></font></p></div></di=
v></div></blockquote><div><br></div><div>Also from section 6:</div><div><br=
></div><div><pre style=3D"box-sizing:border-box;font-size:11.04px;margin-bo=
ttom:0px;overflow:visible;padding:0px;width:80ch;color:rgb(32,37,42)">If a
   new refresh token is issued, the refresh token scope MUST be
   identical to that of the refresh token included by the client in the
   request.</pre><pre style=3D"box-sizing:border-box;font-size:11.04px;marg=
in-bottom:0px;overflow:visible;padding:0px;width:80ch;color:rgb(32,37,42)">=
<br></pre><pre style=3D"box-sizing:border-box;font-size:11.04px;margin-bott=
om:0px;overflow:visible;padding:0px;width:80ch;color:rgb(32,37,42)"><br></p=
re><pre style=3D"box-sizing:border-box;font-size:11.04px;margin-bottom:0px;=
overflow:visible;padding:0px;width:80ch;color:rgb(32,37,42)"><br></pre><pre=
 style=3D"box-sizing:border-box;font-size:11.04px;margin-bottom:0px;overflo=
w:visible;padding:0px;width:80ch;color:rgb(32,37,42)"><br></pre><pre style=
=3D"box-sizing:border-box;font-size:11.04px;margin-bottom:0px;overflow:visi=
ble;padding:0px;width:80ch;color:rgb(32,37,42)">=E2=80=94 Neil</pre></div><=
/div></blockquote></div><br clear=3D"all"><div><br></div><span class=3D"gma=
il_signature_prefix">-- </span><br><div dir=3D"ltr" class=3D"gmail_signatur=
e"><div dir=3D"ltr"><div dir=3D"ltr"><table style=3D"direction:ltr;border-c=
ollapse:collapse"><tbody><tr><td style=3D"font-size:0px;height:12px;line-he=
ight:0"></td></tr><tr><td><table cellpadding=3D"0" cellspacing=3D"0" style=
=3D"border-collapse:collapse;font-family:Arial;line-height:1.15;color:rgb(0=
,0,0)"><tbody><tr><td style=3D"vertical-align:top;padding:0.01px 14px 0.01p=
x 0.01px"><table cellpadding=3D"0" cellspacing=3D"0" style=3D"border-collap=
se:collapse;width:65px"><tbody><tr><td style=3D"padding:0.01px 10px 0px 0px=
"><img src=3D"https://d36urhup7zbd7q.cloudfront.net/29e6c216-f94e-4bc3-8205=
-f3ea762db0d5/profile.format_png.resize_200x.jpeg" height=3D"auto" width=3D=
"65" style=3D"width: 65px; vertical-align: initial; border-radius: 0px; dis=
play: block;"></td></tr></tbody></table></td><td height=3D"1" width=3D"0" s=
tyle=3D"width:0px;padding:0.01px;border-right:1px solid rgb(189,189,189);he=
ight:1px;font-size:1pt">=C2=A0</td><td style=3D"padding:0.01px 0.01px 0.01p=
x 14px;vertical-align:top" valign=3D"top"><table cellpadding=3D"0" cellspac=
ing=3D"0" style=3D"border-collapse:collapse"><tbody><tr><td style=3D"line-h=
eight:1.2;padding:0.01px 0.01px 12px"><span style=3D"font-family:Arial;text=
-transform:initial;font-weight:bold"><span style=3D"color:rgb(100,100,100);=
font-size:16px"> Sachin Mamoru </span></span><br><span style=3D"font-size:1=
3px;letter-spacing:0px;font-family:Arial;text-transform:initial;font-weight=
:bold;color:rgb(100,100,100)"> Software Engineer, </span> <span style=3D"fo=
nt-size:13px;letter-spacing:0px;font-family:Arial;text-transform:initial;fo=
nt-weight:bold;color:rgb(100,100,100)"> WSO2</span></td></tr><tr><td style=
=3D"padding:0.01px;line-height:0"><table cellpadding=3D"0" cellspacing=3D"0=
" style=3D"border-collapse:collapse"><tbody><tr><td style=3D"padding:0.01px=
"><table cellpadding=3D"0" cellspacing=3D"0" style=3D"border-collapse:colla=
pse"><tbody><tr><td style=3D"line-height:0;padding:0.01px 0.01px 6px"><tabl=
e cellpadding=3D"0" cellspacing=3D"0" style=3D"border-collapse:collapse;lin=
e-height:14px;font-size:12px;font-family:Arial"><tbody><tr><td style=3D"pad=
ding:0.01px;font-family:Arial;font-size:12px"><a href=3D"tel:+94771292681" =
style=3D"text-decoration:unset;font-size:12px;font-family:Arial" target=3D"=
_blank"><span style=3D"line-height:1.2;color:rgb(33,33,33);font-family:Aria=
l;white-space:nowrap;font-size:12px"> +94771292681</span></a></td></tr></tb=
ody></table></td><td style=3D"line-height:0;padding:0.01px 0.01px 6px"><tab=
le cellpadding=3D"0" cellspacing=3D"0" style=3D"border-collapse:collapse;li=
ne-height:14px;font-size:12px;font-family:Arial"><tbody><tr><td style=3D"pa=
dding:0px 4px"><span style=3D"font-family:Arial;font-weight:bold;font-size:=
12px;color:rgb(33,33,33);vertical-align:2px"> | </span></td><td style=3D"pa=
dding:0.01px;font-family:Arial;font-size:12px"><a href=3D"https://sachinmam=
oru.me" style=3D"text-decoration:unset;font-size:12px;font-family:Arial" ta=
rget=3D"_blank"><span style=3D"line-height:1.2;color:rgb(33,33,33);font-fam=
ily:Arial;white-space:nowrap;font-size:12px"> sachinmamoru.me=C2=A0</span><=
/a></td></tr></tbody></table></td></tr></tbody></table></td></tr><tr><td st=
yle=3D"padding:0.01px"><table cellpadding=3D"0" cellspacing=3D"0" style=3D"=
border-collapse:collapse"><tbody><tr><td style=3D"line-height:0;padding:0.0=
1px 0.01px 6px"><table cellpadding=3D"0" cellspacing=3D"0" style=3D"border-=
collapse:collapse;line-height:14px;font-size:12px;font-family:Arial"><tbody=
><tr><td style=3D"padding:0.01px;font-family:Arial;font-size:12px"><a href=
=3D"mailto:sachinmamoru@gmail.com" style=3D"text-decoration:unset;font-size=
:12px;font-family:Arial" target=3D"_blank"><span style=3D"line-height:1.2;c=
olor:rgb(33,33,33);font-family:Arial;white-space:nowrap;font-size:12px"> sa=
chinmamoru@gmail.com=C2=A0</span></a></td></tr></tbody></table></td></tr></=
tbody></table></td></tr></tbody></table></td></tr><tr><td style=3D"padding:=
12px 0.01px 0.01px"><table cellpadding=3D"0" cellspacing=3D"0" style=3D"bor=
der-collapse:collapse;width:100%"><tbody><tr><td style=3D"padding:0.01px"><=
table border=3D"0" cellpadding=3D"0" cellspacing=3D"0"><tbody><tr><td align=
=3D"left" style=3D"padding-right:6px;text-align:center;padding-top:0px"><a =
href=3D"https://www.linkedin.com/in/sachin-mamoru/" target=3D"_blank"><img =
width=3D"25" height=3D"25" src=3D"https://cdn.gifo.wisestamp.com/s/ld/0077b=
5/50/0/background.png" style=3D"float: left; border: none;" border=3D"0"></=
a></td><td align=3D"left" style=3D"padding-right:6px;text-align:center;padd=
ing-top:0px"><a href=3D"https://twitter.com/MamoruSachin" target=3D"_blank"=
><img width=3D"25" height=3D"25" src=3D"https://cdn.gifo.wisestamp.com/s/tw=
/55acee/50/0/background.png" style=3D"float: left; border: none;" border=3D=
"0"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbo=
dy></table></td></tr></tbody></table><table cellpadding=3D"0" cellspacing=
=3D"0" border=3D"0" style=3D"max-width:600px;width:100%"><tbody><tr><td sty=
le=3D"line-height:0"></td></tr></tbody></table></td></tr></tbody></table><b=
r></div><img src=3D"https://tracy.srv.wisestamp.com/px/5434123278745600.png=
" alt=3D""></div></div>
</blockquote></div><br clear=3D"all"><div><br></div><span class=3D"gmail_si=
gnature_prefix">-- </span><br><div dir=3D"ltr" class=3D"gmail_signature"><d=
iv dir=3D"ltr"><div dir=3D"ltr"><table style=3D"direction:ltr;border-collap=
se:collapse"><tbody><tr><td style=3D"font-size:0px;height:12px;line-height:=
0"></td></tr><tr><td><table cellpadding=3D"0" cellspacing=3D"0" style=3D"bo=
rder-collapse:collapse;font-family:Arial;line-height:1.15;color:rgb(0,0,0)"=
><tbody><tr><td style=3D"vertical-align:top;padding:0.01px 14px 0.01px 0.01=
px"><table cellpadding=3D"0" cellspacing=3D"0" style=3D"border-collapse:col=
lapse;width:65px"><tbody><tr><td style=3D"padding:0.01px 10px 0px 0px"><img=
 src=3D"https://d36urhup7zbd7q.cloudfront.net/29e6c216-f94e-4bc3-8205-f3ea7=
62db0d5/profile.format_png.resize_200x.jpeg" height=3D"auto" width=3D"65" s=
tyle=3D"width: 65px; vertical-align: initial; border-radius: 0px; display: =
block;"></td></tr></tbody></table></td><td height=3D"1" width=3D"0" style=
=3D"width:0px;padding:0.01px;border-right:1px solid rgb(189,189,189);height=
:1px;font-size:1pt">=C2=A0</td><td style=3D"padding:0.01px 0.01px 0.01px 14=
px;vertical-align:top" valign=3D"top"><table cellpadding=3D"0" cellspacing=
=3D"0" style=3D"border-collapse:collapse"><tbody><tr><td style=3D"line-heig=
ht:1.2;padding:0.01px 0.01px 12px"><span style=3D"font-family:Arial;text-tr=
ansform:initial;font-weight:bold"><span style=3D"color:rgb(100,100,100);fon=
t-size:16px"> Sachin Mamoru </span></span><br><span style=3D"font-size:13px=
;letter-spacing:0px;font-family:Arial;text-transform:initial;font-weight:bo=
ld;color:rgb(100,100,100)"> Software Engineer, </span> <span style=3D"font-=
size:13px;letter-spacing:0px;font-family:Arial;text-transform:initial;font-=
weight:bold;color:rgb(100,100,100)"> WSO2</span></td></tr><tr><td style=3D"=
padding:0.01px;line-height:0"><table cellpadding=3D"0" cellspacing=3D"0" st=
yle=3D"border-collapse:collapse"><tbody><tr><td style=3D"padding:0.01px"><t=
able cellpadding=3D"0" cellspacing=3D"0" style=3D"border-collapse:collapse"=
><tbody><tr><td style=3D"line-height:0;padding:0.01px 0.01px 6px"><table ce=
llpadding=3D"0" cellspacing=3D"0" style=3D"border-collapse:collapse;line-he=
ight:14px;font-size:12px;font-family:Arial"><tbody><tr><td style=3D"padding=
:0.01px;font-family:Arial;font-size:12px"><a href=3D"tel:+94771292681" styl=
e=3D"text-decoration:unset;font-size:12px;font-family:Arial" target=3D"_bla=
nk"><span style=3D"line-height:1.2;color:rgb(33,33,33);font-family:Arial;wh=
ite-space:nowrap;font-size:12px"> +94771292681</span></a></td></tr></tbody>=
</table></td><td style=3D"line-height:0;padding:0.01px 0.01px 6px"><table c=
ellpadding=3D"0" cellspacing=3D"0" style=3D"border-collapse:collapse;line-h=
eight:14px;font-size:12px;font-family:Arial"><tbody><tr><td style=3D"paddin=
g:0px 4px"><span style=3D"font-family:Arial;font-weight:bold;font-size:12px=
;color:rgb(33,33,33);vertical-align:2px"> | </span></td><td style=3D"paddin=
g:0.01px;font-family:Arial;font-size:12px"><a href=3D"https://sachinmamoru.=
me" style=3D"text-decoration:unset;font-size:12px;font-family:Arial" target=
=3D"_blank"><span style=3D"line-height:1.2;color:rgb(33,33,33);font-family:=
Arial;white-space:nowrap;font-size:12px"> sachinmamoru.me=C2=A0</span></a><=
/td></tr></tbody></table></td></tr></tbody></table></td></tr><tr><td style=
=3D"padding:0.01px"><table cellpadding=3D"0" cellspacing=3D"0" style=3D"bor=
der-collapse:collapse"><tbody><tr><td style=3D"line-height:0;padding:0.01px=
 0.01px 6px"><table cellpadding=3D"0" cellspacing=3D"0" style=3D"border-col=
lapse:collapse;line-height:14px;font-size:12px;font-family:Arial"><tbody><t=
r><td style=3D"padding:0.01px;font-family:Arial;font-size:12px"><a href=3D"=
mailto:sachinmamoru@gmail.com" style=3D"text-decoration:unset;font-size:12p=
x;font-family:Arial" target=3D"_blank"><span style=3D"line-height:1.2;color=
:rgb(33,33,33);font-family:Arial;white-space:nowrap;font-size:12px"> sachin=
mamoru@gmail.com=C2=A0</span></a></td></tr></tbody></table></td></tr></tbod=
y></table></td></tr></tbody></table></td></tr><tr><td style=3D"padding:12px=
 0.01px 0.01px"><table cellpadding=3D"0" cellspacing=3D"0" style=3D"border-=
collapse:collapse;width:100%"><tbody><tr><td style=3D"padding:0.01px"><tabl=
e border=3D"0" cellpadding=3D"0" cellspacing=3D"0"><tbody><tr><td align=3D"=
left" style=3D"padding-right:6px;text-align:center;padding-top:0px"><a href=
=3D"https://www.linkedin.com/in/sachin-mamoru/" target=3D"_blank"><img widt=
h=3D"25" height=3D"25" src=3D"https://cdn.gifo.wisestamp.com/s/ld/0077b5/50=
/0/background.png" style=3D"float: left; border: none;" border=3D"0"></a></=
td><td align=3D"left" style=3D"padding-right:6px;text-align:center;padding-=
top:0px"><a href=3D"https://twitter.com/MamoruSachin" target=3D"_blank"><im=
g width=3D"25" height=3D"25" src=3D"https://cdn.gifo.wisestamp.com/s/tw/55a=
cee/50/0/background.png" style=3D"float: left; border: none;" border=3D"0">=
</a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody><=
/table></td></tr></tbody></table><table cellpadding=3D"0" cellspacing=3D"0"=
 border=3D"0" style=3D"max-width:600px;width:100%"><tbody><tr><td style=3D"=
line-height:0"></td></tr></tbody></table></td></tr></tbody></table><br></di=
v><img src=3D"https://tracy.srv.wisestamp.com/px/5434123278745600.png" alt=
=3D""></div></div>
</div></blockquote></div></blockquote></div><br clear=3D"all"><div><br></di=
v><span class=3D"gmail_signature_prefix">-- </span><br><div dir=3D"ltr" cla=
ss=3D"gmail_signature"><div dir=3D"ltr"><div dir=3D"ltr"><table style=3D"di=
rection:ltr;border-collapse:collapse"><tbody><tr><td style=3D"font-size:0px=
;height:12px;line-height:0"></td></tr><tr><td><table cellpadding=3D"0" cell=
spacing=3D"0" style=3D"border-collapse:collapse;font-family:Arial;line-heig=
ht:1.15;color:rgb(0,0,0)"><tbody><tr><td style=3D"vertical-align:top;paddin=
g:0.01px 14px 0.01px 0.01px"><table cellpadding=3D"0" cellspacing=3D"0" sty=
le=3D"border-collapse:collapse;width:65px"><tbody><tr><td style=3D"padding:=
0.01px 10px 0px 0px"><img src=3D"https://d36urhup7zbd7q.cloudfront.net/29e6=
c216-f94e-4bc3-8205-f3ea762db0d5/profile.format_png.resize_200x.jpeg" heigh=
t=3D"auto" width=3D"65" style=3D"width: 65px; vertical-align: initial; bord=
er-radius: 0px; display: block;"></td></tr></tbody></table></td><td height=
=3D"1" width=3D"0" style=3D"width:0px;padding:0.01px;border-right:1px solid=
 rgb(189,189,189);height:1px;font-size:1pt">=C2=A0</td><td style=3D"padding=
:0.01px 0.01px 0.01px 14px;vertical-align:top" valign=3D"top"><table cellpa=
dding=3D"0" cellspacing=3D"0" style=3D"border-collapse:collapse"><tbody><tr=
><td style=3D"line-height:1.2;padding:0.01px 0.01px 12px"><span style=3D"fo=
nt-family:Arial;text-transform:initial;font-weight:bold"><span style=3D"col=
or:rgb(100,100,100);font-size:16px"> Sachin Mamoru </span></span><br><span =
style=3D"font-size:13px;letter-spacing:0px;font-family:Arial;text-transform=
:initial;font-weight:bold;color:rgb(100,100,100)"> Software Engineer, </spa=
n> <span style=3D"font-size:13px;letter-spacing:0px;font-family:Arial;text-=
transform:initial;font-weight:bold;color:rgb(100,100,100)"> WSO2</span></td=
></tr><tr><td style=3D"padding:0.01px;line-height:0"><table cellpadding=3D"=
0" cellspacing=3D"0" style=3D"border-collapse:collapse"><tbody><tr><td styl=
e=3D"padding:0.01px"><table cellpadding=3D"0" cellspacing=3D"0" style=3D"bo=
rder-collapse:collapse"><tbody><tr><td style=3D"line-height:0;padding:0.01p=
x 0.01px 6px"><table cellpadding=3D"0" cellspacing=3D"0" style=3D"border-co=
llapse:collapse;line-height:14px;font-size:12px;font-family:Arial"><tbody><=
tr><td style=3D"padding:0.01px;font-family:Arial;font-size:12px"><a href=3D=
"tel:+94771292681" style=3D"text-decoration:unset;font-size:12px;font-famil=
y:Arial" target=3D"_blank"><span style=3D"line-height:1.2;color:rgb(33,33,3=
3);font-family:Arial;white-space:nowrap;font-size:12px"> +94771292681</span=
></a></td></tr></tbody></table></td><td style=3D"line-height:0;padding:0.01=
px 0.01px 6px"><table cellpadding=3D"0" cellspacing=3D"0" style=3D"border-c=
ollapse:collapse;line-height:14px;font-size:12px;font-family:Arial"><tbody>=
<tr><td style=3D"padding:0px 4px"><span style=3D"font-family:Arial;font-wei=
ght:bold;font-size:12px;color:rgb(33,33,33);vertical-align:2px"> | </span><=
/td><td style=3D"padding:0.01px;font-family:Arial;font-size:12px"><a href=
=3D"https://sachinmamoru.me" style=3D"text-decoration:unset;font-size:12px;=
font-family:Arial" target=3D"_blank"><span style=3D"line-height:1.2;color:r=
gb(33,33,33);font-family:Arial;white-space:nowrap;font-size:12px"> sachinma=
moru.me=C2=A0</span></a></td></tr></tbody></table></td></tr></tbody></table=
></td></tr><tr><td style=3D"padding:0.01px"><table cellpadding=3D"0" cellsp=
acing=3D"0" style=3D"border-collapse:collapse"><tbody><tr><td style=3D"line=
-height:0;padding:0.01px 0.01px 6px"><table cellpadding=3D"0" cellspacing=
=3D"0" style=3D"border-collapse:collapse;line-height:14px;font-size:12px;fo=
nt-family:Arial"><tbody><tr><td style=3D"padding:0.01px;font-family:Arial;f=
ont-size:12px"><a href=3D"mailto:sachinmamoru@gmail.com" style=3D"text-deco=
ration:unset;font-size:12px;font-family:Arial" target=3D"_blank"><span styl=
e=3D"line-height:1.2;color:rgb(33,33,33);font-family:Arial;white-space:nowr=
ap;font-size:12px"> sachinmamoru@gmail.com=C2=A0</span></a></td></tr></tbod=
y></table></td></tr></tbody></table></td></tr></tbody></table></td></tr><tr=
><td style=3D"padding:12px 0.01px 0.01px"><table cellpadding=3D"0" cellspac=
ing=3D"0" style=3D"border-collapse:collapse;width:100%"><tbody><tr><td styl=
e=3D"padding:0.01px"><table border=3D"0" cellpadding=3D"0" cellspacing=3D"0=
"><tbody><tr><td align=3D"left" style=3D"padding-right:6px;text-align:cente=
r;padding-top:0px"><a href=3D"https://www.linkedin.com/in/sachin-mamoru/" t=
arget=3D"_blank"><img width=3D"25" height=3D"25" src=3D"https://cdn.gifo.wi=
sestamp.com/s/ld/0077b5/50/0/background.png" style=3D"float: left; border: =
none;" border=3D"0"></a></td><td align=3D"left" style=3D"padding-right:6px;=
text-align:center;padding-top:0px"><a href=3D"https://twitter.com/MamoruSac=
hin" target=3D"_blank"><img width=3D"25" height=3D"25" src=3D"https://cdn.g=
ifo.wisestamp.com/s/tw/55acee/50/0/background.png" style=3D"float: left; bo=
rder: none;" border=3D"0"></a></td></tr></tbody></table></td></tr></tbody><=
/table></td></tr></tbody></table></td></tr></tbody></table><table cellpaddi=
ng=3D"0" cellspacing=3D"0" border=3D"0" style=3D"max-width:600px;width:100%=
"><tbody><tr><td style=3D"line-height:0"></td></tr></tbody></table></td></t=
r></tbody></table><br></div><img src=3D"https://tracy.srv.wisestamp.com/px/=
5434123278745600.png" alt=3D""></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>

--000000000000ff31ad0611d5647a--

