Tuesday, March 09, 2010

How to upgrade your Blogger OpenID to a decent one

If you host your blog on Google’s Blogger service you may have discovered that your blog is an OpenID you can use to log into various web sites that act as OpenID relying parties.  But Blogger’s support for OpenID is limited to OpenID 1.1, which is very old and not supported by many relying parties nowadays.

You can upgrade your Blogger hosted OpenID to the new OpenID 2.0 version and log into many more web sites, all while still using your Google account to log in, thanks to Google Profiles.

Here’s how to upgrade your Blogger OpenID to OpenID 2.0:

  1. Create a Google Profiles profile if you haven’t already done so.
  2. Visit http://www.blogger.com/, logging in if necessary.
  3. On the blog you use for an OpenID click Layout.
  4. Click Edit HTML.
  5. In the Edit Template area, add the following HTML within the <HEAD> tag of your template:
    <link rel='openid2.provider' href='https://www.google.com/accounts/o8/ud?source=profiles' /> 
    <link rel='openid2.local_id' href='http://www.google.com/profiles/YOURGOOGLEPROFILE' />
    <link rel='openid.server' href='http://www.blogger.com/openid-server.g' />
  6. Click Save Template.

Once you add OpenID endpoints to your blog, Blogger will automatically deactivate its own OpenID 1.1 support. Since Google Profiles only supports OpenID 2.0 RPs, the above instructions also re-asserts Blogger as the OpenID 1.1 Provider so that 1.1 RPs still work. So what we have is the best of both worlds now.

Thanks to Breno de Medeiros of Google for the tip on how to keep OpenID 1.1 RPs working.

17 comments:

  1. I think you have a typo there:
    <link rel='openid2.provider' href='https://www.google.com/accounts/o8/ud?source=profiles' />

    shouldn't that be "id", not "ud"?

    <link rel='openid2.provider' href='https://www.google.com/accounts/o8/id?source=profiles' />

    ReplyDelete
  2. I get an error "The page you requested is invalid." when I try to authenticate

    ReplyDelete
  3. Mark, it's not a typo. The url ending in "/id" is an "OP Identifier", but this tag takes an "OP Endpoint". For Google, their OP endpoint ends with /ud. So this URL was intentional.

    ReplyDelete
  4. David,

    I looked at your blog (http://david.gardiner.net.au/) and didn't see the tags I outlined so I assume you reverted the change. If you put it back and contact me again, I'll see if I can help you diagnose what's going wrong.

    ReplyDelete
  5. @andrew I'm getting the "The page you requested is invalid." message too. Here is my blogger URL: http://blog.patrickarchibald.com . Do you see anything wrong with it? Thanks, PLA

    ReplyDelete
  6. Sorry, Patrick and David. I had a typo in the HTML tag. I had "openid2.localid" when I should have had "openid2.local_id". I've corrected the snippet in my post. Please make the correction in your blog and let me know how it goes.

    ReplyDelete
  7. @andrew, "openid2.local_id" works! I can once again login to the StackOverflow sites. Thanks! PLA

    ReplyDelete
  8. Using OpenID (blogger) since the first days and I always was able to login to sites supporting OpenID ...

    What happens when I use OpenID 2.0 and try to login to a web page that only supports OpenID 1.1?

    One idea of OpenID is that users are able to login "everywhere" with just one username/password name?

    ReplyDelete
  9. hfrmobile,
    If you add all the tags I outline in this post, 1.1 and 2.0 RPs will all recognize you. You'll still get the one username+password to log in "everywhere".

    ReplyDelete
  10. Thank you, this worked out smooth for me

    ReplyDelete
  11. So close, then I found out profiles isn't part of google apps. :/

    ReplyDelete
  12. This helped me bigtime with logging into Stack Exchange. I'll write a blog post as a testimonial and link to your post.

    thanks!

    ReplyDelete
  13. Andrew,

    Thanks for this nifty little trick. For your information, I have modified your version a little bit to help me connect to OpenID with Google+. You can see my 'updated' version on my blog. As matter of fact, I even mentioned your fine solution on one of my posts. :)

    ReplyDelete
  14. I applied your solution. I also read post of homebiss. Thank you.
    I was committing a mistake. So, it didn't work for some time.
    My blog was not publicly accessible. So, it didn't work.
    As soon as I enabled it's access to public, it worked nicely.

    ReplyDelete
  15. < link rel='openid2.provider' href='https://www.google.com/accounts/o8/ud?source=profiles'
    <link rel='openid2.local_id' href='https://plus.google.com/109325437938682542167/posts'
    <link rel='openid.server' href='http://www.blogger.com/openid-server.g'

    i have place following code in my website http://www.jiwantamang.com.np but the same problem when want to post comment via my url(Your OpenId credential could not be verfied) can i get my solution...

    ReplyDelete
  16. Awesome, now I can log in StackOverflow again!
    Thank you :)

    ReplyDelete
  17. Jiwan,

    I would remove "/posts" from the URL, to start.

    This is what works, for me:

    < link href='https://www.google.com/accounts/o8/ud?source=profiles' rel='openid2.provider'/>
    < link href='http://www.google.com/profiles/114025756997654559499' rel='openid2.local_id'/>
    < link href='http://www.blogger.com/openid-server.g' rel='openid.server'/>

    ReplyDelete