Re: [GNAP] Review of draft-ietf-gnap-core-protocol-00

Fabien Imbault <fabien.imbault@gmail.com> Wed, 18 November 2020 11:35 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 B9E433A17CE for <txauth@ietfa.amsl.com>; Wed, 18 Nov 2020 03:35:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.996
X-Spam-Level:
X-Spam-Status: No, score=-1.996 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, HTTPS_HTTP_MISMATCH=0.1, 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 (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 cLQ-ldIX4zhh for <txauth@ietfa.amsl.com>; Wed, 18 Nov 2020 03:35:20 -0800 (PST)
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 217F73A10F1 for <txauth@ietf.org>; Wed, 18 Nov 2020 03:35:20 -0800 (PST)
Received: by mail-io1-xd2a.google.com with SMTP id u21so1596848iol.12 for <txauth@ietf.org>; Wed, 18 Nov 2020 03:35:20 -0800 (PST)
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=ZiVpODv67ut4fhvs3AAM6ObbBLfx/7r46AvVpIUCRM0=; b=uuwOGO6+QYOxfCrd3/u6dPJwl80XWHBcMBDDBg/6PqSx06e5qE3C31hHvWPFYPZwJp OSepszw7qzuz3wuj4l4PEzbpfDtCFbjoGt3gSkJPzqEx2lwaD5kPX4oR22hN1ZRjnKUj DYV/KBJH7yFtssUEVDiD5GJ1OM/8fIXDhZErTyF1S/qUju5loLDxwUuDOrWnNi7lqrpE lMbKyj49P/2kcGxlPsGRtkOJ52MrsMSfE+/EFueiU88AB1w+rWMz6ccT11ZZsLm52+XW LXmy+3kuV5ShlGvVXOOUfzHp3yU6Z0nuimleEB1TaREZyD+xG1lWiMgIAMmI/KeasqzD 6J2Q==
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=ZiVpODv67ut4fhvs3AAM6ObbBLfx/7r46AvVpIUCRM0=; b=N9az0GMBUlvwVNwamqm0AnEvUYJ3nXT878EBg7WyYHYF8O+f5wTqQHeO8JeRF3yDB4 5w6UvhGzT4QdZAu5zGrxonIvi8C4wa84DHCW5vgyX919z5uxlz1ziX50r6hHsRmvqSZK uThxL1qJ5DkovkvG0HL7qf52ARJ9yBdJdfGMLDdF4Hz7kgDusjmle1KaS5psV28MvNQw rhByUFgBSZ00dURrqU33HP/Rn3pTOT6Qct0tq2oGaAv8dNMYmpEF0esgHxWaz91wkeYq nE1vzq5zS8f8sof/e7eRDAvZLr/vhNofwBJOJKZHYYZID8Rxc3/yG3IQ4Uw/BXvpotWH LEtw==
X-Gm-Message-State: AOAM531M6UcmwKLvZ+PF2mRMrtlDhFvPq4kEnU0gQcv29Wsjr4w9DwCx 08B3jm13coCY8gK2H3sW2p2koE0dKXU2Ct/HOMU=
X-Google-Smtp-Source: ABdhPJyxybDYGW3vg1XvqDSGhlUml78e24INE3xoaTOSJg2eyo1KNu3No4aEMDdq5X6EWaboOrOh/JcsRYNZ2D8qVkM=
X-Received: by 2002:a05:6638:d46:: with SMTP id d6mr7582270jak.124.1605699319307; Wed, 18 Nov 2020 03:35:19 -0800 (PST)
MIME-Version: 1.0
References: <160433257633.23038.15047041472414640530@ietfa.amsl.com> <AB11DC08-C6ED-4045-A8F5-872AD263035D@mit.edu> <FR2P281MB01063C2EA739E892B549611D8D110@FR2P281MB0106.DEUP281.PROD.OUTLOOK.COM> <CAM8feuQcCdQFGUKy-ou7H3Ta38yyN1LR+0XJd9WophRMRdPDEA@mail.gmail.com> <FR2P281MB0106C83420ED3F8DF2723BFD8DE30@FR2P281MB0106.DEUP281.PROD.OUTLOOK.COM> <5b8ac79b-0c0e-18e9-9f80-b5d79e9ae59b@free.fr> <CAM8feuQ346w9EL=-qpJRmMOO_YUp_14gShxcro+pVxnfXTvkzw@mail.gmail.com> <5E214281-2974-4632-AB74-4E068B7EE66B@mit.edu> <CAK2Cwb5ACMxjiph796Lq1U3FZ6Tm_2TCmsKTJZn8Fgc0rzEgZQ@mail.gmail.com> <CAD9ie-vDS9-Cc=cVRc_SDg7z6KxMqySdcfv3ZPSjAzHorZP7UQ@mail.gmail.com> <CAK2Cwb66asqy1MCtW7KNHyW5=H23fWATBds2aKC3Xi88V34=Rw@mail.gmail.com> <CAD9ie-sGRFQMj81g4oWAS=CgHOe5ReDrAXeVzqvW9UL0W0P-Qw@mail.gmail.com> <FR2P281MB0106FEBFFB997265C8A9EF878DE10@FR2P281MB0106.DEUP281.PROD.OUTLOOK.COM>
In-Reply-To: <FR2P281MB0106FEBFFB997265C8A9EF878DE10@FR2P281MB0106.DEUP281.PROD.OUTLOOK.COM>
From: Fabien Imbault <fabien.imbault@gmail.com>
Date: Wed, 18 Nov 2020 12:35:08 +0100
Message-ID: <CAM8feuQiBij5Be2p3he0HwWfC+WaDRVQ6HqEKoq+FfqYJVGNXA@mail.gmail.com>
To: Francis Pouatcha <fpo@adorsys.de>
Cc: "txauth@ietf.org" <txauth@ietf.org>, Dick Hardt <dick.hardt@gmail.com>, Tom Jones <thomasclinganjones@gmail.com>, Denis <denis.ietf@free.fr>, Justin Richer <jricher@mit.edu>
Content-Type: multipart/alternative; boundary="0000000000008b23db05b4600104"
Archived-At: <https://mailarchive.ietf.org/arch/msg/txauth/G5s3Ks4pjJamn4XqadWcLnbnbAo>
Subject: Re: [GNAP] Review of draft-ietf-gnap-core-protocol-00
X-BeenThere: txauth@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: GNAP <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, 18 Nov 2020 11:35:23 -0000

Would make sense, but not so easy as we rely heavily on HTTP. Hence the
discussion about deep links and so on.

An alternative might be provided by wasm/wasi (running a local sandbox on
your phone, for your own AS), but it's really early stage. This also poses
another question that Denis has put forward, i.e. how do we handle the
multiple AS scenario (likely to occur then).

Fabien

On Wed, Nov 18, 2020 at 12:16 PM Francis Pouatcha <fpo@adorsys.de> wrote:

> We are drifting away from the original problem space.
>
>    - My original mention was about the "POST" request, that subsumes that
>    the "AS" is a "Server". Designing a new protocol, we cannot afford this
>    limitation.
>    - I just mentioned SIOP to show a known and closed example? Let us not
>    focus on the device local discovery scheme (like openid:) for now.
>    - As capability of holding private keys on user device evolves,
>    server-based issuing of token will be fading out giving way to device local
>    generation of token.
>
> While designing GNAP, let us assume the AS-Role can be exercised on a user
> device and design the protocol to honor that.
>
> Best regards,
> /Francis
> ------------------------------
> *From:* TXAuth <txauth-bounces@ietf.org> on behalf of Dick Hardt <
> dick.hardt@gmail.com>
> *Sent:* Tuesday, November 17, 2020 1:28 PM
> *To:* Tom Jones <thomasclinganjones@gmail.com>
> *Cc:* Fabien Imbault <fabien.imbault@gmail.com>; Denis <denis.ietf@free.fr>;
> GNAP Mailing List <txauth@ietf.org>; Justin Richer <jricher@mit.edu>
> *Subject:* Re: [GNAP] Review of draft-ietf-gnap-core-protocol-00
>
> Got it.
>
> So web apps invoke a openid: deep link and hope there is an app to handle
> the openid: scheme? ... and that it is the user's wallet rather than some
> malware that has registered openid: on the mobile device?
>
> A native app can attempt to open a deep link associated with an app, and
> will fail if the app is not there. If the app is there, it will be opened,
> so this can't be used to silently test if an app is present, but it does
> allow a native app to provide an alternative experience if an app is not
> present. I don't think this works with custom schemes ... and I don't know
> how it could work from a web app on the phone with the current Safari APIs.
>
> Apple warns against using custom schemes [1] ... but perhaps they can be
> convinced to make openid: a managed scheme similar to mailto:, tel:,
> sms:, facetime: ?
>
> [1]
> https://developer.apple.com/documentation/xcode/allowing_apps_and_websites_to_link_to_your_content/defining_a_custom_url_scheme_for_your_app
>
>
> ᐧ
>
> On Tue, Nov 17, 2020 at 10:06 AM Tom Jones <thomasclinganjones@gmail.com>
> wrote:
>
> You are - that is not standard which is opeind://
> This is the one step that still needs to be optimized for SIOP to have
> good UX.
> Peace ..tom
>
>
> On Tue, Nov 17, 2020 at 9:59 AM Dick Hardt <dick.hardt@gmail.com> wrote:
>
> Hi Tom
>
> I watched your video (I watched at 2X speed)
>
> Looks like the employment website app that is using localhost:8765 to
> communicate with the wallet. Am I correct?
>
> /Dick
> ᐧ
>
> On Tue, Nov 17, 2020 at 9:46 AM Tom Jones <thomasclinganjones@gmail.com>
> wrote:
>
> Well, here's a demo. Note that in this case the AS is not online all of
> the time, so it is really implicit flow and the OIDC id-token comes from
> the siop device directly.
> (whether this is front-channel or back channel is no longer an interesting
> question.)
> Now if an always-on AS is required, that is possible, but probably beyond
> the scope of this effort and would require something like an
> agent-in-the-sky (with diamonds).
> here is the link to the 9 min video   https://youtu.be/Tq4hw7X5SW0
> <https://urldefense.us/v2/url?u=https-3A__youtu.be_Tq4hw7X5SW0&d=DwMFaQ&c=2plI3hXH8ww3j2g8pV19QHIf4SmK_I-Eol_p9P0CttE&r=D5lnfoa2MVZWELqVbbz71ooelbP7rVGCjGDSBNvUpYQ&m=ixsudGSr_dhG-SLiatb4Sz9FWslmywnYyZAOLgZxhl8&s=jdLLy0G1JTQCAOBZ6PeUgI0kiCtVJXrru0VToYWlNZ8&e=>
> Peace ..tom
>
>
> On Tue, Nov 17, 2020 at 9:20 AM Justin Richer <jricher@mit.edu> wrote:
>
> Ultimately, in most situations like these in the real world, the hurdle
> isn’t technical compatibility so much as it is trust compatibility. The RP
> (client) needs to have some incentive to trust the assertions and identity
> information that’s coming from the AS. The same is true for an RS trusting
> tokens from the AS. The hard question is less “how” to do that (which SSI
> answers), but more “why” to do that (which SSI doesn’t answer very well,
> because it’s a hard question).
>
> Still: it’s definitely a question about how to support this “AS on device”
> element. We’ve got the start of it more than OAuth2/OIDC have by allowing
> the bootstrap of the process from a starting call: the interaction and
> continuation URIs handed back by the AS don’t need to be the same URIs that
> the client starts with, so just like SIOP the process can start in HTTP and
> potentially move to other communication channels. A major difference is
> that we aren’t dependent on the assumption that the user will always be in
> a browser at some stage, and so the whole raft of front-channel messages
> that SIOP relies on doesn’t fly. That said, we’ve got an opportunity to
> more explicitly open up alternative communication channels here, and that’s
> something I’d like to see engineered, even if it’s an extension. I’d love
> to see a concrete proposal as to how that would work over specific
> protocols, starting with what we’ve got today.
>
>  — Justin
>
> On Nov 17, 2020, at 12:03 PM, Fabien Imbault <fabien.imbault@gmail.com>
> wrote:
>
> Hi Denis, hi Francis,
>
> At some point integration with SSI (on the authentication side) will
> probably occur, including amongst other possibilities SIOP (since they work
> with OpenID a part of the work will probably be made easier).
>
> That being said, Denis is right. It's not an AS. Technically it's entirely
> possible to rely on a decentralized wallet (for instance on your phone) and
> a centralized AS. I know of a few studies on how to decentralize the AS
> itself (for instance
> https://tools.ietf.org/html/draft-hardjono-oauth-decentralized-02).
> Maybe it exists, but I'm still looking for real scenarios (or even
> architectures) where an AS is deployed directly on a phone, and under the
> sole authority of the RO, while being compatible with the rest of the
> world.
>
> Cheers,
> Fabien
>
> On Tue, Nov 17, 2020 at 5:45 PM Denis <denis.ietf@free.fr> wrote:
>
> Hello  Francis,
>
> See two comments in line.
>
>
> B) Current Document
>
> Roles description shall not hold any assumption on the physical structure
> of the party fulfilling the roles.
> [FI] not sure what you mean
>
>  [FP] for example, we assume the AS is a server! In most SSI based use
> cases, the AS will be running on the user device. See SIOP (
> https://identity.foundation/did-siop/).
>
> I browsed through the two drafts, i.e. :
>
>    - Decentralized Identifiers (DIDs) v1.0 Core architecture, data model,
>    and representations W3C Working Draft 08 November 2020
>    - Self-Issued OpenID Connect Provider DID Profile v0.1. DIF Working
>    Group Draft
>
> At no place within these two documents, it is possible to imagine that
> "the AS will be running on the user device".
>
> From section 3 of the DIF Working Group Draft:
>
>       "Unlike the OIDC Authorization Code Flow as per [OIDC.Core], the
> SIOP will not return an access token to the RP".
>
> An Identity Wallet is not an AS.
>
>
> Roles:
> -> grant endpoint of the AS: Why is this a post request? This eliminates
> the chance of having user device hosted AS (no server).
> [FI] what would you propose instead?
> Would also be interested to understand better the deployment model when
> there is no server. That's something that was discussed several times but
> I'm still missing the underlying architecture and use case.
>
>  [FP] See above (SIOP). There will be a lot of identity wallets operated
> on end user device.
>
> See the above comment. Please, do not confuse an Identity Wallet with an
> Authentication Server (AS).
>
> Denis
>
>
> -> Resource Owner (RO) : Authorizes the request? Does it authorize the
> request or the access to a resource?
> [FI] yes, we should make the wording clearer
>
> Missing Section Interactions:
> --> This section shall introduce the notion of interaction before we start
> listing interaction types.
> [FI] yes
>
> Interaction Types:
> --> I prefer a classification with Redirect, Decoupled and Embedded is. In
> the draft, we have one redirect and 2 decouple interactions and nothing
> else.
> [FI] this should be handled as a specific discussion item. As a reminder,
> how would you define embedded?
>
> In practice there's at least these modes:
> - redirect and redirect back
> - redirect to different browser or device
> - user code
> - CIBA
>
> [FP] This classification is limited.
>
>    - Redirect: same device, same or different user agents (browser,
>    mobile app, desktop app, ...)
>    - Decoupled: different devices
>    - Embedded : RC carries RO authorization to AS
>
>
>
> Resource Access Request vs. Resource Request
> --> Both are mixed up. No clarification of the context of each section.
> [FI] could you clarify what you'd expect.  Btw on this topic, there's a
> more general discussion on whether we should make a distinction or not.
>
> ​[FP]: Here:
>
>    - Resource Access Request: Requesting Access to a resource. Response
>    is an access token (or any type of grant)
>    - Resource Request: Request the resource. Response is the resource (or
>    a corresponding execution)
>
>
> Token Content Negotiation
> --> Not expressed as such. This is central to GNAP and not represented
> enough  in the document.
> [FI] right. This should be a specific discussion item.
>
> Requesting "User" Information
> we identify two types of users: RQ and RO. It will be better not to refer
> to a user in this draft, but either to a RQ or an RO.
> [FI] yes that would avoid potential misunderstandings. Although in the
> end, people will translate RQ into user or end-user most of the time. Cf in
> definition, currently we have Requesting Party (RQ, aka "user")
>
>
> Interaction Again
> -> For each interaction type, we will have to describe the protocol flow
> and the nature and behavior of involved Roles (Parties), Elements, Requests.
> [FI] yes
>
>
> [FP] Will these and into tickets?
>
> Best regards.
> /Francis
>
>
>
> --
> 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
>
>
> --
> 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
>
>