So I'm interested to get a feel on what peoples current thinking is around authentication on a new web application and how they have handled it? There are numerous choices as I've mentioned in the title and it seems there is no real guidance on which (if any) is the most suitable for new applications?
I can the see the appeal of rolling your own auth system in terms of obviously you get to control it, however if I go across to the other side of the fence as a user, I have more and more epectation that I shouldn't have to sign up for a n other account if I have for example a hotmail or facebook account and if I site makes me then I may see that as a barrier to entry! Should we as developers of applications be supporting multiple authentication scenarios or can something like openID really be the webs single sign on?
Thoughts?
I implemented all of the SSOs: Live, Facebook, Yahoo (pre-oid), AOL (+ICQ/OpenAuth), plus OpenID, but then the sign in page is a disaster. I felt like it was just as hard for the user to remember which sign on service they had used the first time as to remember the username and password that they'd used. You also only get a GUID back from the SSO (for most of them), so you can't "help" other than by keeping them signed in via cookie for as long as possible.
So, then I went to just OpenID (since openid.yahoo.com), with a customized signup thing on myOpenID. But despite the best efforts of everyone, no one really cares about OpenID and "most users" don't have an OpenID, or if they do, they don't remember that they do. Of course, this depends on your target audience.
If you don't need any more information than username/password to get started then most people seem to be most comfortable with having a dumb [login(user/pass)] [register(user/pass1/pass2)]. They'll use one of the 2-3 other usernames they use in other places, and one of the 2-3 passwords they use everywhere else, and it'll suck, but they'll be logged in and you won't have lost a user to simple confusion.
So personally, I'm going with roll your own + a tiny little link to an OpenID sign in page.
Incidentally, Live is the best SSO user experience, imo (though a PITA to implement) if you felt like just picking one big one and going with it.