<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style></head><body lang=EN-US link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Let me get this straight – you are asking the OpenID foundation for a specification which is specifically designed not to have an open ID?</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>thx ..tom</p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='border:none;padding:0in'><b>From: </b><a href="mailto:openid-specs-fapi@lists.openid.net">Torsten Lodderstedt via Openid-specs-fapi</a><br><b>Sent: </b>Tuesday, July 31, 2018 9:08 AM<br><b>To: </b><a href="mailto:dave.tonge@momentumft.co.uk">Dave Tonge</a><br><b>Cc: </b><a href="mailto:torsten@lodderstedt.net">Torsten Lodderstedt</a>; <a href="mailto:openid-specs-fapi@lists.openid.net">Openid-specs Fapi</a>; <a href="mailto:joseph.heenan@fintechlabs.io">Joseph Heenan</a>; <a href="mailto:justin@bspk.io">Justin Richer</a><br><b>Subject: </b>Re: [Openid-specs-fapi] FAPI Profile and openid scope value</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Dave,</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>> Am 31.07.2018 um 10:54 schrieb Dave Tonge <dave.tonge@momentumft.co.uk>:</p><p class=MsoNormal>> </p><p class=MsoNormal>> In the current OpenBanking specs the sub field can be used either for an ephemeral id or for a long lived user identifier:</p><p class=MsoNormal>> </p><p class=MsoNormal>> <Screen Shot 2018-07-31 at 10.37.28.png></p><p class=MsoNormal>> </p><p class=MsoNormal>> https://openbanking.atlassian.net/wiki/spaces/DZ/pages/83919096/Open+Banking+Security+Profile+-+Implementer+s+Draft+v1.1.2</p><p class=MsoNormal>> </p><p class=MsoNormal>> There is also a custom claim returned in the id_token:</p><p class=MsoNormal>> <Screen Shot 2018-07-31 at 10.38.31.png></p><p class=MsoNormal>> </p><p class=MsoNormal>> This isn't an ideal situation as apart from out-of-band mechanisms, the only way an RP can know if they are receiving a long-lived</p><p class=MsoNormal>> identifier is the value in the `sub` field is different from the value in the `openbanking_intent_id` field.</p><p class=MsoNormal>> </p><p class=MsoNormal>> However if an OP omitted the `sub` field entirely, this will break many OIDC implementations as OIDC states that the `sub` field is required.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>That’s exactly the point. The OpenBanking Use Cases (from a function perspective) do not require a „sub" because they are about authorization for API access not identity federation/providing. As far as I understand, OpenID Connect with hybrid flow was used as a foundation of FAPI part 2 because the ID token in the front channel could be used as detached signature. I understand the rationale, but the consequence is the authorization protocol suddenly requires an user id (sub in this case). I assume the hope was banks would use the opportunity and implement id federation as part of their PSD2 implementation. They didn’t (at least in the UK) and return ephemeral sub values instead. The recommendation for "Non Identity Service Providers" even shows the "sub" value does not really add any data to the equation. It’s just there to fulfill the structural protocol requirements.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>That’s why I propose to achieve the same behavior by using a new response type „signed_code“. It would request the AS to produce a signed JWT response, much like the ID Token in the OpenID Connect front channel case but without a "sub“. So vendors (hopefully) wouldn’t have a hard time to implement it and it would free the „openid" scope value (again) to determine whether the client wants a sub and other identity data or not. </p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>This would allow service providers to offer both use cases, API authorization (w/o sub) and identity federation (w/ sub), to the same client_id, simply because the client could turn on identity federation using the scope "openid".</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>> </p><p class=MsoNormal>> Torsten, you stated that:</p><p class=MsoNormal>> </p><p class=MsoNormal>> > in my opinion, the „openid" scope value was designed to exactly address the use case of providing the client with an user id (and further user claims). </p><p class=MsoNormal>> > That’s why further claims can be requested via additional scope values and the claims parameter if the „openid" scope is present. </p><p class=MsoNormal>> </p><p class=MsoNormal>> I agree that this was the original purpose of the `openid` scope value, but the situation at many vendors is that it is used for more than that.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Can you please elaborate on the functions it is used for? Did any of the implementations support ephemeral sub values before this was required by the CMA9 banks?</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>> </p><p class=MsoNormal>> I wonder if we can get input from some vendors on this? (Joseph, Brian, Vladimir?)</p><p class=MsoNormal>> </p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>That would be great!</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>kind regards,</p><p class=MsoNormal>Torsten. </p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>> Thanks</p><p class=MsoNormal>> </p><p class=MsoNormal>> Dave</p><p class=MsoNormal>> </p><p class=MsoNormal>> </p><p class=MsoNormal>> </p><p class=MsoNormal>> On Tue, 31 Jul 2018 at 08:47, Torsten Lodderstedt via Openid-specs-fapi <openid-specs-fapi@lists.openid.net> wrote:</p><p class=MsoNormal>> Is any of the Open Banking Banks using the sub that way? I‘m asking because there are several process and transaction ids involved, which can be used for tracking purposes. I don‘t see a real benefit in using the sub claim for that purpose. But it makes combining authorization use cases (such as payment initiation) and authentication use cases with a single client_id impossible. That’s a serious limitation.</p><p class=MsoNormal>> </p><p class=MsoNormal>> Moreover, the authentication policy in authorization scenarios is up to the AS. I don’t see why the client should control as it is the AS who needs to ensure proper protection of the users resources.</p><p class=MsoNormal>> </p><p class=MsoNormal>> Am 31.07.2018 um 05:28 schrieb n-sakimura via Openid-specs-fapi <openid-specs-fapi@lists.openid.net>:</p><p class=MsoNormal>> </p><p class=MsoNormal>>> A clarification: I suppose you mean `sub` by `sid`. Is that right?</p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> To me, `sub` seems to be perfectly adequate, especially if you want to be sure that the subject, while ‘anonymous’ to the client, is still KYCed and authenticated for the session. The `acr` values are linked to this `sub` value, not to `nonce` or something, as it is linked to the identity proofing. Additionally, if something happens, the Bank, as a designated opener, can open the transaction and track the subject.</p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> Best,</p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> Nat Sakimura</p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> From: Openid-specs-fapi <openid-specs-fapi-bounces@lists.openid.net> On Behalf Of Tom Jones via Openid-specs-fapi</p><p class=MsoNormal>>> Sent: Tuesday, July 31, 2018 12:31 AM</p><p class=MsoNormal>>> To: Financial API Working Group List <openid-specs-fapi@lists.openid.net></p><p class=MsoNormal>>> Cc: Tom Jones <thomasclinganjones@gmail.com></p><p class=MsoNormal>>> Subject: Re: [Openid-specs-fapi] FAPI Profile and openid scope value</p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> perhaps you can describe why the current spec fails to meet you needs.</p><p class=MsoNormal>>> </p><p class=MsoNormal>>> The FAPI read write #2 profile seems to require openid consent which seems to require the sid.</p><p class=MsoNormal>>> </p><p class=MsoNormal>>> The sid can be ephemeral.</p><p class=MsoNormal>>> </p><p class=MsoNormal>>> So, what's missing for you now?</p><p class=MsoNormal>>> </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> Peace ..tom</p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> On Mon, Jul 30, 2018 at 12:02 AM, Torsten Lodderstedt via Openid-specs-fapi <openid-specs-fapi@lists.openid.net> wrote:</p><p class=MsoNormal>>> </p><p class=MsoNormal>>> Hi,</p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> OpenID Connect already has the mechanics to request and attest LOA for authentication (acr_values, acr claim). I think identity proofing requires other mechanisms that allow to complement the particular user claims (e.g. proofing for email works different and has other metadata than name).</p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> kind regards,</p><p class=MsoNormal>>> </p><p class=MsoNormal>>> Torsten.</p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> PS: what is the relation of this topic to the initial topic of the thread?</p><p class=MsoNormal>>> </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> Am 29.07.2018 um 21:49 schrieb Ralph Bragg via Openid-specs-fapi <openid-specs-fapi@lists.openid.net>:</p><p class=MsoNormal>>> </p><p class=MsoNormal>>> Tom,</p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> Could this not be conveyed by a claim instead of a scope? i.e I require LoA or Vector of trust to meet a certain level for the user.</p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> RB</p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> From: Openid-specs-fapi <openid-specs-fapi-bounces@lists.openid.net> on behalf of Tom Jones via Openid-specs-fapi <openid-specs-fapi@lists.openid.net></p><p class=MsoNormal>>> Reply-To: Financial API Working Group List <openid-specs-fapi@lists.openid.net></p><p class=MsoNormal>>> Date: Sunday, 29 July 2018 at 20:28</p><p class=MsoNormal>>> To: Financial API Working Group List <openid-specs-fapi@lists.openid.net></p><p class=MsoNormal>>> Cc: Tom Jones <thomasclinganjones@gmail.com></p><p class=MsoNormal>>> Subject: Re: [Openid-specs-fapi] FAPI Profile and openid scope value</p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> why would the needs of the rp impact the open id provider?</p><p class=MsoNormal>>> </p><p class=MsoNormal>>> I can think of one reason that has been defined, that of assurance.</p><p class=MsoNormal>>> </p><p class=MsoNormal>>> The RP may require a certain level of assurance, vis a vis the NIST sp 800-63 (either v2 or v3)</p><p class=MsoNormal>>> </p><p class=MsoNormal>>> I would recommending a scope for assurance.</p><p class=MsoNormal>>> </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> Peace ..tom</p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> On Sat, Jul 28, 2018 at 10:36 PM, Dave Tonge via Openid-specs-fapi <openid-specs-fapi@lists.openid.net> wrote:</p><p class=MsoNormal>>> </p><p class=MsoNormal>>> Hi Torsten</p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> We have an issue open to make it more explicit about the `openid` scope value:</p><p class=MsoNormal>>> </p><p class=MsoNormal>>> https://bitbucket.org/openid/fapi/issues/149/make-it-clear-that-the-entire-flow-is-oidc</p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> Your use-case is definitely valid and we've heard it a few times and definitely need a solution.</p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> I'm hesitant to say that the hybrid flow should be able to be implemented without the `openid` scope value. My understanding is that many implementations of authorisation servers use the presence of `openid` in the scope to turn on all the OIDC related features such as: id tokens, hybrid flow, request object, claims parameter, stricter processing rules, etc.</p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> Wouldn't it be better to use another `scope` value for the RP to indicate that it wants a long-lived end-user identifier (and possibly other claims), rather than an "ephemeral subject identifier". From a spec perspective using a scope value of `openid` doesn't' guarantee the RP that they will receive back a long-lived user identifier.</p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> I agree with you that it would be better to handle both use cases from a single client.</p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> What do you think about using another scope value?</p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> Dave</p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> On Sat, 28 Jul 2018 at 13:58, Torsten Lodderstedt via Openid-specs-fapi <openid-specs-fapi@lists.openid.net> wrote:</p><p class=MsoNormal>>> </p><p class=MsoNormal>>> Hi all,</p><p class=MsoNormal>>> </p><p class=MsoNormal>>> the "Read and Write API Security Profile" mandates the AS to use response type values "code id_token" or "code id_token token“ meaning an ID Token is provided in any case. In my understanding ID Token is primarily used to further secure the interaction, e.g. by providing the client with an iss claim used to detect mix-up.</p><p class=MsoNormal>>> </p><p class=MsoNormal>>> Is it possible for the RP to use this functionality without the „openid" scope value? The reason I’m asking is I would like to let a RP/client differentiate use cases where it just wants to obtain an access token for API access but is not interested in the user id and use cases where the same client (now as RP) wants to obtain user id and further claims. Using the scope value „openid“ to differentiate those use cases seams straightforward to me. Otherwise the RP would need to use two different client ids with different sub claim policies for the different use cases, which most likely will cause complexity in the AS/OP's consent handling as I assume the RP would like to be the same legal entity in both cases.  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> Thoughts? </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> kind regards,</p><p class=MsoNormal>>> </p><p class=MsoNormal>>> Torsten. _______________________________________________</p><p class=MsoNormal>>> Openid-specs-fapi mailing list</p><p class=MsoNormal>>> Openid-specs-fapi@lists.openid.net</p><p class=MsoNormal>>> http://lists.openid.net/mailman/listinfo/openid-specs-fapi</p><p class=MsoNormal>>> </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> --</p><p class=MsoNormal>>> </p><p class=MsoNormal>>> Dave Tonge</p><p class=MsoNormal>>> </p><p class=MsoNormal>>> CTO</p><p class=MsoNormal>>> </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> Moneyhub Financial Technology, 2nd Floor, Whitefriars Business Centre, Lewins Mead, Bristol, BS1 2NT</p><p class=MsoNormal>>> </p><p class=MsoNormal>>> t: +44 (0)117 280 5120</p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> 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 561538) at fca.org.uk/register. Moneyhub Financial Technology is registered in England & Wales, company registration number 06909772 © . Moneyhub Financial Technology Limited 2018. 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 Momentum Financial Technology Limited or of any other group company.</p><p class=MsoNormal>>> </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> _______________________________________________</p><p class=MsoNormal>>> Openid-specs-fapi mailing list</p><p class=MsoNormal>>> Openid-specs-fapi@lists.openid.net</p><p class=MsoNormal>>> http://lists.openid.net/mailman/listinfo/openid-specs-fapi</p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> _______________________________________________</p><p class=MsoNormal>>> Openid-specs-fapi mailing list</p><p class=MsoNormal>>> Openid-specs-fapi@lists.openid.net</p><p class=MsoNormal>>> http://lists.openid.net/mailman/listinfo/openid-specs-fapi</p><p class=MsoNormal>>> </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> _______________________________________________</p><p class=MsoNormal>>> Openid-specs-fapi mailing list</p><p class=MsoNormal>>> Openid-specs-fapi@lists.openid.net</p><p class=MsoNormal>>> http://lists.openid.net/mailman/listinfo/openid-specs-fapi</p><p class=MsoNormal>>> </p><p class=MsoNormal>>>  </p><p class=MsoNormal>>> </p><p class=MsoNormal>>> _______________________________________________</p><p class=MsoNormal>>> Openid-specs-fapi mailing list</p><p class=MsoNormal>>> Openid-specs-fapi@lists.openid.net</p><p class=MsoNormal>>> http://lists.openid.net/mailman/listinfo/openid-specs-fapi</p><p class=MsoNormal>> _______________________________________________</p><p class=MsoNormal>> Openid-specs-fapi mailing list</p><p class=MsoNormal>> Openid-specs-fapi@lists.openid.net</p><p class=MsoNormal>> http://lists.openid.net/mailman/listinfo/openid-specs-fapi</p><p class=MsoNormal>> </p><p class=MsoNormal>> </p><p class=MsoNormal>> -- </p><p class=MsoNormal>> Dave Tonge</p><p class=MsoNormal>> </p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>