Oauth, OpenID, Facebook Connect: Authentication Design Best Practices

Designer
Mar. 15, 2011
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
Oauth, OpenID, Facebook Connect: Authentication Design Best Practices
1 of 48

More Related Content

Recently uploaded

BuilderAI Proposal_MalesniakBuilderAI Proposal_Malesniak
BuilderAI Proposal_MalesniakMichael Lesniak
EuroBSDCon 2023 - (auto)Installing BSD Systems - Cases using pfSense, TrueNAS...EuroBSDCon 2023 - (auto)Installing BSD Systems - Cases using pfSense, TrueNAS...
EuroBSDCon 2023 - (auto)Installing BSD Systems - Cases using pfSense, TrueNAS...Vinícius Zavam
Webhook Testing StrategyWebhook Testing Strategy
Webhook Testing StrategyDimpy Adhikary
Demystifying ML/AIDemystifying ML/AI
Demystifying ML/AIMatthew Reynolds
Unleashing Innovation: IoT Project with MicroPythonUnleashing Innovation: IoT Project with MicroPython
Unleashing Innovation: IoT Project with MicroPythonVubon Roy
Future of SkillsFuture of Skills
Future of SkillsAlison B. Lowndes

Recently uploaded(20)

Featured

Introduction to Data ScienceIntroduction to Data Science
Introduction to Data ScienceChristy Abraham Joy
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter

Featured(20)

Oauth, OpenID, Facebook Connect: Authentication Design Best Practices

Editor's Notes

  1. \n
  2. I'm James Reffell. I'm a designer. I live in San Francisco, near the beach. \n\n
  3. I’ve designed for big web companies, and one little startup called Usable Security. We got acquired by a bigger (but not very big) security software company, Webroot, which was cool.\n
  4. At the startup we had a goal and an ideology. The goal: make security software usable by normal people. The ideology: if you can’t use it, it’s not secure. There is no trade-off between security and usability. That’s false. This is true in the physical world: the easier your bike lock is to get on and off, the more you will use it.\n
  5. This talk is about authentication. The technical details of authentication, and especially the security aspects, are very important. But I’m a designer, and I have an ideology. I worry most about what users experience. And what they experience is ...\n
  6. \nLogging in to stuff (so you can do things). Being logged in to stuff (and doing things). Logging out of stuff (because you want to stop doing things). You and I may know there’s more to it, but to most people this is authentication. It’s also changing. \n\n
  7. Now it also includes 3rd party authentication. OAuth. Facebook Connect. Open ID. These are the underlying technologies. Logging in to one site to do something on another site, or to pass data between two sites, or something similar. That’s what I’m going to talk about today. \n
  8. Here’s what I’m going to cover: a historical digression, then a spooky story, some things about people you should know, and then some meat about designing 3rd party authentication. The good and the bad.\n
  9. But first, a digression! Ever wondered where we get the phrases “log in”? We’ve used it since at least the ‘60s for terminal machines. \n
  10. It was adapted from the general sense of logging = recording and logbooks, which came from the narrower use of logging ship activity, and more specifically speed. And how do you measure speed?\n
  11. With a log! Attached to a knotted rope. Which you throw overboard and time how many knots go by for a set period of time. So, when you next log in, think about big hunks of wood being thrown overboard.\n
  12. Now, it’s time for a spooky story. Once upon a time ...\n
  13. There was a little blog called ReadWriteWeb. (Think you already know this story? Hold on. This is the spooky version.) This was a popular article, got a lot of attention.\n
  14. So popular it became the top result for the search query “facebook login”. Which as it turns out, a lot of people were using as a way to navigate to Facebook. (This is pretty normal, btw. Lot’s of people use search for navigation. )\n\n\n
  15. So folks looking for this ...\n\n
  16. ... instead saw this, and freaked out. Many of those people probably exited and did something else. But some people were convinced this was Facebook. So the dedicated looked for some way to log in.\n
  17. Which led to a whole bunch of people posting comments complaining about how they couldn’t log into Facebook. And in some cases complaining about Facebook’s redesign. Now, let’s quickly move past the “silly users” reaction to the “gee, we need to do better helping our users” reaction. But there’s something else, too. Let’s look at those comments again. Those are Facebook pictures. And full names (which I’ve blurred). \n
  18. That’s because -- assuming they weren’t already logged in to Facebook -- they saw something like this. This is a Facebook Connect dialog. (Or what it used to look like.) These users logged into Facebook. Just not in the way they expected.But they didn’t REALLY succeed, because they probably don’t know what happened.\n
  19. And that’s the spooky part. OK, it’s not quite “They’re coming from inside the house!”. And all the participants here are benign. \n
  20. Because, of course, they’ve just tied their Facebook identity, with what is probably their real name, to a comment on a blog they’d never heard of today. And that blog is now an authorized app for their Facebook account. Luckily it’s the nice folks at RWW and not someone sketchy, right? \n
  21. Spooky stories usually have a moral. Here’s one. Lots of people were only barely hanging on by their fingertips to the that model where there was a domain, and you logged in to that domain so you could do stuff on that domain. And now we’re building new models. So, before using those new models, take some time to reflect.\n
  22. The Internet is made of people. We can lose sight of that when making things, especially around security. We plan for people to use our products in one way, and then they do different things. They break our models. That’s true of the old model for authentication; it’s equally true of newer ones. So let’s talk a little about things people do.\n
  23. People share computers. We don't always allow for this when we design software, but they do. Great Microsoft study showed 95% of homes had at least one shared computer, and 45% of computers were shared. OS profile use common but not universal. Other devices? We think of phones as individual devices, but watch teenagers. And tablets are the best shared devices yet ...\n
  24. People share accounts. Which means they share passwords. eBay history: eBay, of course, has some very large businesses selling on it. But for YEARS, we'd get complaints from account owners, who might have a dozen employees using a single account, and were worried that one disgruntled employee could take down their entire business. But even outside of business this happens. Families, close groups of friends.\n
  25. NY Times article. A bunch of kids all change their names in Facebook. In this case, with a Russian Literature theme. Why? To be cute, but also to avoid college recruiters, who they are convinced troll FB for information on them during college application season. No harm to their social life, their friends all recognize them. \n
  26. Techcrunch poll: 38% of Twitter users have 2 or more acocunts. Unlike Facebook, Twitter is totally fine with that. Google is experimenting with letting you be logged in to more than one account at a time -- but I’ve never seen a company launch a feature it was so terrified of. Check out all the warnings you have to step through!\n
  27. Wonderful Microsoft Research paper by Dinei Florencio and Cormac Herley. The average password was used at around 6 sites. There was a correlation between password strength and reuse. Some of you may have been Gawkered. And before the security scold in the audience get started ... \n
  28. Another paper by Herley did an economic model of the cost of following certain kinds of security advice versus the possible risks associated with NOT following the advice. Estimated cost of phishing: $90 million. Estimated cost of following anti-phishing advice: $15.9 billion. Similarly, reusing passwords is rational.\n
  29. OK, so that’s people. Now let’s go back to 3rd party authentication. There are a lot of threads -- OpenID was chugging along, but often not in a form most people would get (URLS). Suddenly data exchange (and piggy-back apps) started asking for full credentials -- accounts & passwords. THIS WAS BAD. So some folks got together and built OAuth, Twitter adopted it, FB did their own thing but then adopted the in-progress OAuth 2 ... \n
  30. \n
  31. More users. More traffic. More signups. If you’ve ever designed a signup flow or a checkout flow, you know they’re a huge source of friction. Remove that friction, more people. I wish I had mass numbers, but the anecdata here are great. Registration: sites that use Facebook Connect as an alternate to account registration have seen a 30-200% increase in registration on their sites. PayPal Express -- not OAuthm but still 3rd party authentication --bumped sales for it’s sites an average of 18%.\n
  32. Benefit #2. This is related. You don’t just reduce friction for the initial experience. You can reduce it for the ongoing. Fewer passwords to remember. Outsource your “forgot password” flow to Facebook. This can help your users, but it also can help you build your app faster. Software is an iceberg!\n
  33. Benefit #3. Data. This is the one people concentrate on. Different sites give you different data in different ways: email addresses, social graph, birthdays, ability to post, all the rest. It’s a big deal.\n
  34. Drawback #1. Confusion. This is a tech-world example, but Techcrunch added Facebook-powered comments. It’s kind of cool, b/c you choose between identity providers. Choice is good! Until you end up logging in to Techcrunch with your Facebook ID with your Yahoo ID. That doesn’t even make sense when I say it.\n
  35. The more 3rd party services you use for critical infrastructure, the more you’re at their mercy. Downtime, policy changes etc.. Let’s take downtime. Facebook has amazing uptime, probably better than yours, but if you’re relying on them to handle your authentication, you now have theirs plus yours. And there’s nothing you can do.\n
  36. Lack of user control. Don’t worry, this isn’t real, a fellow named Zach Holman mocked this up to point out how the current all-or-nothing permission standard can hurt users. Though, usually not this dramatically. WOuldn’t it be nice to be able to uncheck “murder your children”?\nDrawback #4. Lack of control (user). Kill your chldren.\n\n
  37. Drawback #3. Inappropriate audiences. So presenting too many choices to your user is probably bad, but presenting one bad choice is probably worse. Do I really want my Facebook account, with all my personal data, connected with a site that does professional reviews? No, I do not.\n
  38. \n
  39. Services will change the rules on you. Think Apple and their new subscription model which freaked a lot of developers out. You can’t plan for everything, but you can have a backup plan. And the most important thing is get their email address. Then, whatever happens, you can talk to them and make adjustments.\n
  40. Few, appropriate choices. If your audience is social & doesn’t mind their real names associated with your stuff, Facebook might make sense. If you’ve got lawyers, maybe pick something that doesn’t connect with party pictures. If you’ve got activists, maybe pick something that doesn’t require real names,\n
  41. Handle exceptions well. What happens if Facebook goes down? What happens if someone signs up with Twitter on one machine and then facebook on another -- can you somehow figure that out and merge the accounts? The more 3rd party services you support, the more use cases you’re going to have to cover.\n
  42. Get the data you need ... but don’t be a data hog. OK, Instagram only wants three things. All of them make sense given what I would use it for. Quora -- I love Quora, but why does it want to know about my family? Why does it want my videos? Creepy!\n
  43. That wraps the practical part of my talk. There’s innovation and exciting technical stuff going on right now, but if you’re a designer or developer and you’re building something for a general audience right now, you should totally ignore any of it until it’s been tried, tested vetted, beaten on, etc. In that spirit I’ve tried to stick to facts -- or at least fact-like anecdotes -- so far, and leave out the opinionating and rank speculation. But this is SXSW! And it looks like I’ve got about 10 minutes left. So here goes.\n
  44. We are in the process of moving from one model of online identity to another. The old model -- accounts for a single domain, usernames, passwords, etc. -- has been in place since the birth of the Internet, and if you squint, since we’ve had networked devices. And right now, today, it is still the primary model. We do NOT know what new model we are moving towards. We know some pieces. We can identify some tensions around which the new model will be formed. But it has not been decided, and we are probably some of the people who will decide it, through what we choose to adopt, support, build for, etc. No pressure.\n
  45. \n
  46. \n
  47. \n
  48. \n