The value of the explicit locale field is that it provides locale information
to servers that want to use it without having to use any explicit language tags
in the single-locale case. I guess I don’t see the complication here. With
this solution, in the single-locale case, all fields would be passed without
language tags (simple for both client and server), and a locale would be
provided by the client (simple). The server would store the locale but
otherwise could ignore it if it knew that it was in a single-locale deployment.
I just don’t see it as being very hard for a registration request to include
“default_registration_locale”:“en” and for the server to store it and return
that value, but otherwise ignore it, if that reflects the realities of your
particular deployment. :)
--
Mike
From: Justin Richer [mailto:[email protected]]
Sent: Wednesday, March 20, 2013 12:11 PM
To: Mike Jones
Cc: George Fletcher; [email protected] WG
Subject: Re: [OAUTH-WG] Registration: Internationalization of Human-Readable
names
I agree that I'm seeing things from the single-language and single-encoding
perspective here, and that's the use case I'm currently solving for with my
development. I want to see this one remain simple, and I think we can do that
without breaking other use cases.
I would argue that multi-script languages (such as Chinese, Japanese, and
others) are all cases where you're going to assume multiple languages, and the
tags would be necessary for real use. So client and AS would both need to know
how to deal with the multiple different tags, and smart ones would be able to
effectively ignore the default field. The default, scriptless field could be
for any one of the supported languages at the AS or Client, and it'd
effectively be a backup, internationalized version, the one that you use when
there's nothing else more specific to use.
I guess what's getting me stuck on the explicit locale field is that I'm not
seeing much value in requiring it over George's proposal of always using
language tags on everything (which I also don't like, but for different
reasons). Having the information doesn't mean that you can do anything
intelligent with it, either, but I can see the argument that it makes doing
something smart possible. But on the other hand, we already have a mechanism
for doing something smart: using the explicit language tags directly.
Also, note that the AS doesn't need to render any characters for tos_uri,
policy_uri, and other _uri options, just for client_name. That's why I was
making the distinction in my explanation below. You might want to give the user
the right option, sure, but a served webpage has a much better chance of
getting the locale right dynamically than an included string would have
(approaches like user preferences, browser settings, etc. -- everything that's
used today on web pages, in other words). This is why I think that the _uri
claims are in a different category and we're talking almost exclusively about
client_name here.
I think, ultimately, that I need to think about this more.
-- Justin
On 03/20/2013 02:30 PM, Mike Jones wrote:
I suspect you only feel that leaving the locale information out is OK because
you (and I) live in a culture where it’s not needed to adequately render
characters. I’d actually defer on this decision to Nat and others from Japan
and China (and I think Korea?) where I believe that this information is
essential.
For what it’s worth, it’s more than just client_name. It’s also tos_uri and
policy_uri and potentially client_uri.
Also, having thought about it for a few days, I’d change the proposed field
name from registration_locale to default_registration_locale, so the meaning is
clearer.
Nat and others from Eastern cultures, what is your opinion on this?
Thanks,
-- Mike
From: Justin Richer [mailto:[email protected]]
Sent: Wednesday, March 20, 2013 10:43 AM
To: Mike Jones
Cc: George Fletcher; [email protected]<mailto:[email protected]> WG
Subject: Re: [OAUTH-WG] Registration: Internationalization of Human-Readable
names
I would say that claims without a language parameter, which I would make
REQUIRED in the presence of other claims, would be treated as UTF8 strings with
no guarantee of what language, script, or other locale-specific information
would be in there. It's a default string, and it's the best the client can give
if nothing more specific is useful. And servers would have to accept this
default string and do their best with it. A service provider can publish their
expected default locale information in either discovery or service
documentation, and clients that want to tweak things for specific service
providers can do that.
The server can display it (because it's a string that'll always be there, if
any version is there), but a server that doesn't do internationalized strings
very well might not get its display correct. Since displayable text this is
likely to be dumped into the middle of a webpage that has its own character
encoding and other considerations anyway, so it's not guaranteed that
specifying a locale will always help here anyway. This is just for the
displayable text, which right now is only the client_name field in OAuth and
OIDC: for URLs (the other "human-readable" field), it's a moot point, because
the server's just going to spit out the URL itself into an href of some flavor.
The server doesn't have to deal with any kind of encoding or text/script issues
here.
As a server developer, it's just another thing that I *have* to track and deal
with on the client model, even if I don't want to support the rest of the
multi-language tags in my service. As a client developer, it's one more thing
that I *have* to specify when I send things to the server. I don't see how
requiring its specification is going to really help interoperability, and I can
almost guarantee that implementations will just leave it off even if marked
REQUIRED (like how many, many documents in the wild that are supposed to have a
character-encoding field of some type just leave it off).
I think that it's a lot of work on both sides for just client_name.
-- Justin
On 03/20/2013 01:27 PM, Mike Jones wrote:
How would you do this instead then?
________________________________
From: Justin Richer
Sent: 3/20/2013 10:25 AM
To: Mike Jones
Cc: George Fletcher; [email protected]<mailto:[email protected]> WG
Subject: Re: [OAUTH-WG] Registration: Internationalization of Human-Readable
names
Personally, I think that this level of specificity is overkill.
-- Justin
On 03/14/2013 11:42 AM, Mike Jones wrote:
I agree that having unadorned values likely simplifies things in many cases,
but if we do this, we should let the Client say what language/script it’s using
when providing human-readable strings or references to them as registration
parameters. For this purpose, I’d propose that we have a parameter something
like this one:
registration_locale
OPTIONAL or REQURED. Language and script used for human-readable values or
references to human-readable values that are supplied without language/script
tags, represented as a BCP47[RFC5646] language tag value. This parameter is
REQUIRED if any human-readable values or references to human-readable are
provided without language/script tags.
-- Mike
From: [email protected]<mailto:[email protected]>
[mailto:[email protected]] On Behalf Of Justin Richer
Sent: Thursday, March 14, 2013 8:02 AM
To: George Fletcher
Cc: [email protected]<mailto:[email protected]> WG
Subject: Re: [OAUTH-WG] Registration: Internationalization of Human-Readable
names
On the surface this does simplify things, but the issue I forsee with it is
that I want to be able to call "client.getClientName()" and always get
*something* out of it if there are *any* client_name fields at all. So in this
world if I take a client library that assumes en-us and it talks to a server
that only looks for es-cl, there's a very real chance of the client name not
getting set at all. I think that's a problem.
This is why I think the default field name (without the language tag) really
should be required and should be left undefined as to what language and script
it is. Essentially, "It's a UTF8 String, hope for the best". If you want
something more specific and smart about localization, then you can support the
language tags. If you just want to have a string to store and throw at the
user, then you can just use the bare field name.
In other words, we take what we have now (which works for a
non-internationalized case where everyone just assumes a common
language/script), and we augment it with features that let it be smarter if you
want it to be smarter. Make the simple case simple, make the complicated case
possible.
-- Justin
On 03/14/2013 10:47 AM, George Fletcher wrote:
As a simplifying option... why not just require human-readable fields to
require a "script-tag". This way it is always explicit what language/locale the
text is for. It then becomes the responsibility of the AS to return an
appropriate response if there is not a direct match between a request and the
data stored at the AS (and out of scope of the spec).
Thanks,
George
On 3/13/13 10:22 AM, Justin Richer wrote:
So with what little feedback I've gotten, I'm proposing to add text from the
proposed webfinger and OIDC drafts for the hash-based localization of strings,
with the following properties:
* All localized versions of fields are fully optional on both client and server
* If a localized version of a field is included, its bare-value (perhaps
internationalized) field MUST be included
* All human-readable fields are eligible for this mechanism (including any
uri's for user-facing web pages, which can be used to point to
language-specific pages)
* Clients and servers can decide to use whatever language/script they want to
for the bare-value field, and no assumptions can be made on either side about
what that is
I think that with these constraints, we can add functionality to address
Stephen's concerns without getting too complicated or putting too much burden
of support.
-- Justin
On 03/11/2013 06:52 PM, Nat Sakimura wrote:
Similar work is in progress at Webfinger.
See: http://www.ietf.org/mail-archive/web/webfinger/current/msg00530.html
Paul is proposing the same syntax as Connect.
2013/3/12 Richer, Justin P. <[email protected]<mailto:[email protected]>>
It does presume a definition of "claim", which I suppose we could turn to
"metadata field" for DynReg and its extensions to be appropriately limiting.
But we also need a good definition of what a language-tag-less field means, and
whether or not it's required if the other fields are present or not (which is
something that Connect is trying to fix at the moment, as I recall from last
week).
So it turns into about a paragraph worth of text. Is that worth it? I'm not
entirely convinced that it is, but I'm interested to hear what others think,
particularly those who *aren't* tied into the OpenID Connect protocol so much.
(I don't want to pick a solution just because it's familiar, if we need a
solution at all.)
-- Justin
On Mar 11, 2013, at 6:35 PM, Brian Campbell
<[email protected]<mailto:[email protected]>>
wrote:
A fair question but what would need to be pulled in is really probably only a
couple sentences (and reference) from
http://openid.net/specs/openid-connect-messages-1_0-16.html#ClaimsLanguagesAndScripts
(note the reference to 2.1.1.1.3 inside
http://openid.net/specs/openid-connect-registration-1_0-15.html is broken)
On Mon, Mar 11, 2013 at 6:26 PM, Richer, Justin P.
<[email protected]<mailto:[email protected]>> wrote:
My concern with this is that OIDC can get away with defining this
multi-language structure because it defines the mechanism once (in Messages)
and applies it to all user-readable strings throughout the whole application
protocol, of which there are several. Do we really want to pull in that whole
structure and mechanism for one field in client registration? I really don't
think it should be something that's defined completely inside of DynReg for a
corner case for a single field, but I also doubt we want to normatively point
to OIDC Messages for this solution either.
There are also other ways to do this: Webfinger [1] for instance uses JSON
structures to give language tags to field values, and has a default mechanism:
{ "en_us": "my client", … }
The fundamental question is this: should a client be able to register multiple
names (in different locales) with a single client_id, or should it get a
different client_id for each display language set?
-- Justin
[1] http://tools.ietf.org/html/draft-ietf-appsawg-webfinger-11
On Mar 11, 2013, at 5:54 PM, John Bradley
<[email protected]<mailto:[email protected]>>
wrote:
That is what I was thinking. It would be up to the AS to determine what
language and script to present based on the user preference.
While a large number of clients will be native and might be able to customize
themselves for a single user during registration , we don't want to forget the
web server clients that are multi user.
On 2013-03-11, at 10:49 PM, Brian Campbell
<[email protected]<mailto:[email protected]>> wrote:
FWIW, the closely related OpenID Connect client registration draft does have
some support for doing this, which could maybe be borrowed. See client_name in
§2 at
http://openid.net/specs/openid-connect-registration-1_0-15.html#client-metadata
and the examples.
"client_name": "My Example",
"client_name#ja-Jpan-JP":"クライアント名",
On Mon, Mar 11, 2013 at 5:15 PM, Richer, Justin P.
<[email protected]<mailto:[email protected]>> wrote:
It was brought up at the in-person meeting today that we'll want to consider
issues around internationalization and localization of human-readable fields
like client_name in the client registration. Which is to say: if a client
supports ten languages and wants to present itself in ten languages, should it
have to register itself ten times with an AS?
At the moment, I'm of the opinion a client with ten languages could register
itself ten times, or do something with the context in which it runs to
determine which human-facing language to use. Keep in mind that in some cases
(such as native clients), you'll be dynamically registering a client for each
user, in effect. In other words, I personally think that this is a rathole that
will cause more harm than good.
-- Justin
_______________________________________________
OAuth mailing list
[email protected]<mailto:[email protected]>
https://www.ietf.org/mailman/listinfo/oauth
_______________________________________________
OAuth mailing list
[email protected]<mailto:[email protected]>
https://www.ietf.org/mailman/listinfo/oauth
_______________________________________________
OAuth mailing list
[email protected]<mailto:[email protected]>
https://www.ietf.org/mailman/listinfo/oauth
--
Nat Sakimura (=nat)
Chairman, OpenID Foundation
http://nat.sakimura.org/
@_nat_en
_______________________________________________
OAuth mailing list
[email protected]<mailto:[email protected]>
https://www.ietf.org/mailman/listinfo/oauth
_______________________________________________
OAuth mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/oauth