gbl08ma's personal website

Where I write when I'm sufficiently annoyed not to write code

  • Casio Prizm software
  • Music I like
  • Contact me
  • PGP public key

A closer look at OpenID, and the problems in its implementations

December 27, 2011 / gbl08ma / 0 Comments

Do you remember the OpenID standard, that aims to describe “how users can be authenticated in a decentralized manner, eliminating the need for services to provide their own ad hoc systems and allowing users to consolidate their digital identities.”? Well, if you happen to frequently authenticate on a service or website that supports it, or if you happen to run or maintain one of these websites or services, most likely you remember. But the surprising part is, OpenID is used in more things than you can imagine.

Till some time ago, I don’t recall seeing much opportunity for logging in with an OpenID – except on the websites of the ID provider themselves. The first OpenID authentication method I recall using was using Twitter IDs, although in that case I could as well have used  Google or Facebook. But people use OpenID without actually recognizing it as an implementation of that standard. Yes, OpenID is that “Login with Facebook” or “Login with Twitter” thing. These login methods are usually just not (visibly) branded as being OpenID.

So basically, that represents a win for OpenID, right? Well, in theory yes, but my opinion is different. While many websites carry out OpenID in such a way that it is comfortable for every user, others simply don’t. What do I call a “comfortable usage” of OpenID? An implementation of the standard in such a way that it allows you to choose the ID you want to use. Eventually, it also lets you not use OpenID, through the creation and authentication of a traditional account, where the chosen authentication parameters are isolated to the website or service in question, like we’ve seen before the OpenID boom.

This “comfortable implementation” fits the most users I can think of: by assuring authentication using accounts on the most popular OpenID providers, such as Google, WordPress and Facebook, and using simpler, standalone (i.e. not tied to any service in particular) and/or less-known providers such as chi.mp, claimID and myOpenID, the chances of the person willing to be authenticated having an ID with one of the providers supported is way bigger. But because not everyone likes the OpenID idea, or they might simply not have a registered account with one of the IDs supported, an additional “traditional” authentication method should also be provided, so people can create an account with the website or service in question, and not tie that account with an OpenID.

The advantages of what I call a “comfortable implementation” are very noticeable in my opinion: it increases the user base of a website, since if people find it easy to login with an account they already have on other service, it’s very likely they’ll login on that website. It also makes the act of engaging with the website a breeze, because people don’t need to go over the hassle of maintaining yet another user/password combination, there is no signup form, captcha or email validation. While this may change depending on the OpenID provider and on the service or website implementing OpenID authentication, in most situations the OpenID login process is easier. We just got to recognize another advantage: if users find registering and logging in easier, the website or service will not only get more users, as it will have its users more satisfied. As I said, for the user there’s not the hassle of not remembering the specific password and having to reset it, and for the website management, there can be also a reduction in the number of support requests, assuming OpenID is properly implemented. All I did here was point some of the advantages of OpenID, but it can also have a lot of disadvantages when its implementation is not so comfortable for the user.

A website that I remember having a proper implementation of open IDs is Blogger, at least when posting a comment on a blog – it allows you to choose which profile you want to comment under, from a Twitter, WordPress or Google account to a OpenID, discussed here.

But what is an “uncomfortable implementation”? From my point of view, OpenID can become a very negative thing if, for example, the website the user’s tying to authenticate to doesn’t offer the ID provider on which the user has an account. It is also possible that an OpenID implementation fits most, but not all. A very clear evidence of this problem is given with websites that offer “Login with Facebook” as their only authentication method – I don’t think this can be called an OpenID implementation, even though Facebook is an OpenID provider. But why is this a problem? People just start based on the premise that all the internet users have a Facebook account. False. I can illustrate this with personal situations… it’s not happened once nor twice, but dozens of times: *le me browsing the ‘net*, *le me finds a website he likes*, *thinks he should signup*, *looks for the signup link*… oh crap, looks like all we get is this:

Call me stupid, “forever alone”, or whatever you want: I might even have a Facebook account, but I may not use it and even if I do, I don’t want all dozens of websites being authenticated with that s*ht Facebook is, and eventually with these websites being able to post to my Facebook wall, access my status, photos or other things “normal” people put on Facebook.

I’m giving this example for Facebook, but the problem goes for other ID providers. There are websites that support open IDs, and a few even say they support OpenID (the standard), but then you’re presented with a “Login with XYX” link where XYX is a single ID provider of their liking. Sometimes you’re lucky enough and you have an ID from this provider, other times you just need to go registering for yet another ID, defeating all the purpose of open identification and OpenID.

Although, there are cases where requiring a login with a specific service is mandatory. For example, on services that are dedicated to changing your Twitter profile background with a generated one, a Twitter account is of course required, so a Twitter-only login makes all sense. Same goes for Google/Blogger/Facebook/WordPress dedicated services, but please, if it’s not required to be tied into a specific service, then just let people use whatever ID provider they want, or provide a traditional signup and login method. Else, open authentication and OpenID might become hassles that drive users away.

Other things can be discussed about OpenID – I can argue that it is unsafer than traditional user/password logins, because if the OpenID provider gets cracked and authentication information gets exposed, then all the accounts authenticated with OpenID on other websites are open to the crackers – much like an user that always uses the same password and username on multiple websites. We can also discuss about these shiny buttons provided by social networks and the like, that allow you to authenticate using your account on them, to “like” or to “share” posts – these are used for user tracking, and seeing what the crowd likes, helping on creating even more directed advertising. There are plugins that block these trackers, and usually some hosts file or iptable rules work well, fortunately (if you don’t use the service from which the shiny trackers are coming).

I do not represent the OpenID foundation, Facebook, Google, Twitter or other OpenID provider. I am not encouraging their use or otherwise; I’m just exposing my very irrelevant opinion on the subject. If you spot any factual or spelling mistake, please contact me or comment below. Thanks for spending some minutes of your life reading this post!

I'm a software developer who is presently mostly focused on backend work, using Go and other typical tools of the trade, at a mid-sized startup in its late stage. My interests include cybersecurity, programming language design, open source software, game modding and music making.

Previously, I used to make software and services for the web, Android, and embedded systems, including UI design and frontend work. I worked with multiple technology stacks, including quite obscure ones, and sometimes dabbled into reverse-engineering too. Under the rule of a diminishing function whose inputs include "free time" and "motivation," I still try to do some of that.

My views don't represent those of my employer, even if, during working hours, they definitely align, as mandated by common decency and the applicable employee handbook. Please, HR and legal: there is no need to look any further.

This is my long archive of random posts dating back to my teenage years, back when I wasn't really qualified to build many of the things I did - and yet I sometimes succeeded.

You may want to look at my (quite outdated) portfolio-like website, or follow me on BlueSky.

My Websites

tny.im shortener

Perturbações.pt

Clouttery

TNY network

Recent Posts

  • On paid public beta testing
  • I remade the GTA VI trailer in Watch Dogs
  • Musings about Watch Dogs
  • The Appeal To Celebrity Fallacy
  • TIME for a WTF MySQL moment

Recent Comments

  • gbl08ma on Advice on Casio Prizm development
  • ECE student on Advice on Casio Prizm development
  • C on Developing for Android is like being a (demonetized) YouTuber
  • “Android is open source” is the joke of the year – jan.schnasse on Developing for Android is like being a (demonetized) YouTuber
  • iOS Dev 2008 on Developing for Android is like being a (demonetized) YouTuber

Archives

  • February 2025
  • December 2023
  • July 2022
  • December 2020
  • October 2020
  • September 2020
  • August 2020
  • April 2020
  • March 2019
  • August 2018
  • April 2018
  • March 2018
  • January 2018
  • December 2017
  • October 2017
  • September 2017
  • February 2017
  • December 2016
  • September 2016
  • June 2016
  • August 2015
  • July 2015
  • May 2015
  • March 2015
  • February 2015
  • January 2015
  • September 2014
  • June 2014
  • May 2014
  • April 2014
  • March 2014
  • January 2014
  • December 2013
  • November 2013
  • September 2013
  • August 2013
  • July 2013
  • June 2013
  • March 2013
  • February 2013
  • November 2012
  • September 2012
  • August 2012
  • July 2012
  • June 2012
  • May 2012
  • April 2012
  • March 2012
  • February 2012
  • January 2012
  • December 2011
  • November 2011
  • October 2011
  • September 2011
  • August 2011
  • July 2011
  • June 2011
  • May 2011
  • April 2011

Categories

  • Android
  • Calculators
  • Domain services
  • Embedded
  • Embedded
  • Free Domain services
  • Free Web Hosting
  • Hardware
  • Linux
  • My Servers
  • My websites
  • Open Source
  • Patents
  • Payment services
  • Personal
  • Raspberry Pi
  • Social Networks
  • Software
  • Tablets/pads
  • The Web
  • Uncategorized
  • UnderLX
  • Web Development
  • Web Scripts and Development
  • Websites I support
  • Wii
  • Windows
  • Windows Mobile
  • WordPress/This website
  • Your Rights Online

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

gbl08ma's personal website • Finch Theme (with modifications)

Text on this website is, except otherwise noted, licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported license.