Thank you Peter for the explanation. Yes, I am looking for a way that allows clients to tell in advance precisely what rules the server will apply with regard to case mapping.

Precis operations for the same kind of string can take place in various places in different tiers and their behavior should be consistent. The usernames "fussball" and "fußball" should be treated as equal for case insensitive matching, or as distinct for case sensitive matching. In a worst case, distinct but confusable accounts might be confused. Such problems would never happen if the components designated the complete spec of the username string matching. If the profile doesn't fully specify the spec but it's up to the deployment/service policies, I would like the components to be able to identify the policies precisely. The components that perform precis processing are distributed and they have to be coordinated with respect to the deployment/service policies. With a standard naming scheme for them it would be much easier to coordinate them. Implementers would have to make that up anyway, and it would be hard for application developers to tell the difference between different UsenameIdentifierClass implementations.

I am aware the ICU project has implemented SASLprep. It appears the SASL implementation has no ambiguity regarding case mappings; cases are preserved in the example:

   2  user             user       no transformation
   3  USER             USER       case preserved, will not match #2

I expect the same clarity in PRECIS. I do believe case insensitive matching should be enabled. I think a small number of popular recipes for usernames should be identified and standardized as a profile or a deployment/service policy, however it is called.

Regards,
-Dan

On 8/29/2014 3:15 PM, Peter Saint-Andre wrote:
On 8/25/14, 7:52 PM, Dan Chiba wrote:
Hi Peter,

This is essentially generic but I think the degree of impact would vary,
depending on the profile. UsenameIdentifierClass would be one of those
severely affected because it is important to evaluate usernames
correctly and there are various common practices of handing them.
Sometimes case insensitive, sometimes sensitive, among others.

Correct. Which is why it's difficult to formulate one rule for all treatments of usernames, and why it took quite a bit of discussion to come to consensus on the text in Section 4.2.1 of the SASLprepbis specification:

http://tools.ietf.org/html/draft-ietf-precis-saslprepbis-07#section-4.2.1

If I understand your original message correctly, you are looking for a way that, say, client software can know in advance how a server will treat usernames with regard to case mapping, based on the SASL mechanism or application protocol in use. I was looking for that, too. Unfortunately, our friends in the KITTEN WG (which works on SASL) were insistent - and correct - that there is no deterministic formula here because case mapping can even be a matter of deployment or service policy and thus not determined by the SASL mechanism or application protocol in use. Thus our carefully-crafted text in Section 4.2.1.

I wish I could report happier news.

Peter



_______________________________________________
precis mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/precis

Reply via email to