Re: [Txauth] Additional implementation

Dick Hardt <dick.hardt@gmail.com> Tue, 16 June 2020 17:23 UTC

Return-Path: <dick.hardt@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 171193A0794 for <txauth@ietfa.amsl.com>; Tue, 16 Jun 2020 10:23:19 -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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-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 jKUz7Mefkx35 for <txauth@ietfa.amsl.com>; Tue, 16 Jun 2020 10:23:17 -0700 (PDT)
Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com [IPv6:2a00:1450:4864:20::22c]) (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 BF9AB3A0793 for <txauth@ietf.org>; Tue, 16 Jun 2020 10:23:16 -0700 (PDT)
Received: by mail-lj1-x22c.google.com with SMTP id s1so24557790ljo.0 for <txauth@ietf.org>; Tue, 16 Jun 2020 10:23:16 -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=mxyuo1M7ihSM1Z5MnPRUwWYDJEP8fHtTge04CDnNuCE=; b=JdMmpftOMdzAa/JtbNZdCHtWvL+oqbgGHk5gv7wba7nWBkkcmkIaqW0N8YRirT5iaJ yysHLMEL8ACPGE0qtVHLUiUkzCKoDSCfFd8A95Fpo9VEA8QpvG6EGomch00RlWPlzLH8 uM7QTsnEMjLPpANlY924Cg3Bk9tkkUn3aJj4AUIVqzCQmb1cJaiAauBqgyJ7gnOktS6W ecDiGIkZkqBERFgYV23njgSuAWVgWG6zdzQxOr5tVpRpyPkk0pIl0Zmc1pP7F1C/P+M3 89WrdCdgoJS1ML1yhPKWGF2pSH9O1RWH1IpoaOPjSaTQmWgrKgifxVQ8UCpEHmTz7JZd MHMg==
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=mxyuo1M7ihSM1Z5MnPRUwWYDJEP8fHtTge04CDnNuCE=; b=srNGrAqZhBBnMMMc0X6do+2M3u+ooE8mmH3JrepTtDTwEz1z+5xyrx/cHXax6a1j6B x4/ppUMr/nb+lOW//66nZ//qMKw4XdGanihqbLKuxLkpBYm9zfPmh32vjGJY92UIOHiw NWAHBcquqXhZazFp/bo2y9QPYP27h6GMxPxL8FkzUggs6M/gO/2ZSmED6BMGZex7UcZA cxqOSi0xgX2Ow1OBszml16Ep5AAiJsp/emJyIilK7OxMYSBPLQvePHwj0Tr1u3cOOCEM fs8bphUmg9cwbcRNivPyBWWkczVsq3TvulUrAf7rve1+ESSrEBpp0MZH+jX4zqEcV6gF bsZQ==
X-Gm-Message-State: AOAM533uPhxXnaWAkQIahhecHdDfag1CcchsE3YWtrURGEnfNnnm2gRT reNkx6sYupJqQd5wdWHGQLnfAHuIH8dFLZXgHlI=
X-Google-Smtp-Source: ABdhPJzjYeCiHUVlOWOwrvcphIAj5Hlzk02dJNzWlNKBRvMDvoU43XWaIAMBtqtJOv6Ydlvwe0DzJMZjTfyNV5K7AwE=
X-Received: by 2002:a2e:8e78:: with SMTP id t24mr1902700ljk.314.1592328194779; Tue, 16 Jun 2020 10:23:14 -0700 (PDT)
MIME-Version: 1.0
References: <CAM8feuRA1VfPs6bdrGgssBeBNe4wPySHjKcjiP6HexKMUff4DQ@mail.gmail.com>
In-Reply-To: <CAM8feuRA1VfPs6bdrGgssBeBNe4wPySHjKcjiP6HexKMUff4DQ@mail.gmail.com>
From: Dick Hardt <dick.hardt@gmail.com>
Date: Tue, 16 Jun 2020 10:22:49 -0700
Message-ID: <CAD9ie-t7Lzt8S09YKPqwhc__7fKU6XpsyL1m8CGYUqfQwj8+ww@mail.gmail.com>
To: Fabien Imbault <fabien.imbault@gmail.com>
Cc: txauth@ietf.org
Content-Type: multipart/alternative; boundary="0000000000006a70d605a836ccbb"
Archived-At: <https://mailarchive.ietf.org/arch/msg/txauth/kK4-76YKdYtnlsmVvixm9y0R-oc>
Subject: Re: [Txauth] Additional implementation
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: Tue, 16 Jun 2020 17:23:19 -0000

Hi Fabien

Thanks for diving in and doing an implementation, and providing your
observations! ... comments inline ...


On Wed, Jun 10, 2020 at 1:56 AM Fabien Imbault <fabien.imbault@gmail.com>
wrote:

> Hi,
>
> Just to let you know that we started our own implementation of XYZ / XAuth
> (and future GNAP).
> It's just a first attempt of getting the concepts put into use quickly. We
> wanted to have a clear separation between the client and the AS, and
> demonstrate the retrieval of a protected resource to make it simpler for
> people to understand (even if there's nothing new there).
>
> Here's a quick MVP of xyz. Currently it's just implementing a basic flow,
> redirect with callback interaction.
> https://github.com/acertio/mvp_xyz
> (also working on the same for XAuth, because I sometimes get a bit lost in
> discussions between Justin and Dick, really need to get down to the drafts
> and write concrete examples to get a sense of what it means).
> This is very basic/naive but really gave us some better ideas on what to
> test/implement next, and contribute to the discussion.
>

I'm keen to see an XAuth implementation. Please let me know if there is
anything underspecified that is holding you back.


>
> Note also that our target implementation will be in rust, and we are
> currently testing the approach on how to best implement it using a system
> oriented language (the fact that nodejs is very web oriented is abstracting
> some important aspects in our view).
> Our work is available under an MPLv2 licence, and we'll be happy to keep
> working on a separate and open reference implementation.
>
> As a last comment, I'd like to say that both XYZ and XAuth are great work,
> but it seems we're having 2 competing views, difficult to reconcile. I
> believe we can do better.
>
> Following our experiments, I would say:
> a) XYZ really makes a new experience possible, and the flow really fixes
> common issues in OAuth2. I believe this design idea is of great value, but
> the downside is that the written spec doesn't explicitly cover every aspect
> yet, so sometimes you have to guess or dig into Justin's implementation.
> But making sure we clarify that is also what the working group is there
> for, isn't it?
> Justin has even put his money where his mouth is by providing
> implementations and integrating with legacy software (an old implementation
> by mitre), so it's a very good sign that we won't end up with unnecessary
> breaking changes.
>

In which areas did you need to dig into Justin's implementation?

"XYZ really makes a new experience possible" -- do you think the new
experience was not possible in XAuth?


>
> b) XAuth's spec is written in a more consistent way, which reflects the
> fact that is closer to the previous art. There is no reference
> implementation (as far as I'm aware) and it comes with the potential
> downside of having a more opinionated/prescriptive stance and being much
> closer to legacy (for good or worse).
>

In contrast to OAuth 2, which was a framework, our charter is to deliver a
protocol. IMHO being opinionated and prescriptive simplifies
interoperability or a protocol.


>
> However, I don't think the game of spotting the differences is that
> meaningful, and the charter should provide sufficient common ground to
> proceed forward despite or thanks to those differences. Otherwise we'll end
> up in surprisingly narrow considerations, such as I prefer X because it's
> reusing existing schemas. This is something we need to handle when time
> comes, but that's really an implementation detail and obviously nobody
> thinks we shouldn't reuse things that do work.
>

The intention is not a game of spot the difference, but to discuss
different proposals for providing functionality.

wrt. the schema discussion, one aspect is reusing an existing schema, which
is not an implementation detail, but must be specified. The more
significant point I was trying to make was that we should clearly define
how new schemas are added, and that the claims object should contain only
schema objects, which then contain how to request and respond to identity
claims.



>
> A better way would be XYZ concepts challenged by XAuth's rigour (surely
> Dick and others would make sure of that) and several iterative
> implementations to make sure it does work as intended, as we propose to do.
>

I am challenging the XYZ concepts with XAuth! Would be great for you to
provide feedback on the concepts I have challenged. Perhaps after you have
implemented XAuth you can provide an implementation perspective?

/Dick