[OpenID] allowing users to switch to opendid-only: pointless?

SitG Admin sysadmin at shadowsinthegarden.com
Fri May 29 03:35:30 UTC 2009


>account. You don't want your user saying "I logged in with OpenID why do I
>need a username?".

On the flip side, "Why is everyone on the site going to know me by 
thus ugly URL?" - Pibb, for example, knows me as Shade.

>First question you need to answer is how is your system going to indentify a
>user. Is it a username or is it an email address?

What was the difference, again?

If not for disallowed characters in usernames, I could probably take 
'http://openid.net/' as mine - if noone else had taken it before me! 
But does this mean I am even *associated* with openid.net in any way?

Probably not. We have OpenID, though, to help with knowing that.

Usernames can also resemble E-mail addresses (if noone has taken 
'santrajan at gmail.com' before, I can probably do so at sites that 
don't ban the at symbol or period), but again, does this prove any 
association with the address?

>1) If username then the OpenID or Facebook ID is your username. I would
>recommend not to allow associations of other ID's to the same account.
>(Things will get complicated).

Life is complicated. Modelling complex relationships is why good 
database engineers deserve such high wages ;)

The case in question isn't complicated, though. We just need a unique 
numeric ID in the database (autoincrementing will do fine), and then 
link this to both OpenID's and local usernames.

>2) If you are using email addresses then your account is associated with an
>email address. Every email address is a unique account.

This can be achieved through application-layer logic, there's no need 
to make the E-mail string itself a primary key. So, users could log 
in with their OpenID *or* their E-mail address, just like they might 
log in with an OpenID *or* their username local to the site. 
Attackers would not be able to discern associated OpenID's by trying 
to log in with an E-mail address, nor vice versa.

>In this case you can
>associate OpenID with your account only if the OpenID provider provides an
>email address with authentication.

No, sorry, the old ways of doing this still work. I'm logged in, I 
say "I'd like to associate an OpenID with my account.", and they send 
me away treating it as a login (while still retaining our current 
session), and if I return successfully I've just proven that my 
account is associated with that OpenID.

Same method works for E-mail, I receive the message and click a link 
(or copy some value back into their site during my still-active 
session) to confirm that I have requested association with an address 
that is "mine". Note that the OpenID provider won't know my E-mail 
address, even if I had deleted my local username and was only logged 
in through OpenID - the RP knows my address, but the OP doesn't need 
to.

>Trying to do more than what 1) or 2) suggests will lead to complication or
>confusion for users.

I think restricting users to one or the other is what would lead to 
confusion. If you pick 1 then users who instinctively try 2 are 
confused and need to readjust; if you pick 2 then users who 
instinctively try 1 are confused and need to readjust. If you remain 
flexible, letting user actions work *no matter what they try*, users 
will not be confused.

If anyone is going to get confused, it will be the programmers who 
actually have to worry about a technical implementation of this.

-Shade



More information about the general mailing list