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

Reply via email to