[GNAP] User consent

Denis <denis.ietf@free.fr> Fri, 14 August 2020 10:12 UTC

Return-Path: <denis.ietf@free.fr>
X-Original-To: txauth@ietfa.amsl.com
Delivered-To: txauth@ietfa.amsl.com
Received: from localhost (localhost []) by ietfa.amsl.com (Postfix) with ESMTP id E24CA3A0B33 for <txauth@ietfa.amsl.com>; Fri, 14 Aug 2020 03:12:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.685
X-Spam-Status: No, score=-1.685 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, KHOP_HELO_FCRDNS=0.212, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=no autolearn_force=no
Received: from mail.ietf.org ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id ZYg84npHQZFa for <txauth@ietfa.amsl.com>; Fri, 14 Aug 2020 03:12:22 -0700 (PDT)
Received: from smtp.smtpout.orange.fr (smtp06.smtpout.orange.fr []) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4112C3A0B32 for <txauth@ietf.org>; Fri, 14 Aug 2020 03:12:21 -0700 (PDT)
Received: from [] ([]) by mwinf5d41 with ME id FNCK2300A2bcEcA03NCKsV; Fri, 14 Aug 2020 12:12:19 +0200
X-ME-Helo: []
X-ME-Auth: ZGVuaXMucGlua2FzQG9yYW5nZS5mcg==
X-ME-Date: Fri, 14 Aug 2020 12:12:19 +0200
To: Justin Richer <jricher@mit.edu>
Cc: Dick Hardt <dick.hardt@gmail.com>, "txauth@ietf.org" <txauth@ietf.org>
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> <B4BBB603-148A-47A8-B3E3-377CAEA1306F@mit.edu>
From: Denis <denis.ietf@free.fr>
Message-ID: <5fb64cec-9ef3-8652-6bc6-96800a8d3665@free.fr>
Date: Fri, 14 Aug 2020 12:12:19 +0200
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0
MIME-Version: 1.0
In-Reply-To: <B4BBB603-148A-47A8-B3E3-377CAEA1306F@mit.edu>
Content-Type: multipart/alternative; boundary="------------CAC5552340D394B682A0C3B3"
Content-Language: en-GB
Archived-At: <https://mailarchive.ietf.org/arch/msg/txauth/hDXBKt2LNEPdk-XNtPgOJnyFoQw>
Subject: [GNAP] User consent
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: Fri, 14 Aug 2020 10:12:24 -0000

This is a new thread built from "Revisiting the photo sharing example (a 
driving use case for the creation of OAuth)"


> So what I’m saying is that what you’re defining as part of the RS was 
> (in Oauth) defined as a function of the AS.
> As such, I contend that it needs to be its own separate functional 
> role, neither AS nor RS.

I don't see that as separate roles, but as two different kinds of 
interactions with the same entity.

> That way it could be fulfilled by an entity either closely tied to the 
> AS or closely tied to the RS, as appropriate.
> It would give us more flexibility to talk about the patterns.

Nevertheless, such a possibility should be explored in more depth.

In my response to Dick I wrote:

    A set of a choices should be presented by the RS to the Client in a
    standardized way. The choices made by the user
    should be locally recorded by the Client, hence the RS does not need
    to be informed of these choices. The RS will only know
    the end result of these choices when/if it gets back one or more
    access tokens.

    Human to software interactions should be part of the protocol.

    RS to Client: a set of choices
    Client to RS: Done (choices have been done by the user).

For a RS, before performing a given operation, the RS should specify to 
the User how many access tokens would be required, from which ASs
they could be obtained and which types of attributes these access tokens 
should contain.

For an AS, a key question would be whether some choices would be 
presented by the AS to the Client in a standardized way ? I don't know.
What would be such choices ?  I let Dick, yourself or someone else 
respond but I wonder that such choices could be presented by an AS
to a User (through the Client) in a standardized way.


>  — Justin
>> On Aug 13, 2020, at 1:29 PM, Denis <denis.ietf@free.fr 
>> <mailto: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