Re: [GNAP] [Txauth] Revisiting the photo sharing example (a driving use case for the creation of OAuth)

Fabien Imbault <fabien.imbault@gmail.com> Wed, 19 August 2020 17:16 UTC

Return-Path: <fabien.imbault@gmail.com>
X-Original-To: txauth@ietfa.amsl.com
Delivered-To: txauth@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 134293A08D6 for <txauth@ietfa.amsl.com>; Wed, 19 Aug 2020 10:16:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.096
X-Spam-Level:
X-Spam-Status: No, score=-2.096 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, FREEMAIL_FROM=0.001, HTML_FONT_LOW_CONTRAST=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zT0qcj1BEaS6 for <txauth@ietfa.amsl.com>; Wed, 19 Aug 2020 10:16:01 -0700 (PDT)
Received: from mail-io1-xd2a.google.com (mail-io1-xd2a.google.com [IPv6:2607:f8b0:4864:20::d2a]) (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 CD3A93A08DB for <txauth@ietf.org>; Wed, 19 Aug 2020 10:16:00 -0700 (PDT)
Received: by mail-io1-xd2a.google.com with SMTP id v6so25391569iow.11 for <txauth@ietf.org>; Wed, 19 Aug 2020 10:16:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Tm1Rrlzeiu2hYmomE6wgD9RmeVVX8cGTCCL6dvoZagg=; b=iKYr0kfNlf0Wqnhz4LhkzafRIKqh9J1/NZKff69/2JcPZgdaGsJXPdXrY9By4ktzNt zHQ0UPTbcfcmv1ljFP53MgnR6dfpEs0G2dpLTBj7Vw75sTg+DkKhE9cLbhknAqQe2gAq psNrXLzA5Gwdj8Jk8S8NFq5vYeBZGIw6xhQ+ger/xbr6Wb3FxlPIm/TMEFus6LU+gbjX 7z0s6bbiwmFQtlVveRcSys0Tf67xFjvQ4tqmWFgznClGDTXymyD8f6e2LNlAuuUXeEPS NKqjOc6yewnzHOMacLSvIfvoX0ZwxFLPvH6PvZOLhHWQbZJRNj5/+zlhVc/L9qimV8hg U7Ig==
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=Tm1Rrlzeiu2hYmomE6wgD9RmeVVX8cGTCCL6dvoZagg=; b=VVptK7KVNoMBgjFZK6iqFZEXFklVbMSdtg5eJ273y/B+HZwVSLH6E507nKFuvzBEp+ HbexngaVgxzYZoGv0v7/4eGkQ22QXduhDt6ykqT2v9tI+v2UxJ3G5B2eVIMVy+AXZwBo o+SodFaFPY2OgwM9INIIGpRiz8e/A5QqjIzppz5qlWdbTNG7BlnblBFdZvEzjBsQWS9t je9VhSMGvYjpe0+/G7ka/i5f/V/ccjR5Eq3R4IzBnuky6WeXMnMR+mfVLNm3MpJrjR0K 6bfIbbXpl946a9tviuvdbg8CErY6UH5fQYk2bmxi2HtSobtjiB7EiKlweizHYyjdys8N 5D9g==
X-Gm-Message-State: AOAM5339BNJGFMF8G0nN7zmtsqSz6zhUWfs8Uh35CixQ3ZAMCSUklyZr sjpgjXIJbQ6ArMedfkcTND5mA0GoTODdl1j70sw=
X-Google-Smtp-Source: ABdhPJwQI1fpG7ALdlXtVmAUhmS9hDXxxanSfd+9JMcxvX6Z+LpeHT8J4kbVUxcJipwltE0b+BrN3qza0GkgX09KkXo=
X-Received: by 2002:a05:6602:2fcf:: with SMTP id v15mr20852674iow.78.1597857359897; Wed, 19 Aug 2020 10:15:59 -0700 (PDT)
MIME-Version: 1.0
References: <c5f40413-93b8-2e8c-0a3e-14a07cd27ad0@free.fr> <ECF217AE-1D67-4EAE-AE51-531F6EE6E222@mit.edu> <583aedda-ae41-1f3e-6623-671f2197614c@free.fr> <20200804185313.GT92412@kduck.mit.edu> <CAJot-L2hykst2vFxcwLn_auDMMaw7psVwsKFHKhQp9DA49ydWg@mail.gmail.com> <A4DC7B4E-FD34-454F-9396-B971CF5D57A4@mit.edu> <CAD9ie-tKEp+PV3F4p84Zbu7Kd1dQutawnzHybt8cmg-XniLYLQ@mail.gmail.com> <CAOW4vyN4ifCXmk1XAyGK4cEfY1jTp6+AWOL-uNjEpVcp0Ku0UQ@mail.gmail.com> <CAD9ie-ugjNevqKAPWFjKqGMMpCvX6yyC=M4bs9naenJf-k9uqg@mail.gmail.com> <CAOW4vyOrXstAvc3eKbsUh+gOPT-79nevR8nT5FyKTe+aAQ1pSw@mail.gmail.com> <CAD9ie-sZbxBKuLgC3Bu+yzJATOETdto=S83B6FOmC3gFJWz1jw@mail.gmail.com> <1b4a6a43-4c57-92b4-f442-2da58a2d0d70@free.fr> <CAD9ie-s5_tOZhE57tj1b+XaqDw+D43n_wStOPSmi7cioG2Z+gw@mail.gmail.com> <6678f154-31e7-2d01-2002-f3600f589c96@free.fr> <CD0AE256-7868-4B00-9235-300CB55506BC@mit.edu> <37dc1662-bcf5-8351-6ea7-5d8215e1b8d0@free.fr> <CAOW4vyNry6KW15jgkyEe=QAjgsPUYUgpzKOey1JADOFkmFQsNg@mail.gmail.com> <CAD9ie-uXEY_tneOuMRNjjicQkM9sMhjiT7+RqWvvXTEcnS3x+A@mail.gmail.com> <CAM8feuQN4HTsoshsd7NfK_aZtn=KVVG0Mpeqj8B+GVavxSmD0g@mail.gmail.com> <01AD8BB1-F40D-497B-948D-4C08A5155CCA@mit.edu>
In-Reply-To: <01AD8BB1-F40D-497B-948D-4C08A5155CCA@mit.edu>
From: Fabien Imbault <fabien.imbault@gmail.com>
Date: Wed, 19 Aug 2020 19:15:47 +0200
Message-ID: <CAM8feuQ64aDkc=SeW69k5XNZrdtZCj1uaE-tUq4CgOq2wPaiYg@mail.gmail.com>
To: Justin Richer <jricher@mit.edu>
Cc: Dick Hardt <dick.hardt@gmail.com>, Francis Pouatcha <fpo=40adorsys.de@dmarc.ietf.org>, Denis <denis.ietf@free.fr>, "txauth@ietf.org" <txauth@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000056a93c05ad3e28d7"
Archived-At: <https://mailarchive.ietf.org/arch/msg/txauth/XmCGA1M2DC-PRtXofEXf02AaQVo>
Subject: Re: [GNAP] [Txauth] Revisiting the photo sharing example (a driving use case for the creation of OAuth)
X-BeenThere: txauth@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: <txauth.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/txauth>, <mailto:txauth-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/txauth/>
List-Post: <mailto:txauth@ietf.org>
List-Help: <mailto:txauth-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/txauth>, <mailto:txauth-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 19 Aug 2020 17:16:04 -0000

Indeed.

Le mer. 19 août 2020 à 17:09, Justin Richer <jricher@mit.edu> a écrit :

> In my perspective, the focus should be on defining the protocol: what
> you’d call the transaction pattern. We can potentially use a API language
> to describe how an entity can perform a role within that protocol, but
> ultimately we should be defining the protocol.
>
>  — Justin
>
> On Aug 19, 2020, at 6:31 AM, Fabien Imbault <fabien.imbault@gmail.com>
> wrote:
>
> Just wondering if that might be a way to compose the generic
> transaction/continuation pattern (XYZ style, layer 1) from a lower-level
> GS-API (layer 0).
> Fabien
>
> On Thu, Aug 13, 2020 at 9:28 PM Dick Hardt <dick.hardt@gmail.com> wrote:
>
>> Hi Francis
>>
>> I have come to a similar conclusion. I'll be posting my thoughts in a
>> concrete proposal and am keen to hear how it fits into how your mental
>> model.
>>
>> /Dick
>> ᐧ
>>
>> On Thu, Aug 13, 2020 at 12:00 PM Francis Pouatcha <fpo=
>> 40adorsys.de@dmarc.ietf.org> wrote:
>>
>>> Lots of mails, so I will summarize my opinion in this single mail:
>>>
>>> We are dealing with different levels of abstraction here, this is why we
>>> are always falling back to wording battles.
>>>
>>> oAuth2/OIDC vs. GNAP
>>> AS vs. GS/DS/IS
>>> Entity vs. Roles
>>> User (human) vs. Requestor
>>> Client vs (Orchestrator/Requesting Party/Negotiator...)
>>> front-channel & back-channel
>>>
>>> To direct the discussion, we have to agree on the level of abstraction
>>> at which we want a certain discussion to take place.
>>>
>>> Abstraction Level-0: GNAP
>>>
>>> Level-0 deals with roles (participants) and messages
>>> (request/responses). Level-0 does not consider entities (users) or the
>>> nature of any other participants, neither Level-0 deals with the way a
>>> message is transported (synchronous/asynchronous) or the type of
>>> interaction used to materialize the message (front-channel, back-channel).
>>> The purpose of this abstraction layer is to provide a common understanding
>>> of the core elements of the protocol.
>>>
>>> Level-0 can still provide some basic definition of messages including
>>> information schema as long as we are not limiting the protocol with
>>> constraints from lower layers.
>>>
>>> Level-0 is ideal to address some fundamental privacy and confidentiality
>>> matters that will be materialized in lower layers.
>>>
>>> Abstraction Level-1: OAuth2 / OIDC / [SSI/DiD/VC]
>>> Instantiation of Level-0 for a constrained application space. This is
>>> why we will meet the world Client, User, RO, AS, .... here roles defined in
>>> Level-0 will be mapped to entities, interaction will be used to materialize
>>> messages defined in Level-0.
>>> The protocol mapping at this layer also takes into consideration that
>>> some of those participants are human or only pieces of software, running on
>>> the user device or on a server with consequences on the protocol design.
>>>
>>> Abstraction Level-2: Trust Frameworks like IAM / PSD2,FAPI / ....
>>>
>>> In Summary:
>>> Level-0: Roles, Messages
>>> Level-1: Entities, Interactions
>>> ...
>>>
>>> And if it happens we want to define GNAP at Level-1 (instead of 0), let
>>> declare it as such and limit the application space before we proceed with
>>> further discussions.
>>>
>>> Best regards.
>>> /Francis
>>>
>>>
>>>
>>>
>>> On Thu, Aug 13, 2020 at 1:30 PM Denis <denis.ietf@free.fr> wrote:
>>>
>>>>  Justin,
>>>>
>>>> Your response does not address my point. I am talking of two different
>>>> channels with the RS, i.e. not with the AS.
>>>>
>>>> Denis
>>>>
>>>> Denis, I want to focus on one point here:
>>>>
>>>> In OAuth 2.0, the user consent is performed by the AS using an
>>>> authorize endpoint where the user consent is solicited and captured.
>>>>
>>>> Since a user, with no prior experience, shall first connect to a RS to
>>>> perform an operation, the user consent shall be performed by the RS,
>>>> instead of the AS. This means that we should define a "consent"
>>>> endpoint at the RS.
>>>>
>>>>
>>>> One of my goals with XYZ’s design was to be able to separate the
>>>> interaction with the user from the web-based flows for the delegation
>>>> protocol, and that aspect is enshrined in the GNAP charter as well.
>>>>
>>>> It points to the reality that there are two different aspects of the
>>>> traditional AS that we might need to talk about separately now. One deals
>>>> with delegation, issuing tokens, returning data directly to the client (not
>>>> through a separate API, since that’s the RS), and other back-channel stuff.
>>>> The other aspect deals with interacting with the user and/or resource
>>>> owner.
>>>>
>>>> We already saw bits of this in OAuth 2: the AS is defined by the pair
>>>> of the token endpoint and authorization endpoint, each filling the
>>>> respective roles above. What if we formally separate these? Strawman names:
>>>>
>>>> Delegation Server (DS) - handles the back-channel stuff
>>>>
>>>> Interaction Server (IS) - handles the front-channel stuff
>>>>
>>>>
>>>>  — Justin
>>>>
>>>>
>>>> --
>>>> TXAuth mailing list
>>>> TXAuth@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/txauth
>>>>
>>>
>>>
>>> --
>>> Francis Pouatcha
>>> Co-Founder and Technical Lead
>>> adorsys GmbH & Co. KG
>>> https://adorsys-platform.de/solutions/
>>> --
>>> TXAuth mailing list
>>> TXAuth@ietf.org
>>> https://www.ietf.org/mailman/listinfo/txauth
>>>
>> --
>> TXAuth mailing list
>> TXAuth@ietf.org
>> https://www.ietf.org/mailman/listinfo/txauth
>>
>
>