Re: Adding user@ to HTTP[S] URIs

Rick van Rein <rick@openfortress.nl> Sat, 25 January 2020 13:51 UTC

Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=lists.ie@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BE59412010C for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sat, 25 Jan 2020 05:51:53 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.751
X-Spam-Level:
X-Spam-Status: No, score=-2.751 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.249, MAILING_LIST_MULTI=-1, 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=openfortress.nl
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 dPxx6X0mzCdU for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sat, 25 Jan 2020 05:51:51 -0800 (PST)
Received: from frink.w3.org (frink.w3.org [IPv6:2603:400a:ffff:804:801e:34:0:38]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 643F8120013 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Sat, 25 Jan 2020 05:51:51 -0800 (PST)
Received: from lists by frink.w3.org with local (Exim 4.89) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1ivLoA-0005hN-Bv for ietf-http-wg-dist@listhub.w3.org; Sat, 25 Jan 2020 13:49:06 +0000
Resent-Date: Sat, 25 Jan 2020 13:49:06 +0000
Resent-Message-Id: <E1ivLoA-0005hN-Bv@frink.w3.org>
Received: from titan.w3.org ([2603:400a:ffff:804:801e:34:0:4c]) by frink.w3.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from <rick@openfortress.nl>) id 1ivLo8-0005gb-Rh for ietf-http-wg@listhub.w3.org; Sat, 25 Jan 2020 13:49:04 +0000
Received: from lb2-smtp-cloud9.xs4all.net ([194.109.24.26]) by titan.w3.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <rick@openfortress.nl>) id 1ivLo6-0002EG-98 for ietf-http-wg@w3.org; Sat, 25 Jan 2020 13:49:04 +0000
Received: from popmini.vanrein.org ([83.161.146.46]) by smtp-cloud9.xs4all.net with ESMTP id vLnziAVdsT6sRvLo0i3hzY; Sat, 25 Jan 2020 14:48:56 +0100
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=openfortress.nl; i=rick@openfortress.nl; q=dns/txt; s=fame; t=1579960129; h=message-id : date : from : mime-version : to : cc : subject : references : in-reply-to : content-type : content-transfer-encoding : date : from : subject; bh=6WAyYNiUOG00li+EEk+v4M2x9mERv8RzA7aIXYy0fwY=; b=iGpHR7lIwAbKs0Neqv6dOzYoT0gNOjTuNLfv5OSP6W3HXDHqYxtb655Z PtU/cmf0CJUuqOrO6Vim06IsFWjmym/EreuHAQVFG6CQtSlrGvzC8eqRpK HmBJQbPCAecT58B8vf24sc+lVa9rzmkZsVW25tCARkQ+WDSutfuY84Yhw=
Received: by fame.vanrein.org (Postfix, from userid 1006) id 43C9A25129; Sat, 25 Jan 2020 13:48:49 +0000 (UTC)
Received: from airhead.local (phantom.vanrein.org [83.161.146.46]) by fame.vanrein.org (Postfix) with ESMTPA id CE8C22512F; Sat, 25 Jan 2020 13:48:41 +0000 (UTC)
Message-ID: <5E2C4738.8010609@openfortress.nl>
Date: Sat, 25 Jan 2020 14:48:40 +0100
From: Rick van Rein <rick@openfortress.nl>
User-Agent: Postbox 3.0.11 (Macintosh/20140602)
MIME-Version: 1.0
To: Amos Jeffries <squid3@treenet.co.nz>
CC: ietf-http-wg@w3.org
References: <5E2B76EC.5000300@openfortress.nl> <BB50C7B7-3861-4054-AFB7-6F1C287AFEE6@gmail.com> <5E2C2039.7080303@openfortress.nl> <0bb7f153-57ea-7cb4-59e2-26ee2e41d928@treenet.co.nz>
In-Reply-To: <0bb7f153-57ea-7cb4-59e2-26ee2e41d928@treenet.co.nz>
X-Enigmail-Version: 1.2.3
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bogosity: Unsure, tests=bogofilter, spamicity=0.520000, version=1.2.4
X-CMAE-Envelope: MS4wfO2JwM+huSLUmrQBc0IwNwiJx8kH7KmFN+Z99yB3xlaZJ6lzquWJTHjjEjeUwc1HsRNXCSVmEAk859Dxn3sU/DXI9Jj32XufM2o+hxXtvlODItvOrtq0 BT/UPf1Iqx5Caew1it1RzUH3xk0C+JqU1xvoDoAhqzwx0TlaeC/mxBntdI2AjRehAXln3PzB95tGYg==
Received-SPF: pass client-ip=194.109.24.26; envelope-from=rick@openfortress.nl; helo=lb2-smtp-cloud9.xs4all.net
X-W3C-Hub-Spam-Status: No, score=-4.8
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: titan.w3.org 1ivLo6-0002EG-98 d6e823ef65afcd91d3b4ccce7fa6adec
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Adding user@ to HTTP[S] URIs
Archived-At: <https://www.w3.org/mid/5E2C4738.8010609@openfortress.nl>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/37279
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <https://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

Hi Amos,

We mostly agree, except that I think we should not force-bind client
authentication to the userinfo indication in the URI authority, which I
read to be intended as a resource name space in RFC 3986:

3.2.  Authority

   Many URI schemes include a hierarchical element for a naming
   authority so that governance of the name space defined by the
   remainder of the URI is delegated to that authority (which may, in
   turn, delegate it further).  The generic syntax provides a common
   means for distinguishing an authority based on a registered name or
   server address, along with optional port and user information.

>>>> Most protocols support users under domain names, but HTTP does not.
> 
> This is incorrect. userinfo@ is part of the generic URI format, so it
> must still be supported by http:// URL parsers. The difference is that
> the client is expected to map the section into data sent in another way.

I agree, but was nonetheless correct: HTTP is the protocol and it does
not support users as an explicit concept.

> A client is forbidden from *sending* the userinfo@ on-wire.

Yes, that is what the spec of the "Host" header says.

>> Having a place to specify user name syntax and semantics is a good
>> example.
> 
> Those rules already exist for the initiel userinfo@ section. The core of
> all these issues is that they are not being obeyed by software in reality.

Software cannot obey it, in lieu of a place for userinfo in the HTTP
protocol!  Authentication headers are *not* the place for it, as those
propose a client identity, while the userinfo in the HTTP URI signifies
a resource name space.

> Also please be aware that the latest HTTP versions 2+ do not send their
> URL as a single text string.

Thanks.

>> These could be consistently represented as
>> 	https://rnothenius@www.cabrillo.edu
>> 	https://leenaars@nlnet.nl
>> 	https://m.vankeulen@people.utwente.nl
>> 	https://dssvtartaros@www.facebook.com
>> 	http://esr@catb.org/esr
>> 	http://rick@vanrein.org
>>
> 
> These are valid URLs today - all have the same value:

I do not know how to send them -- other than through abuse of the Basic
authentication mechanism, which is intended to relay a client identity,
rather than refine the resource name space offered by the server.

>> I pioneered this idea with a crude hack based on Basic authentication,
>> which is highly inconsistent across browsers because Basic and Digegst
>> have always misinterpreted the URL userinfo as authentication names,
> 
> That is not a misinterpretation. The content is site-specific. If a site
> has URLs with userinfo@ *and* challenges for authentication credentials,
> then it is reasonable for the field to be interpreted as the answer to
> the challenge.

I disagree that this is reasonable to prescribe in the HTTP standard.

There are certainly use cases, namely when I want to address my own
records, and the ACL on the server can happily configured that way.

But doing this always, so force-binding client authentication to the
userinfo in the HTTP URI, I could not allow others into my part of the
site, which is a pretty dramatic reduction of HTTP expressiveness.  I
believe separating client identity and server users makes a lot of sense.

FWIW, I don't care about old-fashioned Basic and Digest authentication,
but about the separation of client identity and resource name spacing.


Thanks,
 -Rick