Re: [ldapext] Case sensitivity summary

Michael Ströder <> Fri, 04 December 2015 14:00 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id F14C41B31BA for <>; Fri, 4 Dec 2015 06:00:51 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.312
X-Spam-Status: No, score=-2.312 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id l3c5PrgWnC4w for <>; Fri, 4 Dec 2015 06:00:49 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 3C9BC1A87C7 for <>; Fri, 4 Dec 2015 06:00:49 -0800 (PST)
Received: from srv4.stroeder.local (unknown []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.stroeder.local", Issuer " Server CA no. 2009-07" (verified OK)) by (Postfix) with ESMTPS id D6BF71CF66; Fri, 4 Dec 2015 14:00:46 +0000 (UTC)
Received: from nb2.stroeder.local (nb2.stroeder.local []) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by srv4.stroeder.local (Postfix) with ESMTPS id 264781D29F; Fri, 4 Dec 2015 14:00:45 +0000 (UTC)
To: Andrew Findlay <>, LDAP Extensions list <>
References: <>
From: Michael Ströder <>
X-Enigmail-Draft-Status: N1110
Message-ID: <>
Date: Fri, 04 Dec 2015 15:00:44 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:42.0) Gecko/20100101 SeaMonkey/2.39
MIME-Version: 1.0
In-Reply-To: <>
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg="sha-256"; boundary="------------ms080209050307080609050305"
Archived-At: <>
Subject: Re: [ldapext] Case sensitivity summary
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: LDAP Extension Working Group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 04 Dec 2015 14:00:52 -0000

Andrew Findlay wrote:
> We are not going to define a standard that forces everyone to do everything
> 'right' while providing interworking of differing systems. It is simply
> not possible.

That perfectly summarizes this topic.
Thanks Andrew, for this clear statement.

Let's keep the scope right.

> Overall I think we are heading for something like this:
> 1)	Usernames and groupnames should have caseIgnoreMatch syntax
> 2)	Usernames and groupnames should preferably be stored in lower-case in
> 	cultures where that has meaning. Remember that LDAP is case-preserving
> 	even for case-insensitive attributes.
> 3)	Systems that are internally case-sensitive should take extra care
> 	when using data from LDAP.
> I know this conflicts with Mark's wish to be able to import existing
> NIS data unchanged to cope with weird existing situations, but I see that 
> as a special case that may be better handled in another way.

+1 !!!

(That's pretty much exactly what I planned to suggest.)

> Note that the above discussion *only* applies to usernames and groupnames.
> Unix-specific mappings such as automount maps are a different issue.

automount maps are maybe a similar topic like generating 'homeDirectory' values
for $HOME on case-sensitive file-systems based on user names.  For this
RECOMMENDing that usernames are normalized to lower-case is really helpful.

Regarding service names:

(Personally I never saw any customer LDAP deployment storing a services map.)

1. Service names are used in DNS RRs (SRV, DANE, etc.) and those DNS labels are
definitely supposed to be treated case-insensitive.

2. Jordan pointed out RFC 6335.

=> I concur with Jordan: Service names MUST be treated case-insensitive.
Probably recommending in an implementation note to normalize values to
lower-case seems also to be a good idea.

=> People actually using case-sensitive service names to address *different*
services MUST clean up their local mess. But they likely have to do that anyway.

Ciao, Michael.