Re: [Txauth] Reviewing draft-hardt-xauth-protocol-11

Francis Pouatcha <fpo@adorsys.de> Mon, 20 July 2020 18:47 UTC

Return-Path: <fpo@adorsys.de>
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 468B23A0DD3 for <txauth@ietfa.amsl.com>; Mon, 20 Jul 2020 11:47:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=adorsys.de
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 EAEDciMzdDkV for <txauth@ietfa.amsl.com>; Mon, 20 Jul 2020 11:47:01 -0700 (PDT)
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com [IPv6:2a00:1450:4864:20::330]) (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 BF9363A0DD2 for <txauth@ietf.org>; Mon, 20 Jul 2020 11:47:00 -0700 (PDT)
Received: by mail-wm1-x330.google.com with SMTP id g10so581647wmc.1 for <txauth@ietf.org>; Mon, 20 Jul 2020 11:47:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adorsys.de; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=5jfFoyLhcDmXKeZP3fxdEJA3HJPW0xewBNLBF7b8lNY=; b=gBC1Kc+0hs5hA17NV/Yk6gZBNn6Lyx4DV5OaTaCwNHGOfhW2eZ5039SnqCbBLpfVkt gVy8UeaP7E2IylqbVAm8w/Mk49iZ/LJOcIX0v/v7/cpo4Sgb7uelgp+/9tQNgcE/5K0k Ejtdo1WdEusT1Lcajz6C4G9v9I7TLZFDXNrDg=
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=5jfFoyLhcDmXKeZP3fxdEJA3HJPW0xewBNLBF7b8lNY=; b=aeg7561fmQrL8QIBSpQ2FjiLEWWM/dF6FBic+/XIX08uS/pgrfVSLEWzQe4wwP5cVT lINDrIWzCPKr93XJERdflWRhrfhY1JPR44sp2424bvbdPWks5KlWVqgTuRdUOZ3KXviO Rvpg7oHu3y92w4k7IcQCKm5q6XTo84+At8MV6cYFQ8T2Uc/BEmMBefg8hkQsjzyd9WzU 0DtsfbP0dYj/JoDDWJlnByOQXpj+5TucMELqRnaPRJONYo1tEjRDrO+16IR1pyC/9RKK cpAzpeaY4k2LRH5nIXOKs38mwg39Ywu1sESR51/P5cThhocb97hy4PLEsgtlLfkg0TOy sk/Q==
X-Gm-Message-State: AOAM532TRNceXKKuUyXpHDR63U/xk/TxKrZnFhGPAlXZp5x6IlYG3Yza uCX/oloOfQEJGBrb0ytUlZCEigcqHHUqu4eS+7oa9w==
X-Google-Smtp-Source: ABdhPJzXqTHw1+0Jq6AG/wbTyMAlt/JH0fp7sIgD/cPtgJAxSNKP79LFZovVlef0I3p98AOJL7osESimm91Lo/58ueY=
X-Received: by 2002:a05:600c:294a:: with SMTP id n10mr597573wmd.38.1595270819126; Mon, 20 Jul 2020 11:46:59 -0700 (PDT)
MIME-Version: 1.0
References: <CAOW4vyPqjcWz7njW9cVb6wejY+KaASnskefSpwMqCPs+3WPmfg@mail.gmail.com> <CAOW4vyOQYvHBBPjMSNx9=S66_JY4RVcVi2DiqL8OjXUyvzxg=w@mail.gmail.com> <CAD9ie-tou5mTnWVguNygj-D6xUdTRjqvxi-+jhC6NbDFY8ZVJQ@mail.gmail.com> <CAOW4vyM0LycEf8q1T4jF=1g8aFyeLw1b4z9emNKWOG=+4iGgzw@mail.gmail.com> <CAM8feuSWeianPu=BD0WVTv5oB+U4ZkjhtKjnAG9RFk15VqJqWA@mail.gmail.com> <CAOW4vyNTXso=tusCrzDVgM63xH4hDsx6epO6tAhh1YekbWBA0A@mail.gmail.com> <f00c75a5-f930-81a6-a50e-2eeffedac691@free.fr> <CAOW4vyOHO1We4UpCPJBKYvj22rsFd1EN6fAXw8w6YOYTUDhF=g@mail.gmail.com> <aa1381a2-5b11-f7c7-a547-cddb36732c0b@free.fr> <CAD9ie-t7ZFrODeXy=Xzvsv-6gvUY=KjW0ETf8vJYkW2p=G4boQ@mail.gmail.com> <CAOW4vyN26rnOFb+vsaxgaMzeBOsyeSUBougvjHuhQkHyYhnn2w@mail.gmail.com> <b8a83294-771f-c1d7-0956-d0a50accbbb3@free.fr> <CAD9ie-soUmghr-qxWFRhHkX3rx3qaf3wBqxkwRZ=ZfQaSoDwbw@mail.gmail.com> <df110f7d-7928-4dd2-9c09-4b169860623a@free.fr> <CAOW4vyMx21H4pBdhAkwoUAJzntFNzjT8hn=Fq=XZKVYLLdgiAA@mail.gmail.com> <8b08ff35-f1d5-ee65-c89a-c1f3191ae5b6@free.fr>
In-Reply-To: <8b08ff35-f1d5-ee65-c89a-c1f3191ae5b6@free.fr>
From: Francis Pouatcha <fpo@adorsys.de>
Date: Mon, 20 Jul 2020 14:46:48 -0400
Message-ID: <CAOW4vyMjePG4H+vHUY5HNteLutNKYHf=dSse3Xay=xuPDV_6sg@mail.gmail.com>
To: Denis <denis.ietf@free.fr>
Cc: Dick Hardt <dick.hardt@gmail.com>, txauth@ietf.org
Content-Type: multipart/alternative; boundary="0000000000007eb6c705aae3ee98"
Archived-At: <https://mailarchive.ietf.org/arch/msg/txauth/bHKwbJYBXqnzlio7CdCzWIZX3LI>
Subject: Re: [Txauth] Reviewing draft-hardt-xauth-protocol-11
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: Mon, 20 Jul 2020 18:47:03 -0000

Hello Denis,


>>> The good news first: we are making some progress. We are now close to an
>>> agreement with steps (1) up to (3),
>>> ... except that the place where the user consent is captured is not
>>> mentioned/indicated.
>>>
>>
>> This major question which is currently left unanswered is where, when and
>> how the user consent is captured.
>>
> There is nothing like a User consent. It is essential for further
discussions to use the correct keywords.

Clarification 1: User vs. RO
1. User interacts with Client
2. RO interacts with GS

Clarification 2: Consent vs. AuthZ (Authorization)
1. Consent is given by RO to GS and used to produce an Authz.
2. AuthZ is given by GS to Client and used by Client to access Resource at
RS interface on behalf of User.

Modified Question: where, when and how the "RO" Consent is captured?

Answer:
how: Consent is given by the RO to the GS.
where: Depend of interaction mode.
when: before step (5).

>
>> Another important point to consider and to explain is related to the
>> assurances that the user can obtain about
>> the respect of his choices. This point is currently left unanswered in
>> draft-hardt-xauth-protocol-13.
>>
> [Denis] These two major points are still left unanswered at this time.
>
I do not understand the question.

>
>>
>>> If a RO needs to be involved and since a RO is directly associated with
>>> a RS, why can't it be directly queried
>>> by the appropriate RS after step (2) or later on ?
>>>
>>
>> Good question. Perhaps you can expand on a use case where that would be
>> useful?
>>
>> Before I expand, would you be able to explain first under which
>> circumstances a RO needs to be queried by a GS ?
>>
> In all circumstances. Can you name a situation where this is not the case?
>
> [Denis] This is quite easy. The final decision is always taken by the RS.
> If a Client presents access tokens issued by ASs trusted by the RS
> that contain appropriate attributes to perform the requested operation,
> then the operation is allowed.
>
We should be using GS instead of AS to avoid confusion.

> If really a human RO needs to be involved for whatever reason, it is
> possible to get its involvement when the Client connects to the RS.
> However such involvement does not need to be formalized by a protocol. It
> can be application specific.
>
Client has no Relationship with the RO.

There is no reference to a human here. User, Client, RS, GS, RO are all
roles. Nothing states the type of participants they are.

> How can the GS identify which RO to query ?
>>
> There is supposed to be a preexisting relationship between GS and RO, If
> not RO will have to register with GS in the first interaction (onboarding).
>
> How can the GS identify how to connect with RO?
> GS must evaluate the RS provided info in step (3)
> AuthZRequest(AuthZChallenge) to decide how to contact the RO. This is where
> selection of interaction mode takes place.
>
> [Denis] This means that a GS must have prior relationships with the RSs
> and ROs.
>
No. Evaluating an AuthZChallenge to discover the RO:
- does not assume GS knows RS.
- does not presume RS knows GS.

But:
- GS will generally have to know RO, as RO delegates the work to produce
authorizations on his behalf to GS.
- RS will generally have to know RO, as RO custodies his Resources with RS
and trusts RS to only release it to authorized parties.

How do you establish a contract without contracting parties knowing each
other?

> While this should not be prevented for backward compatibility with OAuth
> 2.0,
> this should not be the single case. Prior relationships between ROs and
> GSs is a door half-opened for Big Brother. If in addition the GS is able to
> know which operation
> is attempted by the client on which RSs, then it is a door wide-opened for
> Big Brother.
>
I do not understand this. GS is working for RO.

>
>>
>>> Which information is supposed to be presented to the RO ?
>>> Which information is supposed to be returned by the RO ?
>>>
>>
>> Just like how the user authenticates to an AS, how the AS and RO
>> communicate is out of scope.
>>
>> At the moment, the usefulness of a dialogue between a GS and a RO has not
>> been explained, nor demonstrated.
>> The question is about the functionality of that dialogue in terms of
>> input and output information (and not about
>> the design of a protocol or of a user interface). Anyway, AFAIU a
>> dialogue between a GS and a RO is optional.
>>
>> For many use cases, the User is the RO, and the interaction is through a
>> user interface, not a machine protocol.
>>
>> Wait a second. You wrote "the User is the RO". The User is attempting to
>> make an access to a RS by using a Client.
>> *That* User is not the RO of the RS.
>>
>> The User interacts with the Client.
> The RO interacts with the GS.
>
> In some use cases (where we use redirect interaction) we assume the person
> controlling the "User-Agent" is also the person
> controlling the "RO-Agent" and they reside on the same device. These are
> cases where we say User equals RO.
>
> [Denis] Sorry, I have difficulties to understand such a case. A person
> giving his consent to himself ?
>
We do not have people here, but roles.
RO is consenting
  - that the Client can access his Resource
  - on behalf of the User [optional].

So RO and User are different roles, even if they are sometimes assumed by
the same human/device/machine/...

>
>
-- 
Francis Pouatcha
Co-Founder and Technical Lead
adorsys GmbH & Co. KG
https://adorsys-platform.de/solutions/