Re: [xmpp] 3920bis: authentication identity

Peter Saint-Andre <stpeter@stpeter.im> Mon, 07 June 2010 22:05 UTC

Return-Path: <stpeter@stpeter.im>
X-Original-To: xmpp@core3.amsl.com
Delivered-To: xmpp@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 10AA63A67A3 for <xmpp@core3.amsl.com>; Mon, 7 Jun 2010 15:05:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.754
X-Spam-Level:
X-Spam-Status: No, score=-0.754 tagged_above=-999 required=5 tests=[AWL=-0.755, BAYES_50=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PJfasxCW29k1 for <xmpp@core3.amsl.com>; Mon, 7 Jun 2010 15:05:36 -0700 (PDT)
Received: from stpeter.im (stpeter.im [207.210.219.233]) by core3.amsl.com (Postfix) with ESMTP id 3E96A3A6407 for <xmpp@ietf.org>; Mon, 7 Jun 2010 15:05:36 -0700 (PDT)
Received: from dhcp-64-101-72-121.cisco.com (dhcp-64-101-72-121.cisco.com [64.101.72.121]) (Authenticated sender: stpeter) by stpeter.im (Postfix) with ESMTPSA id CD5A640CFD for <xmpp@ietf.org>; Mon, 7 Jun 2010 16:05:36 -0600 (MDT)
Message-ID: <4C0D6D2F.2070203@stpeter.im>
Date: Mon, 07 Jun 2010 16:05:35 -0600
From: Peter Saint-Andre <stpeter@stpeter.im>
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1.9) Gecko/20100317 Thunderbird/3.0.4
MIME-Version: 1.0
To: xmpp@ietf.org
References: <4B2C14F5.2070408@stpeter.im> <201003081153.10174.justin@affinix.com> <f5aae3ec1003081155x8431ab1mc7574b39da19478e@mail.gmail.com> <201003081237.58419.justin@affinix.com> <AANLkTimqpbER9mnhoxMc1Modta6kaGEt7HA-jA6X8Zaa@mail.gmail.com>
In-Reply-To: <AANLkTimqpbER9mnhoxMc1Modta6kaGEt7HA-jA6X8Zaa@mail.gmail.com>
X-Enigmail-Version: 1.0.1
OpenPGP: url=http://www.saint-andre.com/me/stpeter.asc
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg="sha1"; boundary="------------ms090706060209010509070407"
Subject: Re: [xmpp] 3920bis: authentication identity
X-BeenThere: xmpp@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: XMPP Working Group <xmpp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/xmpp>, <mailto:xmpp-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/xmpp>
List-Post: <mailto:xmpp@ietf.org>
List-Help: <mailto:xmpp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/xmpp>, <mailto:xmpp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 07 Jun 2010 22:05:38 -0000

On 6/7/10 2:46 AM, Kevin Smith wrote:
> Sorry about jumping back into this thread - I'm trying to do a review
> today (yes, I'm running late).
> 
> On Mon, Mar 8, 2010 at 9:37 PM, Justin Karneges <justin@affinix.com> wrote:
>> On Monday 08 March 2010 11:55:13 Kevin Smith wrote:
>>> On Mon, Mar 8, 2010 at 7:53 PM, Justin Karneges <justin@affinix.com> wrote:
>>>> On Sunday 07 March 2010 19:18:54 Kurt Zeilenga wrote:
>>>>> For instance, my PLAIN id might well be "kdz" while my bare JID is
>>>>> "kurt.zeilenga@isode.com".  My DIGEST-MD5 id might be "kdz@x" in the
>>>>> realm "y@z".
>>>>
>>>> Can you give an example of how this situation might be handled in a
>>>> client UI? If the usernames can differ between mechanisms in a server
>>>> deployment, then you'd need some sort of mechanism-specific
>>>> configuration.  Psi has a "username" field in the account settings which
>>>> can be used to specify a single SASL username to be applied to all
>>>> mechanisms.  I take it this is not good enough?
>>>
>>> It actually is, if you know which mechanism your client is going to pick.
>>
>> Do you know what mechanism the client is going to pick?  Even an "apt-get
>> upgrade" could shake things up, by bringing in SCRAM and affecting mechanism
>> priority.  I suppose mechanism selection is deterministic if you have a
>> controlled client environment.  Maybe that is enough?
>>
>> To me it feels like clients should have mechanism-specific configuration, with
>> ugly words like "DIGEST-MD5" appearing in the GUI.  Or it should be possible
>> to configure clients to always use a specific mechanism, bypassing the magic
>> selection done by SASL libraries based on security settings.
> 
> Or, and this is the solution that's working fine in the real world,
> and was a SHOULD in the original RFC3920, 

Is this the text from RFC 3920 that you're referencing?

   For client-to-server communications, the "bare JID" (<node@domain>)
   SHOULD be the authorization identity, derived from the authentication
   identity, as defined in [SASL], if no authorization identity was
   specified during SASL negotiation (Section 6); the resource
   identifier portion of the "full JID" (<node@domain/resource>) SHOULD
   be the resource identifier negotiated by the client and server during
   Resource Binding (Section 7).

> using a JID derivative and
> having simple clients and a clean experience for the users.
> 
> I accept that there may be different credentials necessary for
> different mechs in a hypothetical situation, but that's covered by the
> SHOULD in 3920 - specialised deployments can always use more
> fully-featured clients (and they do exist - in a controlled
> environment Psi will do the necessary).

Agreed.

> This way we don't have a protocol that forces complex UIs on simple Users.
> 
> For reference, I've only heard of a single deployment that's ever
> wanted to not use the JID (or node) identity for this. Can someone
> (Peter?) with more experience than me say whether they know of a
> significant number of real-world deployments where this is an issue?
> For one deployment wanting to do something different, I think a SHOULD
> here is fine. Servers SHOULD use the JID - we can even add that
> clients SHOULD allow it to be something else if we need to (although I
> don't think that's true).

On the public XMPP network, I have never encountered a server that
needed anything other than localpart or localpart@domainpart. Perhaps
that's a skewed sample (all those IM users), but realistically it's what
we find deployed now.

Perhaps it makes sense to follow RFC 3920 here, then adjust it further
based on further implemenation and deployment experience when we try to
push these specs from Proposed to Draft...

/psa