[OpenID] Claimed Identifiers and Query String Parameters

Martin Atkins mart at degeneration.co.uk
Wed Sep 3 20:32:39 UTC 2008


Joe Tele wrote:
> 
> --- On Wed, 9/3/08, SitG Admin <sysadmin at shadowsinthegarden.com> wrote:
> 
>>> We are using the claimed identifier as a key in our database to 
>>> identify credentials for a user.
> 
>> Ouch. This will make things confusing (and potentially a security 
>> risk) in the case of, for example, https://me.yahoo.com/ - I've been 
>> worrying over the same problem recently, and recommend borrowing an 
>> idea from MemCache: make a hash of each claimed ID *and* final ID 
>> (since Yahoo will declare a different actual ID) for lookup. 
> 
> I don't undersand your distinction between claimed Id and final ID.  In the case of https://me.yahoo.com/ my understanding is that URL is not the claimed id.  The claimed id will be returned in the positive assertion.  I'm eager to get our implementation correct, so I appreciate any other help to set me straight.  I actually like the model where the OP selects the claimed id.

I think your understanding is correct. The specification distinguishes 
between an OpenID Identifier and an "OP Identifier"; 
http://me.yahoo.com/ is the latter. As the spec describes, when the user 
enters an OP identifier the user's identifier temporarily becomes a 
magic value given in the spec and is later set to be the identifier 
provided by the OP in the positive assertion.

>>> However, it seems that some sites have virtually infinite number of >
>> claimed identifiers for the same OP Local Id.
> 
>> There was a thread last month (from the 3rd to the 5th) about "URI 
>> normalization and capitalization", I recommend that you look in the 
>> list archives and read that too.
> 
> Got it.  Our URLs are following the normalization rules.  
> 
> It seems that the OPs have a much greater obligation than they may realize to normalize their claimed identifiers.  It will be to their user's detriment if they do not.  I guess a power of OpenId is when the OPs which behave well to their users survive and the others whither.
> 

It is true that many OPs are currently not doing much if any 
normalization on identifiers. However, since it is the OP that is 
responsible for parsing the identifier or otherwise mapping it onto a 
user account it seems to me to be most correct for the OP to be 
responsible for normalizing it too.

This can cause some pain if the OP doesn't do it from the start; when 
LiveJournal.com initially implemented OpenID its users all had two or 
three different identifiers that were all distinct as per the OpenID 
specification. LiveJournal later switched to normalizing to a particular 
URL scheme, which caused pain for users that had already used the 
"wrong" URL scheme and were no longer able to access their accounts at RPs.

This would be a good topic to address in a hypothetical "OP best 
practices" document. Hopefully it's being included in the OpenID book(s) 
that are currently being written.





More information about the general mailing list