Re: [art] Auto-configuring Email Clients via WebFinger

Marten Gajda <marten@dmfs.org> Fri, 19 July 2019 07:24 UTC

Return-Path: <marten@dmfs.org>
X-Original-To: art@ietfa.amsl.com
Delivered-To: art@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E8AB9120025 for <art@ietfa.amsl.com>; Fri, 19 Jul 2019 00:24:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.497
X-Spam-Level:
X-Spam-Status: No, score=-0.497 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_SORBS_WEB=1.5, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=dmfs.org
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 tmFochZzP-sh for <art@ietfa.amsl.com>; Fri, 19 Jul 2019 00:24:56 -0700 (PDT)
Received: from mailrelay3-1.pub.mailoutpod1-cph3.one.com (mailrelay3-1.pub.mailoutpod1-cph3.one.com [46.30.210.184]) (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 4D83E12000E for <art@ietf.org>; Fri, 19 Jul 2019 00:24:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dmfs.org; s=20140924; h=content-type:in-reply-to:mime-version:date:message-id:from:references:to: subject:from; bh=kefTBqr+azT2L7WhIYKRMfF8xs8pDJADqLNUHf3r2kA=; b=flvOJvTQBQMRj4AHDXreyDfOouzO2w/c2nKy/ZEJh/N024L/TDMGOE6NHh9VhtrUeGhYXjkWJptyq zYCnME2j734KBSW8y/qvcQL3EsGehSs7gagTagKA+ihND2rvVGJ6txhv4KY/LF0F7YwC0QhWqq+EBP 7STm81afuWEcu+8k=
X-HalOne-Cookie: ef6a20a3f70281ae1e0406d70fd0cdfbe81733f1
X-HalOne-ID: 4bfaa9ec-a9f6-11e9-b5ed-d0431ea8bb03
Received: from smtp.dmfs.org (unknown [79.254.14.231]) by mailrelay3.pub.mailoutpod1-cph3.one.com (Halon) with ESMTPSA id 4bfaa9ec-a9f6-11e9-b5ed-d0431ea8bb03; Fri, 19 Jul 2019 07:24:51 +0000 (UTC)
Received: from boss.localdomain (89-64-62-85.dynamic.chello.pl [89.64.62.85]) by smtp.dmfs.org (Postfix) with ESMTPSA id E90C6377; Fri, 19 Jul 2019 09:24:50 +0200 (CEST)
To: "Paul E. Jones" <paulej@packetizer.com>, "art@ietf.org" <art@ietf.org>
References: <eme8317959-26f9-4a9d-b2be-d2f8cb0961f6@sydney> <1b042605-4b3a-40b7-a792-2390c924282f@www.fastmail.com> <cdc61ea9-0607-e5e9-8af8-6ac488f5e56b@dmfs.org> <embe3ded6c-3717-4e46-9f6a-943bd2b55dd2@sydney>
From: Marten Gajda <marten@dmfs.org>
Message-ID: <0639c891-61fe-2614-5bf6-5b71b09e06df@dmfs.org>
Date: Fri, 19 Jul 2019 09:24:48 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0
MIME-Version: 1.0
In-Reply-To: <embe3ded6c-3717-4e46-9f6a-943bd2b55dd2@sydney>
Content-Type: multipart/alternative; boundary="------------FFD8D50B023AFE5D9B146CB3"
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/art/jdcS8KmxFcX7vNqNgpUcvoY7TLY>
Subject: Re: [art] Auto-configuring Email Clients via WebFinger
X-BeenThere: art@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Applications and Real-Time Area Discussion <art.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/art>, <mailto:art-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/art/>
List-Post: <mailto:art@ietf.org>
List-Help: <mailto:art-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/art>, <mailto:art-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 19 Jul 2019 07:24:59 -0000

Am 19.07.19 um 03:00 schrieb Paul E. Jones:
>
> If you're suggesting that the initial query for the "services.json"
> file may prompt for credentials and allow to server different JSON
> documents based on the user requesting, good. That would work.

Yes, that's exactly what I'm suggesting. In fact, the driver behind the
original draft was a company which had a setup similar to your wife's
company. They had offices in the US and in Europe and their employee's
user accounts where hosted in their respective locations.

We need to bootstrap authentication though (e.g. to support OAuth and
provide links to support and account management sites). My suggestion
would be to serve a redacted services.json to unauthenticated users
which doesn't contain user specific service entries and add a flag
indicating that you need to authenticate to get the entire set of data.

Marten

> Paul
>
> ------ Original Message ------
> From: "Marten Gajda" <marten@dmfs.org <mailto:marten@dmfs.org>>
> To: "art@ietf.org" <art@ietf.org <mailto:art@ietf.org>>
> Sent: 7/18/2019 6:16:33 PM
> Subject: Re: [art] Auto-configuring Email Clients via WebFinger
>
>> As a client developer, I want to provide a smooth UX to our users.
>> This means I need much more information than just a server URL.
>>
>> For instance, I also want to
>>
>> * present the name or logo of the provider which hosts the user's
>> account, ideally before they enter their credentials,
>> * provide links to support channels, reset password pages, account
>> management,
>> * know the OAuth endpoints, if available,
>> * know the OpenID Connect endpoints, so I can register my OAuth
>> client dynamically,
>> * know the OAuth scope tokens I need in order to access a service,
>> * know which endpoints serve the same data via different protocols,
>> * know *all* the available services (not just the ones I know about),
>> so I can suggest other clients which may be useful.
>>
>> We had a few more discussion items at
>> https://github.com/CalConnect/AUTODISCOVERY/issues
>>
>> One of the initial ideas was to have the accounts managed by the
>> operating system and data access/synchronization handled by
>> individual applications. In this scenario, the operating system would
>> provide the UI to configure an account and perform the service
>> discovery. Afterwards it would delegate the service configuration
>> along with the account identifier to the applications which can
>> handle the services found. If the provider offers services for which
>> no application is present on the system, it could suggest suitable
>> applications from the app store or software repository. The operating
>> system could rerun the service discovery from time to time and notify
>> the user about changes (e.g. "Your proviare the applications you can
>> use: ...").
>>
>> I don't see this as a use case for WebFinger though. The services
>> offered by a provider is not user data (although they may vary for
>> each users), it's primarily provider data. As such, I'd prefer to
>> provide a single JSON document at a well-known URL under the
>> provider's domain, e.g. at "/.well-known/services". This would make
>> it trivial to host a static document, which would do the trick in
>> most setups. More complex providers could still return per-user
>> configurations (after authentication).
>>
>> The attached example shows how a document might look like as per the
>> current status.
>>
>> Cheers,
>>
>> Marten
>>
>>
>>
>> Am 16.07.19 um 07:22 schrieb Bron Gondwana:
>>> On Tue, Jul 16, 2019, at 05:31, Paul E. Jones wrote:
>>>> ART folks,
>>>>
>>>> Several years ago when I was working on WebFinger, one of the use
>>>> cases I presented was using WebFinger to facilitate
>>>> auto-configuring email clients.  It was and still is a problem I
>>>> deal with today.
>>>>
>>>> For my own family, I have to manually configure several different
>>>> clients on several different platforms for each member of the
>>>> family.  It's time consuming and really needs to be made simpler.
>>>>
>>>> My wife also has to deal with this issue where she works, because
>>>> her company, while just 100 or so employees, has offices in two
>>>> different countries and the mail server settings an employee uses
>>>> depends on his or her geographic location.  To use standard IETF
>>>> protocols, it means a lot of manual provisioning.
>>>>
>>>> I see the same sort of challenges with service providers. If one
>>>> wants to have his or her own domain, but isn't technically savvy,
>>>> they're in for a lot of "fun" trying to figure out the various
>>>> settings. Seriously, no normal person should have to understand
>>>> what SMTP or IMAP means, and definitely what port numbers or
>>>> security settings to fill in.
>>>>
>>>> While there has been a generic DNS-based method for email provision
>>>> for a while, it doesn't work for me. It doesn't work for my wife's
>>>> company, either. It also doesn't define everything one might need
>>>> to define (e.g., required security settings or policies).
>>>>
>>>> So we put together a very simple example to show how this might be
>>>> done with WebFinger.  See the draft here:
>>>> https://tools.ietf.org/html/draft-jones-webfinger-email-autoconfig-00
>>>
>>> There's also been discussion about doing the same thing for caldav
>>> and carddav in CalConnect, which was led by Marten. It would be good
>>> to combine this work!
>>>
>>> Cheers,
>>>
>>> Bron.
>>>
>>> -- 
>>>   Bron Gondwana
>>>   brong@fastmail.fm
>>>
>>>
>> -- 
>> Marten Gajda
>> CEO
>>
>> dmfs GmbH
>> Schandauer Straße 34
>> 01309 Dresden
>> GERMANY
>>
>> phone: +49 177 4427167
>> email: marten@dmfs.org
>>
>> Managing Director: Marten Gajda
>> Registered address: Dresden
>> Registered No.: AG Dresden HRB 34881
>> VAT Reg. No.: DE303248743

-- 
Marten Gajda
CEO

dmfs GmbH
Schandauer Straße 34
01309 Dresden
GERMANY

phone: +49 177 4427167
email: marten@dmfs.org

Managing Director: Marten Gajda
Registered address: Dresden
Registered No.: AG Dresden HRB 34881
VAT Reg. No.: DE303248743