I agree generally with your assumption about clients, but rather than saying 
"clients are devices" I think it makes much more sense to say "clients are NOT 
users, so client_id need not be internationalized".  In practical terms there 
is very little to argue for anythign beyond ASCII in a client_secret, base64 
encoding or the equivalent being a fine way to transport arbitrary bits in a 
portable/reasonable way.

I argue that client_id need not be internationalized because I assume that any 
really internationalized application will have an internationalized 
presentation layer that's presenting a pretty name for the client_id.

-bill




>________________________________
> From: Hannes Tschofenig <[email protected]>
>To: Julian Reschke <[email protected]> 
>Cc: "[email protected]" <[email protected]> 
>Sent: Tuesday, June 12, 2012 11:01 AM
>Subject: Re: [OAUTH-WG] Discussion needed on username and password ABNF 
>definitions
> 
>I had a chat with Julian yesterday and here is my short summary. 
>
>Section 2.3 of the core draft defines client authentication based on two 
>mechanisms (and provides room for extensions): 
>http://tools.ietf.org/html/draft-ietf-oauth-v2-27#section-2.3
>
>1) HTTP Basic Authentication
>
>2) A custom OAuth authentication mechanism (which uses client_id and 
>client_secret)
>
>With HTTP Basic authentication the problem is that this is a legacy technology 
>and there is no internationalization support. 
>
>With our brand new custom OAuth authentication mechanism we have more options. 
>
>One possible approach is to say that the clients are devices (and not end 
>users) and therefore internationalization does not matter. 
>
>Is it, however, really true that only US-ASCII characters will appear in the 
>client_id and also in the client_secret? 
>
>Here we have the possibility to define something better. 
>
>In any case we have to restrict the characters that are used in these two 
>authentication mechanisms since they could conflict with the way how we 
>transport the data over the underlying protocol. Julian mentioned this in his 
>previous mails. 
>
>Julian, maybe you can provide a detailed text proposal for how to address your 
>comment in case we go for UTF8 (with % encoding) for the custom OAuth client 
>authentication mechanism? 
>
>Ciao
>Hannes
>
>On Jun 12, 2012, at 11:54 AM, Julian Reschke wrote:
>
>> On 2012-06-12 00:16, Mike Jones wrote:
>>> Reviewing the feedback from Julian, John, and James, I'm coming to the 
>>> conclusion that client_id and client_secret, being for machines and not 
>>> humans, should be ASCII, whereas username and password should be Unicode, 
>>> since they are for humans.  Per John's feedback, client_id can not contain 
>>> a colon and be compatible with HTTP Basic.
>> 
>> I'm not sure that restricting the character repertoire just because one way 
>> to send requires this is the right approach. My preference would be not to 
>> put this into the ABNF, and just to point out that certain characters will 
>> not work over certain transports, and to just advise to avoid them.
>> 
>>> Therefore, I'd like to propose these updated ABNF definitions:
>>> 
>>>     VSCHAR = %20-7E
>>>     NOCOLONVSCHAR = %x20-39 / %x3B-7E
>>>     UNICODENOCTRLCHAR = <Any Unicode character other than ( %x0-1F / %x7F )>
>>> 
>>>     client-id = *NOCOLONVSCHAR
>>>     client_secret = *VSCHAR
>>> 
>>>     username = *UNICODENOCTRLCHAR
>>>     password = *UNICODENOCTRLCHAR
>> 
>> In this case you should add an introductory statement pointing out that the 
>> ABNF defines the grammar in terms of Unicode code points, not octets (as it 
>> is the case most of the time).
>> 
>>> It turns out that non-ASCII characters are OK for username and password 
>>> because the Core spec only passes them in the form body - not using HTTP 
>>> Basic - and UTF-8 encoding is specified.
>> 
>> I'll send a separate mail about that, the current text in the spec is way 
>> too unspecific.
>> 
>>>                 -- Mike
>>> 
>>> P.S.  If anyone has a better ABNF for UNICODENOCTRLCHAR than "<Any Unicode 
>>> character other than ( %x0-1F / %x7F )>", please send it to me!
>> 
>> As noted before, here's an example: 
>> <http://greenbytes.de/tech/webdav/rfc5323.html#rfc.section.5.15.1>
>> 
>> Best regards, Julian
>> _______________________________________________
>> OAuth mailing list
>> [email protected]
>> https://www.ietf.org/mailman/listinfo/oauth
>
>_______________________________________________
>OAuth mailing list
>[email protected]
>https://www.ietf.org/mailman/listinfo/oauth
>
>
>
_______________________________________________
OAuth mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to