From nobody Thu Sep  3 05:14:45 2020
Return-Path: <dave.tonge@moneyhub.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 27A873A09DE
 for <oauth@ietfa.amsl.com>; Thu,  3 Sep 2020 05:14:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.739
X-Spam-Level: 
X-Spam-Status: No, score=-1.739 tagged_above=-999 required=5
 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1,
 DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.249,
 HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001,
 T_KAM_HTML_FONT_INVALID=0.01, URIBL_BLOCKED=0.001]
 autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key)
 header.d=momentumft.co.uk
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 ihDjHujQJ7Cd for <oauth@ietfa.amsl.com>;
 Thu,  3 Sep 2020 05:14:39 -0700 (PDT)
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com
 [IPv6:2a00:1450:4864:20::534])
 (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 A22DE3A09BC
 for <oauth@ietf.org>; Thu,  3 Sep 2020 05:14:38 -0700 (PDT)
Received: by mail-ed1-x534.google.com with SMTP id l17so2382235edq.12
 for <oauth@ietf.org>; Thu, 03 Sep 2020 05:14:38 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=momentumft.co.uk; s=google;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=ZjH6NEKxMr5gtqJlx3XkMD/GeVOLnSpXkD9nyDpiOTE=;
 b=Dylq8etVEDk348FKj9uiuHlMjiUTsuHHPOrodHjRtR5C6CAKfjxtq8UvIhGYhjKXJR
 W48cXuAQ9SIBmO/ZXm84XFlgN95DZQ3in4awefLSe7Q2EiOevDDeUakWyNmlO3norxkl
 xaTc1Ewq6GVzRb16X6b1AEqMiFjj9vjHSMuDQ=
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=ZjH6NEKxMr5gtqJlx3XkMD/GeVOLnSpXkD9nyDpiOTE=;
 b=kcG54pLSZIThaegfY1Jmr1VueGbDMPWF01Mwg51sI0vECrB0TJOy7ojUZXYkzS797I
 dP5CPzHuyBxTp63yQmh+m/I6CVF7WRNLmTbvJrnUiresPjLvV1ogWU2DOxCxoC48fKTJ
 hutUm2LH4yjXBZBmTNEkdA0UC8hnhtUxQkjH2mXYCO0Sd7fCLAJJ8Isaj0ciaLFfOtIQ
 wN0W7QVLnZqGEaclZ2myO97ohIZmBNdpE/7+MkkRwogoPUcnUw0ZqS2LIeWMoBXtiUUh
 jIzQGRwB3V3LuZ37coJjP3czP4j0uJrJj3075Ihjnz2cvB9LgMEnVhnEuilSvAY7KxDB
 o6Gw==
X-Gm-Message-State: AOAM531FkQe9s89YjjBTmXR0C0Cbz1VrdlGYbhD3uJT2mt/IdlfPPE/x
 zCU1PYvc0apnWJEeAgjaOO7z4QeBcghTRvyp+nMDERELPF7VGFnOpVTSWQ5E9lDFjawdOEJVLS5
 9woFjvZ5wO0kPlNEBky/0JQ==
X-Google-Smtp-Source: ABdhPJzlvWAhPuW692gz703FpG7KR2m2hgfvoW/f6GHwh6agonsXdTp5rJ+YV8I8laV78ObtFkGh39UFtb4m+BzyNHs=
X-Received: by 2002:a05:6402:1016:: with SMTP id
 c22mr2815820edu.89.1599135277014; 
 Thu, 03 Sep 2020 05:14:37 -0700 (PDT)
MIME-Version: 1.0
References: <7C0FD285-F677-4501-B2FB-9431A59855F6@mit.edu>
 <CA+k3eCRsBTvdhyzBOETxWLd6PJ61B2W4yY5QHv196amDFq7gnQ@mail.gmail.com>
 <B86967B1-3FA1-4ADA-BF9B-D34C693617C7@lodderstedt.net>
 <03845E0A-3563-4FF5-A3F9-318A1C928B89@mit.edu>
 <61CD8CC7-D16F-4D2A-A43E-2C80DC5B565A@lodderstedt.net>
 <CAHdPCmMxxXx-sc2wRSV4JXG4m6zqGwK+J_UgWdBh7jipqXA5fQ@mail.gmail.com>
 <57BB7167-377D-451C-891F-E04B9A10372F@mit.edu>
 <CA+k3eCQCKmM-pOLM6P6utOqiQF6jK4ZyQNx_gEFTZk6kDmczbA@mail.gmail.com>
In-Reply-To: <CA+k3eCQCKmM-pOLM6P6utOqiQF6jK4ZyQNx_gEFTZk6kDmczbA@mail.gmail.com>
From: Dave Tonge <dave.tonge@momentumft.co.uk>
Date: Thu, 3 Sep 2020 14:14:25 +0200
Message-ID: <CAP-T6TS+D7YrjYktBGywtnn94Rhn9PJ=V1kT6pnzc1cA3uH+TQ@mail.gmail.com>
To: Brian Campbell <bcampbell=40pingidentity.com@dmarc.ietf.org>
Cc: Justin Richer <jricher@mit.edu>, oauth <oauth@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000227e3505ae67b256"
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/qlUiLK3ziv3jnDrAwy6DyLiiNYE>
Subject: Re: [OAUTH-WG] WGLC Review of PAR
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: Thu, 03 Sep 2020 12:14:43 -0000

--000000000000227e3505ae67b256
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Looks really good to me, thanks Brian.

On Wed, 2 Sep 2020 at 21:42, Brian Campbell <bcampbell=3D
40pingidentity.com@dmarc.ietf.org> wrote:

> Thanks Torsten, Taka, and Justin,
>
> I took the revised text from Justin and tweaked it with some typo cleanup
> and minor adjustments to make what is hopefully a final proposal below. I
> had a similar feeling about the last paragraph not really fitting but don=
't
> have a better location to suggest so am just leaving it.
>
> 2.4. Management of Client Redirect URIs
>
> While OAuth 2.0 [RFC6749] allows clients to use unregistered redirect_uri
> values in certain circumstances, or for the authorization server to apply
> its own matching semantics to the redirect_uri value presented by the
> client at the authorization endpoint, the OAuth Security BCP
> [I-D.ietf-oauth-security-topics] as well as OAuth 2.1 [I-D.ietf-oauth-v2-=
1]
> require an authorization server exactly match the redirect_uri parameter
> against the set of redirect URIs previously established for a particular
> client. This is a means for early detection of client impersonation
> attempts and prevents token leakage and open redirection. As a downside,
> this can make client management more cumbersome since the redirect URI is
> typically the most volatile part of a client policy.
>
> The exact matching requirement MAY be relaxed by the authorization server
> for a confidential client using pushed authorization requests since the
> authorization server authenticates the client before the authorization
> process starts and thus ensures it is interacting with the legitimate
> client. The authorization server MAY allow such clients to specify
> redirect_uri values that were not previously registered with the
> authorization server. This will give the client more flexibility (e.g. to
> mint distinct redirect URI values per authorization server at runtime) an=
d
> can simplify client management. It is at the discretion of the
> authorization server to apply restrictions on supplied redirect_uri value=
s,
> e.g. the authorization server MAY require a certain URI prefix or allow
> only a query parameter to vary at runtime.
>
> The ability to set up transaction specific redirect URIs is also useful i=
n
> situations where client ids and corresponding credentials and policies ar=
e
> managed by a trusted 3rd party, e.g. via client certificates containing
> client permissions. Such an externally managed client could interact with
> an authorization server trusting the respective 3rd party without the nee=
d
> for an additional registration step.
>
> On Wed, Sep 2, 2020 at 8:09 AM Justin Richer <jricher@mit.edu> wrote:
>
>> The real conflict here is with the BCP and 2.1, both of which adopt the
>> stricter matching semantics for redirect URIs than 6749 does on its own.
>> This section would be needed to clarify how they relate to each other. T=
hat
>> said, I think adding some of Taka=E2=80=99s observations to Torsten=E2=
=80=99s text wouldn=E2=80=99t
>> hurt:
>>
>> 2.4. Management of redirect_uri
>>
>> While OAuth 2.0 [RFC6749] allows clients to use unregistered redirect_ur=
i
>> values in certain circumstances, or for the AS to apply its own matching
>> semantics to the redirect_uri value presented by the client at the
>> authorization endpoint, the OAuth Security BCP
>> [I-D.ietf-oauth-security-topics] as well as OAuth 2.1 [I-D.ietf-oauth-v2=
-1]
>> require an AS to excactly match the redirect_uri parameter against the s=
et
>> of redirect URIs previously established for a particular client. This is=
 a
>> means to early detect attempts to impersonate a client and prevent token
>> leakage and open redirection. As a downside, it makes client management
>> more complex since the redirect URI is typically the most volatile part =
of
>> a client policy.
>>
>> This requirement MAY be relaxed by the AS if a confidential client uses
>> pushed authorization requests since the AS authenticates the client befo=
re
>> the authorization process starts and that way ensures it interacts with =
the
>> legit client. The AS MAY allow such clients to specify redirect_uri valu=
es
>> not previously registered with the AS. This will give the client more
>> flexibility (e.g. to mint AS-specific redirect URIs on the fly) and make=
s
>> client management much easier. It is at the discretion of the AS to appl=
y
>> restriction on redirect_uri values, e.g. the AS MAY require a certain UR=
I
>> prefix or allow only a query parameter to vary at runtime.
>>
>> I also feel like this paragraph belongs in a different section outside o=
f
>> here. I=E2=80=99m not sure where, but it doesn=E2=80=99t quite seem to f=
it, to me. It=E2=80=99s not
>> the end of the world if it stays here though as it=E2=80=99s a decent vi=
ew on the
>> =E2=80=9Cwhy".
>>
>>
>> The aibility to set up transaction specific redirect URIs is also useful
>> in situations where client ids and correspoding credentials and policies
>> are managed by a trusted 3rd party, e.g. via client certifiates containi=
ng
>> client permissions. Such an externally managed client could interact wit=
h
>> an AS trusting the respective 3rd party without the need for an addition=
al
>> registration step.
>>
>>
>>  =E2=80=94 Justin
>>
>> On Sep 1, 2020, at 11:05 PM, Takahiko Kawasaki <taka@authlete.com> wrote=
:
>>
>> Under existing specifications (RFC 6749, OIDC Core 1.0 and FAPI), a
>> client can choose an arbitrary redirect_uri without registering it only
>> when all the following conditions are satisfied.
>>
>> 1. The client type of the client is "confidential". (RFC 6749 Section
>> 3.1.2.2 requires that public clients register redirect URIs.)
>> 2. The flow is not "implicit". (RFC 6749 Section 3.1.2.2 requires that
>> confidential clients utilizing the implicit grant type register redirect
>> URIs.)
>> 3. The authorization request is not an OIDC request. (OIDC Core 1.0
>> Section 3.1.2.1 requires that redirect_uri match a pre-registered one.)
>> 4. The authorization request is not a FAPI request. (FAPI Part 1 Section
>> 5.2.2 Clause 8 requires that redirect URIs be pre-registered.)
>>
>> In short, under existing specifications, pure RFC-6749
>> authorization-code-flow requests from confidential clients can choose an
>> arbitrary redirect_uri without registering it. Once OIDC or FAPI is used=
,
>> existing specifications require pre-registration of redirect URIs. I'm n=
ot
>> sure but if PAR's "redirect_uri Management" is going to introduce rules
>> that conflict with existing specifications, it is better to list the
>> conflicts explicitly in the section.
>>
>> Best Regards,
>> Takahiko Kawasaki
>>
>>
>> On Wed, Sep 2, 2020 at 3:48 AM Torsten Lodderstedt <torsten=3D
>> 40lodderstedt.net@dmarc.ietf.org> wrote:
>>
>>> Here is my proposal for the new section:
>>>
>>> 2.4. redirect_uri Management
>>>
>>> The OAuth Security BCP [I-D.ietf-oauth-security-topics] as well as OAut=
h
>>> 2.1 [I-D.ietf-oauth-v2-1] require an AS to excactly match the redirect_=
uri
>>> parameter against the set of redirect URIs previously established for a
>>> particular client. This is a means to early detect attempts to imperson=
ate
>>> a client and prevent token leakage and open redirection. As a downside,=
 it
>>> makes client management more complex since the redirect URI is typicall=
y
>>> the most volatile part of a client policy.
>>>
>>> This requirement MAY be relaxed by the AS, if a confidential client use=
s
>>> pushed authorization requests since the AS authenticates the client bef=
ore
>>> the authorization process starts and that way ensures it interacts with=
 the
>>> legit client. The AS MAY allow such clients to specify redirect_uri val=
ues
>>> not previously registered with the AS. This will give the client more
>>> flexibility (e.g. to mint AS-specific redirect URIs on the fly) and mak=
es
>>> client management much easier. It is at the discretion of the AS to app=
ly
>>> restriction on redirect_uri values, e.g. the AS MAY require a certain U=
RI
>>> prefix or allow only a query parameter to vary at runtime.
>>>
>>> Note: The aibility to set up transaction specific redirect URIs is also
>>> useful in situations where client ids and correspoding credentials and
>>> policies are managed by a trusted 3rd party, e.g. via client certifiate=
s
>>> containing client permissions. Such an externally managed client could
>>> interact with an AS trusting the respective 3rd party without the need =
for
>>> an additional registration step.
>>>
>>> > On 29. Aug 2020, at 17:22, Justin Richer <jricher@mit.edu> wrote:
>>> >
>>> > I completely agree with the utility of the function in question here
>>> and it needs to be included. I=E2=80=99m in favor of creating a dedicat=
ed section
>>> for redirect_uri management, so that we can explain exactly how and why=
 to
>>> relax the requirement from core OAuth. In addition, I think we want to
>>> discuss that the AS might have its own restrictions on which redirect U=
RIs
>>> an authenticated client might be able to use. For example, registering =
a
>>> client with a Redirect URI prefix, or allowing only a query parameter t=
o
>>> vary at runtime. All of these can be enforced in PAR because the client=
 is
>>> presenting its authentication, as you point out, so the AS can determin=
e
>>> which policies should apply.
>>> >
>>> > =E2=80=94 Justin
>>> >
>>> >> On Aug 29, 2020, at 7:52 AM, Torsten Lodderstedt <
>>> torsten@lodderstedt.net> wrote:
>>> >>
>>> >>
>>> >>>
>>> >>>
>>> >>>   =C2=B66: Does the AS really have "the ability to authenticate and
>>> authorize clients=E2=80=9D? I think what we mean here is "the ability t=
o
>>> authenticate clients and validate client requests=E2=80=9D, but I=E2=80=
=99m not positive of
>>> the intent.
>>> >>>
>>> >>> I think the intent is that the AS can check whether a client is
>>> authorized to make a particular authorization request (specific scopes,
>>> response type, etc.). But checking authorization to request authorizati=
on
>>> is confusing wording. I think your working is less confusing and still
>>> allows for the intent.
>>> >>>
>>> >>> I'll let Torsten interject if he feels differently as I think he
>>> originally wrote the text in question.
>>> >>
>>> >> that was the original intent. I think =E2=80=9Cvalidate" is fine.
>>> >>
>>> >>>
>>> >>>
>>> >>>
>>> >>>   =C2=B67: I=E2=80=99m not sure I buy this example. Even if the cli=
entID is
>>> managed externally, the association with a set or pattern of allowed
>>> redirect URIs is still important, and the AS will need to know what tha=
t
>>> is. I think this example could lead an AS developer to (erroneously and
>>> dangerously) conclude that they don=E2=80=99t have to check any other v=
alues in a
>>> request, including scope and redirect URI. It=E2=80=99s important that =
DynReg
>>> doesn=E2=80=99t alleviate that issue, but removal of DynReg doesn=E2=80=
=99t really change
>>> things in that regard. Suggest removing example or reworking paragraph.
>>> >>>
>>> >>> I'm going to have to defer to Torsten on this because, to be honest=
,
>>> I'm not too sure about it myself. I tend to lean towards thinking the d=
raft
>>> would be better off without it.
>>> >>>
>>> >>
>>> >> In the traditional authorization flow, the redirect_uri serves as wa=
y
>>> to make sure the AS is really talking to the legit client and the allow=
ed
>>> redirect_uri values are determined by the legit client at registration =
time
>>> (might be manually).
>>> >>
>>> >> With PAR, we have a much stronger means to ensure the AS is talking
>>> to the legit client. That=E2=80=99s why I don=E2=80=99t see an issue wi=
th letting the
>>> client set a per transaction redirect_uri. This will give the client mo=
re
>>> flexibility (mint AS-specific redirect URIs on the fly) and makes clien=
t
>>> management much easier since redirect URIs are the most volatile part o=
f a
>>> client policy.
>>> >>
>>> >> It also makes use of OAuth much easier in deployments where client
>>> identities are managed by external entities (even without any idea of
>>> OAuth). A prominent example is open banking in the EU (aka PSD2). The
>>> (technical) identity of any PSD2-licensed client is asserted by an eIDA=
S
>>> compliant CA in a special X.509 certificate. Those certificates contain=
 the
>>> permissions (access to account information and/or payment initiation
>>> allowed) and the identity (member state specific). But they don=E2=80=
=99t contain
>>> OAuth policy values. Nevertheless, the regulation requires any financia=
l
>>> institution in the EU to at runtime, without any registration, to accep=
t
>>> and process calls from any licensed PSD2 clients.
>>> >>
>>> >> There are two ways to cope with it in OAuth context:
>>> >> a) use dynamic client registration with the X.509 cert as credential=
.
>>> Unfortunately, RFC 7591 does not support other client authentication me=
ans
>>> then an initial access token. Beside that, it would violate the text of=
 the
>>> regulation.
>>> >> b) establish a redirect URL with every transaction. This is the
>>> recommended approach in at least one of the PSD2 specs.
>>> >>
>>> >> PAR is a clean way to solve that problem.
>>> >>
>>> >> I don=E2=80=99t want this text to cause confusing. On the other hand=
 this
>>> potential of PAR is way too important to not mention it at all. What ab=
out
>>> moving it into a special section "redirect_uri management=E2=80=9D?
>>> >>
>>> >>>
>>> >>
>>> >
>>>
>>> _______________________________________________
>>> OAuth mailing list
>>> OAuth@ietf.org
>>> https://www.ietf.org/mailman/listinfo/oauth
>>>
>>
>>
> *CONFIDENTIALITY NOTICE: This email may contain confidential and
> privileged material for the sole use of the intended recipient(s). Any
> review, use, distribution or disclosure by others is strictly prohibited.
> If you have received this communication in error, please notify the sende=
r
> immediately by e-mail and delete the message and any file attachments fro=
m
> your computer. Thank you.*_______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth
>


--=20
Dave Tonge
CTO
[image: Moneyhub Enterprise]
<http://www.google.com/url?q=3Dhttp%3A%2F%2Fmoneyhubenterprise.com%2F&sa=3D=
D&sntz=3D1&usg=3DAFQjCNGUnR5opJv5S1uZOVg8aISwPKAv3A>
Moneyhub Financial Technology, 5th Floor, 10 Temple Back, Bristol, BS1 6FL
t: +44 (0)117 280 5120

Moneyhub Enterprise is a trading style of Moneyhub Financial Technology
Limited which is authorised and regulated by the Financial Conduct
Authority ("FCA"). Moneyhub Financial Technology is entered on the
Financial Services Register (FRN 809360) at fca.org.uk/register.
Moneyhub Financial
Technology is registered in England & Wales, company registration number
06909772 .
Moneyhub Financial Technology Limited 2018 =C2=A9

DISCLAIMER: This email (including any attachments) is subject to copyright,
and the information in it is confidential. Use of this email or of any
information in it other than by the addressee is unauthorised and unlawful.
Whilst reasonable efforts are made to ensure that any attachments are
virus-free, it is the recipient's sole responsibility to scan all
attachments for viruses. All calls and emails to and from this company may
be monitored and recorded for legitimate purposes relating to this
company's business. Any opinions expressed in this email (or in any
attachments) are those of the author and do not necessarily represent the
opinions of Moneyhub Financial Technology Limited or of any other group
company.

--=20


Moneyhub Enterprise is a trading style of Moneyhub Financial Technology=20
Limited which is authorised and regulated by the Financial Conduct=20
Authority ("FCA"). Moneyhub Financial Technology is entered on the=20
Financial Services Register (FRN 809360) at https://register.fca.org.uk/=20
<https://register.fca.org.uk/>. Moneyhub Financial Technology is registered=
=20
in England & Wales, company registration number 06909772. Moneyhub=20
Financial Technology Limited 2020 =C2=A9 Moneyhub Enterprise, Regus Buildin=
g,=20
Temple Quay, 1 Friary, Bristol, BS1 6EA.=C2=A0

DISCLAIMER: This email=20
(including any attachments) is subject to copyright, and the information in=
=20
it is confidential. Use of this email or of any information in it other=20
than by the addressee is unauthorised and unlawful. Whilst reasonable=20
efforts are made to ensure that any attachments are virus-free, it is the=
=20
recipient's sole responsibility to scan all attachments for viruses. All=20
calls and emails to and from this company may be monitored and recorded for=
=20
legitimate purposes relating to this company's business. Any opinions=20
expressed in this email (or in any attachments) are those of the author and=
=20
do not necessarily represent the opinions of Moneyhub Financial Technology=
=20
Limited or of any other group company.

--000000000000227e3505ae67b256
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:trebuche=
t ms,sans-serif">Looks really good to me, thanks Brian.</div></div><br><div=
 class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Wed, 2 Sep =
2020 at 21:42, Brian Campbell &lt;bcampbell=3D<a href=3D"mailto:40pingident=
ity.com@dmarc.ietf.org">40pingidentity.com@dmarc.ietf.org</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 dir=3D"ltr"><=
div>Thanks Torsten, Taka, and Justin,</div><div><br></div><div>I took the r=
evised text from Justin and tweaked it with some typo cleanup and minor adj=
ustments to make what is hopefully a final proposal below. I had a similar =
feeling about the last paragraph not really fitting but don&#39;t have a be=
tter location to suggest so am just leaving it. <br></div><div><br></div><d=
iv style=3D"margin-left:40px">2.4. Management of Client Redirect URIs<br><b=
r>While OAuth 2.0 [RFC6749] allows=20
clients to use unregistered redirect_uri values in certain=20
circumstances, or for the authorization server to apply its own matching se=
mantics to the=20
redirect_uri value presented by the client at the authorization=20
endpoint, the OAuth Security BCP [I-D.ietf-oauth-security-topics]=20
as well as OAuth 2.1 [I-D.ietf-oauth-v2-1] require an authorization server =
exactly=20
match the redirect_uri parameter against the set of redirect URIs=20
previously established for a particular client. This is a means for early
 detection of client impersonation attempts and prevents token leakage and=
=20
open redirection. As a downside, this can make client management more cumbe=
rsome
 since the redirect URI is typically the most volatile part of a client=20
policy.<br><br>The exact=20
matching requirement MAY be relaxed by the authorization server for a=20
confidential client using pushed authorization requests since the authoriza=
tion server
authenticates the client before the authorization process starts and thus e=
nsures it is interacting with the legitimate client. The authorization serv=
er MAY allow=20
such clients to specify redirect_uri values that were not previously regist=
ered=20
with the authorization server.  This will give the client more flexibility =
(e.g. to mint distinct redirect URI values per authorization server at runt=
ime) and can simplify client management. It is at the discretion of the aut=
horization server to apply restrictions on supplied
redirect_uri values, e.g. the authorization server MAY require a certain UR=
I prefix or=20
allow only a query parameter to vary at runtime.</div><div style=3D"margin-=
left:40px"><br></div><div style=3D"margin-left:40px">The ability to set up =
transaction specific redirect URIs is also useful in situations where clien=
t ids and corresponding credentials and policies are managed by a trusted 3=
rd party, e.g. via client certificates containing client permissions. Such =
an externally managed client could interact with an authorization server tr=
usting the respective 3rd party without the need for an additional registra=
tion step.</div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=
=3D"gmail_attr">On Wed, Sep 2, 2020 at 8:09 AM Justin Richer &lt;<a href=3D=
"mailto:jricher@mit.edu" target=3D"_blank">jricher@mit.edu</a>&gt; wrote:<b=
r></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>The real con=
flict here is with the BCP and 2.1, both of which adopt the stricter matchi=
ng semantics for redirect URIs than 6749 does on its own. This section woul=
d be needed to clarify how they relate to each other. That said, I think ad=
ding some of Taka=E2=80=99s observations to Torsten=E2=80=99s text wouldn=
=E2=80=99t hurt:<div><br></div><blockquote style=3D"margin:0px 0px 0px 40px=
;border:medium none;padding:0px"><div>2.4. Management of=C2=A0redirect_uri<=
br><br>While OAuth 2.0 [RFC6749] allows clients to use unregistered redirec=
t_uri values in certain circumstances, or for the AS to apply its own match=
ing semantics to the redirect_uri value presented by the client at the auth=
orization endpoint, the OAuth Security BCP [I-D.ietf-oauth-security-topics]=
 as well as OAuth 2.1 [I-D.ietf-oauth-v2-1] require an AS to excactly match=
 the redirect_uri parameter against the set of redirect URIs previously est=
ablished for a particular client. This is a means to early detect attempts =
to impersonate a client and prevent token leakage and open redirection. As =
a downside, it makes client management more complex since the redirect URI =
is typically the most volatile part of a client policy.<br><br>This require=
ment MAY be relaxed by the AS if a confidential client uses pushed authoriz=
ation requests since the AS authenticates the client before the authorizati=
on process starts and that way ensures it interacts with the legit client. =
The AS MAY allow such clients to specify redirect_uri values not previously=
 registered with the AS. This will give the client more flexibility (e.g. t=
o mint AS-specific redirect URIs on the fly) and makes client management mu=
ch easier. It is at the discretion of the AS to apply restriction on redire=
ct_uri values, e.g. the AS MAY require a certain URI prefix or allow only a=
 query parameter to vary at runtime.<br><br></div></blockquote>I also feel =
like this paragraph belongs in a different section outside of here. I=E2=80=
=99m not sure where, but it doesn=E2=80=99t quite seem to fit, to me. It=E2=
=80=99s not the end of the world if it stays here though as it=E2=80=99s a =
decent view on the =E2=80=9Cwhy&quot;.<br><blockquote style=3D"margin:0px 0=
px 0px 40px;border:medium none;padding:0px"><div><br>The aibility to set up=
 transaction specific redirect URIs is also useful in situations where clie=
nt ids and correspoding credentials and policies are managed by a trusted 3=
rd party, e.g. via client certifiates containing client permissions. Such a=
n externally managed client could interact with an AS trusting the respecti=
ve 3rd party without the need for an additional registration step.</div></b=
lockquote><div><div><br></div><div>=C2=A0=E2=80=94 Justin<br><div><br><bloc=
kquote type=3D"cite"><div>On Sep 1, 2020, at 11:05 PM, Takahiko Kawasaki &l=
t;<a href=3D"mailto:taka@authlete.com" target=3D"_blank">taka@authlete.com<=
/a>&gt; wrote:</div><br><div><div dir=3D"ltr"><div>Under existing specifica=
tions (RFC 6749, OIDC Core 1.0 and FAPI), a client can choose an arbitrary =
redirect_uri without registering it only when all the following conditions =
are satisfied.</div><div><br></div><div>1. The client type of the client is=
 &quot;confidential&quot;. (RFC 6749 Section 3.1.2.2 requires that public c=
lients register redirect URIs.)</div><div>2. The flow is not &quot;implicit=
&quot;. (RFC 6749 Section 3.1.2.2 requires that confidential clients utiliz=
ing the implicit grant type register redirect URIs.)</div><div>3. The autho=
rization request is not an OIDC request. (OIDC Core 1.0 Section 3.1.2.1 req=
uires that redirect_uri match a pre-registered one.)</div><div>4. The autho=
rization request is not a FAPI request. (FAPI Part 1 Section 5.2.2 Clause 8=
 requires that redirect URIs be pre-registered.)</div><div><br></div><div>I=
n short, under existing specifications, pure RFC-6749 authorization-code-fl=
ow requests from confidential clients can choose an arbitrary redirect_uri =
without registering it. Once OIDC or FAPI is used, existing specifications =
require pre-registration of redirect URIs. I&#39;m not sure but if PAR&#39;=
s &quot;redirect_uri Management&quot; is going to introduce rules that conf=
lict with existing specifications, it is better to list the conflicts expli=
citly in the section.</div><div><br></div><div>Best Regards,</div><div>Taka=
hiko Kawasaki</div><div><br></div></div><br><div class=3D"gmail_quote"><div=
 dir=3D"ltr" class=3D"gmail_attr">On Wed, Sep 2, 2020 at 3:48 AM Torsten Lo=
dderstedt &lt;torsten=3D<a href=3D"mailto:40lodderstedt.net@dmarc.ietf.org"=
 target=3D"_blank">40lodderstedt.net@dmarc.ietf.org</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">Here is my proposal for =
the new section:<br>
<br>
2.4. redirect_uri Management<br>
<br>
The OAuth Security BCP [I-D.ietf-oauth-security-topics] as well as OAuth 2.=
1 [I-D.ietf-oauth-v2-1] require an AS to excactly match the redirect_uri pa=
rameter against the set of redirect URIs previously established for a parti=
cular client. This is a means to early detect attempts to impersonate a cli=
ent and prevent token leakage and open redirection. As a downside, it makes=
 client management more complex since the redirect URI is typically the mos=
t volatile part of a client policy.<br>
<br>
This requirement MAY be relaxed by the AS, if a confidential client uses pu=
shed authorization requests since the AS authenticates the client before th=
e authorization process starts and that way ensures it interacts with the l=
egit client. The AS MAY allow such clients to specify redirect_uri values n=
ot previously registered with the AS. This will give the client more flexib=
ility (e.g. to mint AS-specific redirect URIs on the fly) and makes client =
management much easier. It is at the discretion of the AS to apply restrict=
ion on redirect_uri values, e.g. the AS MAY require a certain URI prefix or=
 allow only a query parameter to vary at runtime.<br>
<br>
Note: The aibility to set up transaction specific redirect URIs is also use=
ful in situations where client ids and correspoding credentials and policie=
s are managed by a trusted 3rd party, e.g. via client certifiates containin=
g client permissions. Such an externally managed client could interact with=
 an AS trusting the respective 3rd party without the need for an additional=
 registration step.<br>
<br>
&gt; On 29. Aug 2020, at 17:22, Justin Richer &lt;<a href=3D"mailto:jricher=
@mit.edu" target=3D"_blank">jricher@mit.edu</a>&gt; wrote:<br>
&gt; <br>
&gt; I completely agree with the utility of the function in question here a=
nd it needs to be included. I=E2=80=99m in favor of creating a dedicated se=
ction for redirect_uri management, so that we can explain exactly how and w=
hy to relax the requirement from core OAuth. In addition, I think we want t=
o discuss that the AS might have its own restrictions on which redirect URI=
s an authenticated client might be able to use. For example, registering a =
client with a Redirect URI prefix, or allowing only a query parameter to va=
ry at runtime. All of these can be enforced in PAR because the client is pr=
esenting its authentication, as you point out, so the AS can determine whic=
h policies should apply.<br>
&gt; <br>
&gt; =E2=80=94 Justin<br>
&gt; <br>
&gt;&gt; On Aug 29, 2020, at 7:52 AM, Torsten Lodderstedt &lt;<a href=3D"ma=
ilto:torsten@lodderstedt.net" target=3D"_blank">torsten@lodderstedt.net</a>=
&gt; wrote:<br>
&gt;&gt; <br>
&gt;&gt; <br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt;=C2=A0 =C2=A0=C2=B66: Does the AS really have &quot;the ability=
 to authenticate and authorize clients=E2=80=9D? I think what we mean here =
is &quot;the ability to authenticate clients and validate client requests=
=E2=80=9D, but I=E2=80=99m not positive of the intent. <br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; I think the intent is that the AS can check whether a client i=
s authorized to make a particular authorization request (specific scopes, r=
esponse type, etc.). But checking authorization to request authorization is=
 confusing wording. I think your working is less confusing and still allows=
 for the intent. <br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; I&#39;ll let Torsten interject if he feels differently as I th=
ink he originally wrote the text in question. <br>
&gt;&gt; <br>
&gt;&gt; that was the original intent. I think =E2=80=9Cvalidate&quot; is f=
ine. <br>
&gt;&gt; <br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt;=C2=A0 =C2=A0=C2=B67: I=E2=80=99m not sure I buy this example. =
Even if the clientID is managed externally, the association with a set or p=
attern of allowed redirect URIs is still important, and the AS will need to=
 know what that is. I think this example could lead an AS developer to (err=
oneously and dangerously) conclude that they don=E2=80=99t have to check an=
y other values in a request, including scope and redirect URI. It=E2=80=99s=
 important that DynReg doesn=E2=80=99t alleviate that issue, but removal of=
 DynReg doesn=E2=80=99t really change things in that regard. Suggest removi=
ng example or reworking paragraph.<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; I&#39;m going to have to defer to Torsten on this because, to =
be honest, I&#39;m not too sure about it myself. I tend to lean towards thi=
nking the draft would be better off without it. <br>
&gt;&gt;&gt; <br>
&gt;&gt; <br>
&gt;&gt; In the traditional authorization flow, the redirect_uri serves as =
way to make sure the AS is really talking to the legit client and the allow=
ed redirect_uri values are determined by the legit client at registration t=
ime (might be manually).<br>
&gt;&gt; <br>
&gt;&gt; With PAR, we have a much stronger means to ensure the AS is talkin=
g to the legit client. That=E2=80=99s why I don=E2=80=99t see an issue with=
 letting the client set a per transaction redirect_uri. This will give the =
client more flexibility (mint AS-specific redirect URIs on the fly) and mak=
es client management much easier since redirect URIs are the most volatile =
part of a client policy. <br>
&gt;&gt; <br>
&gt;&gt; It also makes use of OAuth much easier in deployments where client=
 identities are managed by external entities (even without any idea of OAut=
h). A prominent example is open banking in the EU (aka PSD2). The (technica=
l) identity of any PSD2-licensed client is asserted by an eIDAS compliant C=
A in a special X.509 certificate. Those certificates contain the permission=
s (access to account information and/or payment initiation allowed) and the=
 identity (member state specific). But they don=E2=80=99t contain OAuth pol=
icy values. Nevertheless, the regulation requires any financial institution=
 in the EU to at runtime, without any registration, to accept and process c=
alls from any licensed PSD2 clients.<br>
&gt;&gt; <br>
&gt;&gt; There are two ways to cope with it in OAuth context:<br>
&gt;&gt; a) use dynamic client registration with the X.509 cert as credenti=
al. Unfortunately, RFC 7591 does not support other client authentication me=
ans then an initial access token. Beside that, it would violate the text of=
 the regulation. <br>
&gt;&gt; b) establish a redirect URL with every transaction. This is the re=
commended approach in at least one of the PSD2 specs.<br>
&gt;&gt; <br>
&gt;&gt; PAR is a clean way to solve that problem. <br>
&gt;&gt; <br>
&gt;&gt; I don=E2=80=99t want this text to cause confusing. On the other ha=
nd this potential of PAR is way too important to not mention it at all. Wha=
t about moving it into a special section &quot;redirect_uri management=E2=
=80=9D?<br>
&gt;&gt; <br>
&gt;&gt;&gt; <br>
&gt;&gt; <br>
&gt; <br>
<br>
_______________________________________________<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></div></div></blockquote></div>

<br>
<i style=3D"margin:0px;padding:0px;border:0px;outline:0px;vertical-align:ba=
seline;background:rgb(255,255,255);font-family:proxima-nova-zendesk,system-=
ui,-apple-system,system-ui,&quot;Segoe UI&quot;,Roboto,Oxygen-Sans,Ubuntu,C=
antarell,&quot;Helvetica Neue&quot;,Arial,sans-serif;color:rgb(85,85,85)"><=
span style=3D"margin:0px;padding:0px;border:0px;outline:0px;vertical-align:=
baseline;background:transparent;font-family:proxima-nova-zendesk,system-ui,=
-apple-system,BlinkMacSystemFont,&quot;Segoe UI&quot;,Roboto,Oxygen-Sans,Ub=
untu,Cantarell,&quot;Helvetica Neue&quot;,Arial,sans-serif;font-weight:600"=
><font size=3D"2">CONFIDENTIALITY NOTICE: This email may contain confidenti=
al and privileged material for the sole use of the intended recipient(s). A=
ny review, use, distribution or disclosure by others is strictly prohibited=
.=C2=A0 If you have received this communication in error, please notify the=
 sender immediately by e-mail and delete the message and any file attachmen=
ts from your computer. Thank you.</font></span></i>________________________=
_______________________<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><br clear=3D"all"><div><br></div>-- <br><div dir=3D"ltr"=
 class=3D"gmail_signature"><div dir=3D"ltr"><div><div dir=3D"ltr"><div dir=
=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div style=3D"f=
ont-size:1em;font-weight:bold;line-height:1.4"><div style=3D"color:rgb(97,9=
7,97);font-family:&quot;Open Sans&quot;;font-size:14px;font-weight:normal;l=
ine-height:21px"><div style=3D"font-family:Arial,Helvetica,sans-serif;font-=
size:0.925em;line-height:1.4;color:rgb(220,41,30);font-weight:bold"><div st=
yle=3D"font-size:14px;font-weight:normal;color:rgb(51,51,51);font-family:la=
to,&quot;open sans&quot;,arial,sans-serif;line-height:normal"><div style=3D=
"color:rgb(0,164,183);font-weight:bold;font-size:1em;line-height:1.4"><div =
style=3D"font-weight:400;color:rgb(51,51,51);line-height:normal"><div style=
=3D"color:rgb(0,164,183);font-weight:bold;font-size:1em;line-height:1.4">Da=
ve Tonge</div><div style=3D"font-size:0.8125em;line-height:1.4">CTO</div><d=
iv style=3D"font-size:0.8125em;line-height:1.4;margin:0px"><a href=3D"http:=
//www.google.com/url?q=3Dhttp%3A%2F%2Fmoneyhubenterprise.com%2F&amp;sa=3DD&=
amp;sntz=3D1&amp;usg=3DAFQjCNGUnR5opJv5S1uZOVg8aISwPKAv3A" style=3D"color:r=
gb(131,94,165)" target=3D"_blank"><img alt=3D"Moneyhub Enterprise" height=
=3D"50" src=3D"http://content.moneyhub.co.uk/images/teal_Moneyhub-Ent_logo_=
200x50.png" title=3D"Moneyhub Enterprise" width=3D"200" style=3D"border: no=
ne; padding: 0px; border-radius: 2px; margin: 7px;"></a></div><div style=3D=
"padding:8px 0px"><div style=3D"padding:8px 0px"><div style=3D"letter-spaci=
ng:normal;line-height:normal"><div style=3D"padding:8px 0px"><span style=3D=
"color:rgb(0,164,183);font-size:11px">Moneyhub Financial Technology, 5th Fl=
oor, 10 Temple Back, Bristol, BS1 6FL</span></div><span style=3D"font-size:=
11px;line-height:15.925px;color:rgb(0,164,183);font-weight:bold">t:=C2=A0</=
span><span style=3D"font-size:11px;line-height:15.925px">+44 (0)117 280 512=
0</span><br style=3D"color:rgb(0,164,183);font-size:11px;line-height:15.925=
px"></div><div style=3D"letter-spacing:normal;line-height:normal"><span sty=
le=3D"font-size:11px;line-height:15.925px"><br></span></div><div style=3D"c=
olor:rgb(97,97,97);font-family:&quot;Open Sans&quot;;letter-spacing:normal"=
><div style=3D"line-height:1.4"><span style=3D"color:rgb(51,51,51);font-fam=
ily:lato,&quot;open sans&quot;,arial,sans-serif;font-size:0.75em">Moneyhub =
Enterprise is a trading style of Moneyhub Financial Technology Limited whic=
h is authorised and regulated by the Financial Conduct Authority (&quot;FCA=
&quot;).=C2=A0Moneyhub Financial Technology is entered on the Financial Ser=
vices Register=C2=A0</span><span style=3D"color:rgb(51,51,51);font-family:l=
ato,&quot;open sans&quot;,arial,sans-serif;font-size:0.75em;background-colo=
r:transparent">(FRN=C2=A0</span><span style=3D"color:rgb(0,164,183);font-fa=
mily:lato,&quot;open sans&quot;,arial,sans-serif;font-size:10.5px;font-weig=
ht:700">809360</span><span style=3D"color:rgb(51,51,51);font-family:lato,&q=
uot;open sans&quot;,arial,sans-serif;background-color:transparent;font-size=
:0.75em">) at <a href=3D"http://fca.org.uk/register" target=3D"_blank">fca.=
org.uk/register</a>. M</span><span style=3D"color:rgb(51,51,51);font-family=
:lato,&quot;open sans&quot;,arial,sans-serif;background-color:transparent;f=
ont-size:10.5px">oneyhub</span><span style=3D"color:rgb(51,51,51);font-fami=
ly:lato,&quot;open sans&quot;,arial,sans-serif;background-color:transparent=
;font-size:0.75em">=C2=A0Financial Technology is registered in England &amp=
; Wales, company registration number=C2=A0</span><span style=3D"color:rgb(5=
1,51,51);font-family:lato,&quot;open sans&quot;,arial,sans-serif;background=
-color:transparent;font-size:0.75em">=C2=A0</span><span style=3D"font-weigh=
t:bold;color:rgb(0,164,183);font-family:lato,&quot;open sans&quot;,arial,sa=
ns-serif;background-color:transparent;font-size:0.75em">06909772</span><spa=
n style=3D"background-color:transparent"><font color=3D"#333333" face=3D"la=
to, open sans, arial, sans-serif"><span style=3D"font-size:0.75em">=C2=A0.<=
/span></font></span></div><div style=3D"font-family:lato,&quot;open sans&qu=
ot;,arial,sans-serif;color:rgb(51,51,51);line-height:1.4"><span style=3D"ba=
ckground-color:transparent;font-size:10.5px">Moneyhub</span><span style=3D"=
background-color:transparent;font-size:0.75em">=C2=A0Financial Technology L=
imited 2018=C2=A0</span><span style=3D"background-color:transparent;color:r=
gb(34,34,34);font-family:arial,sans-serif;font-size:x-small">=C2=A9</span><=
/div><div style=3D"font-family:lato,&quot;open sans&quot;,arial,sans-serif;=
color:rgb(51,51,51);line-height:1.4"><span style=3D"background-color:transp=
arent;font-size:0.75em"><br></span></div><div style=3D"font-family:lato,&qu=
ot;open sans&quot;,arial,sans-serif;color:rgb(51,51,51);line-height:1.4"><s=
pan style=3D"background-color:transparent;font-size:0.75em;color:rgb(136,13=
6,136)">DISCLAIMER: This email (including any attachments) is subject to co=
pyright, and the information in it is confidential. Use of this email or of=
 any information in it other than by the addressee is unauthorised and unla=
wful. Whilst reasonable efforts are made to ensure that any attachments are=
 virus-free, it is the recipient&#39;s sole responsibility to scan all atta=
chments for viruses. All calls and emails to and from this company may be m=
onitored and recorded for legitimate purposes relating to this company&#39;=
s business. Any opinions expressed in this email (or in any attachments) ar=
e those of the author and do not necessarily represent the opinions of Mone=
yhub Financial Technology Limited or of any other group company.</span></di=
v></div></div></div></div></div></div></div></div></div></div></div></div><=
/div></div></div></div></div>

<br>
<p dir=3D"ltr" style=3D"font-weight:bold"><font face=3D"Arial" color=3D"#80=
8080" size=3D"1">Moneyhub Enterprise is a trading style of Moneyhub Financi=
al Technology Limited which is authorised and regulated by the Financial Co=
nduct Authority (&quot;FCA&quot;). Moneyhub Financial Technology is entered=
 on the Financial Services Register (FRN 809360) at <a href=3D"https://regi=
ster.fca.org.uk/" target=3D"_blank"><span>https://register.fca.org.uk/</spa=
n></a>. Moneyhub Financial Technology is registered in England &amp; Wales,=
 company registration number 06909772. Moneyhub Financial Technology Limite=
d 2020 =C2=A9 Moneyhub Enterprise, Regus Building, Temple Quay, 1 Friary, B=
ristol, BS1 6EA.=C2=A0</font></p><p dir=3D"ltr" style=3D"font-weight:bold">=
<span style=3D"color:rgb(128,128,128);font-family:Arial;font-weight:400"><f=
ont size=3D"1">DISCLAIMER: This email (including any attachments) is subjec=
t to copyright, and the information in it is confidential. Use of this emai=
l or of any information in it other than by the addressee is unauthorised a=
nd unlawful. Whilst reasonable efforts are made to ensure that any attachme=
nts are virus-free, it is the recipient&#39;s sole responsibility to scan a=
ll attachments for viruses. All calls and emails to and from this company m=
ay be monitored and recorded for legitimate purposes relating to this compa=
ny&#39;s business. Any opinions expressed in this email (or in any attachme=
nts) are those of the author and do not necessarily represent the opinions =
of Moneyhub Financial Technology Limited or of any other group company.</fo=
nt></span></p><br>
--000000000000227e3505ae67b256--

