openid & oauth for the consumer web workshop, part 1 of 3

133
OpenID & OAuth for the Consumer Web Chris Messina David Primmer Eric Sachs Ping Cloud Identity Summit Keystone, CO July 20, 2010

Upload: chris-messina

Post on 06-May-2015

4.244 views

Category:

Technology


1 download

DESCRIPTION

This is the first 1/3 of a workshop I gave with Eric Sachs and David Primmer of Google at the Cloud Identity Summit. http://www.cloudidentitysummit.com/

TRANSCRIPT

Page 1: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

OpenID & OAuth for the Consumer WebChris MessinaDavid PrimmerEric Sachs

Ping Cloud Identity SummitKeystone, COJuly 20, 2010

Page 2: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Agenda• The Value• The Technology• The Future

• Breakouts

Page 3: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Agenda• The Value• The Technology• The Future

• Breakouts

Page 4: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

The Value

Page 5: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

What

Page 6: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 7: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 8: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 9: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 10: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 11: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 12: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 13: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 14: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 15: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 16: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 18: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 19: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 20: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 21: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 22: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

(Answers that relying parties should care about!)Why support third party auth?

• Who do you want to be, in this context?• Who do you want to hang out with (in this context)?• How can we be instantly relevant and meet your needs

with minimal effort?• What kind of handles and scaffolding can we provide to make it

easier to create social interaction?

22

Page 23: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Why

Page 24: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Plaxo’s 92% Success Story

Page 25: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 26: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Spot the problem?

Page 27: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Second Brain

Page 28: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Evil Bad Brain

Page 29: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 30: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 31: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 32: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 33: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 34: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 35: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 36: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Plaxo’s 92% success story• specially-crafted email to Gmail users• Gmail users likely to have Google profile & address book• one-click sign up and address book import• also requests name, verified email address

Page 37: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Plaxo’s 92% success story• Better for the user: higher success rate with no password anti-

pattern• Better for the provider: Happy users and no automated data

scraping• Better for the site: Higher conversion rate; more informed social

graph

Page 38: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

+ Portable Contacts+

Page 39: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 41: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

As of July 1, 2009

10/05 1/0

64/0

67/0

610

/06 1/07

4/07

7/07

10/07 1/0

84/0

87/0

810

/08 1/09

7/09

0

10,000

20,000

30,000

40,000

50,000

Unique OpenID Relying Parties

Data from Janrain

Page 42: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

1 Billion+ OpenIDs

Page 43: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Janrain

Page 44: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

OpenID Providers on UserVoiceOpenID usage trends (Janrain)

15%8%

10%

33%34%

Google Facebook Yahoo! OtherTwitter

Data from Janrain, May 2010

Page 45: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

OpenID Providers on Interscope RecordsOpenID usage trends (Janrain)

12%

12%

6%

10%

52%

8%

Google Facebook Yahoo! OtherTwitter MySpace

Data from Janrain, May 2010

Page 46: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

OpenID Providers on sulit.com.phOpenID usage trends (Janrain)

1%

64%

10%

24%

Google Facebook Yahoo! Other

Chart from Janrain, January 2009

Page 47: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Sign in preferences across all propertiesOpenID usage trends (Janrain)

5.8%18.9%

13.0%

23.5%

38.8%

GoogleFacebookYahoo!OtherTwitter

(MySpace, Windows Live, AOL, etc)

Data from Janrain, May 2010

Page 48: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Gigya

Page 49: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Sign in preferences across all Gigya propertiesThird-party authentication usage trends (Gigya)

Source: Gigya, June 2010

Page 50: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Sign in preferences across entertainment sitesThird-party authentication usage trends (Gigya)

Source: Gigya, June 2010

Page 51: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Sign in preferences across news sitesThird-party authentication usage trends (Gigya)

Source: Gigya, June 2010

Page 52: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Sign in preferences across B2B sitesThird-party authentication usage trends (Gigya)

Source: Gigya, June 2010

Page 53: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Echo

Page 55: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

What does this tell us?

54

Page 56: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

What does this tell us?

• People use different identities for different purposes

54

Page 57: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

What does this tell us?

• People use different identities for different purposes• Ultimately choice and competition is a good thing to foster in this

early landscape

54

Page 58: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

What does this tell us?

• People use different identities for different purposes• Ultimately choice and competition is a good thing to foster in this

early landscape• Digital identity is in its infancy; it’s too early to pick the winners

54

Page 59: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

What does this tell us?

Basecamp Lady Gaga

Page 60: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 61: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

+

Page 62: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Totals

Janrain

Gigya

Echo OAuth 35%

OpenID 64%

OAuth 62%

OpenID 38%

OAuth 32%

OpenID 48%+

Page 63: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

It’s inevitable

Page 64: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

conversion, convenience, costs

Page 65: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

service

Page 66: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

How

Page 67: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

NASCAR

Page 68: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 69: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 70: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 71: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 73: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Photo by Vaguely Artistic

Page 74: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 75: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 76: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 77: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 78: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 79: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 80: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 81: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 82: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 83: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 84: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 85: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

XAuth

Page 86: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 87: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 88: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 89: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 90: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 91: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

WebFinger

Page 92: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

WebFinger

Page 93: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Discovery for the open webThe Hammer Stack

Page 94: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

How WebFinger works

LookupEmailEnter email:

Page 97: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Discovering a user’s WebFinger profileHow WebFinger works

[email protected]

Page 98: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Discovering a user’s WebFinger profileHow WebFinger works

[email protected]{

domain

Page 99: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Discovering a user’s WebFinger profileHow WebFinger works

[email protected]{

domain

Page 100: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Use host meta to retrieve an LRDD documentHow WebFinger works

$curl http://gmail.com/.well-known/host-meta

Page 101: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Use host meta to retrieve an LRDD documentHow WebFinger works

$curl http://gmail.com/.well-known/host-meta

Page 102: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Use host meta to retrieve an LRDD documentHow WebFinger works

$curl http://gmail.com/.well-known/host-meta

Page 104: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Server returns LRDD documentHow WebFinger works

<?xml version='1.0' encoding='UTF-8'?><XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'      xmlns:hm='http://host-meta.net/xrd/1.0'>  <hm:Host xmlns='http://host-meta.net/xrd/1.0'>gmail.com</hm:Host>  <Link rel='lrdd'         template='http://www.google.com/s2/webfinger/?q={uri}'>    <Title>Resource Descriptor</Title>  </Link></XRD>

Page 105: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Plugin acct: into URI TemplateHow WebFinger works

http://www.google.com/s2/webfinger/?q={uri}

Page 106: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Plugin acct: into URI TemplateHow WebFinger works

http://www.google.com/s2/webfinger/?q={uri}

[email protected]

Page 107: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Plugin acct: into URI TemplateHow WebFinger works

http://www.google.com/s2/webfinger/?q={uri}

acct:[email protected]

Page 108: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Plugin acct: into URI TemplateHow WebFinger works

http://www.google.com/s2/webfinger/?q={uri}acct:[email protected]

Page 109: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Plugin acct: into URI TemplateHow WebFinger works

http://www.google.com/s2/webfinger/?q={uri}acct:[email protected]

Page 110: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Retrieve WebFinger documentHow WebFinger works

$curl http://www.google.com/s2/webfinger/?q=acct:[email protected]

Page 111: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Retrieve WebFinger documentHow WebFinger works

$curl http://www.google.com/s2/webfinger/?q=acct:[email protected]

Page 112: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Retrieve WebFinger documentHow WebFinger works

$curl http://www.google.com/s2/webfinger/?q=acct:[email protected]

Page 113: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

XRD ProfileHow WebFinger works<?xml version='1.0'?><XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'> <Subject>acct:[email protected]</Subject> <Alias>http://www.google.com/profiles/chris.messina</Alias> <Link rel='http://portablecontacts.net/spec/1.0' href='http://www-opensocial.googleusercontent.com/api/people/'/> <Link rel='http://webfinger.net/rel/profile-page' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='http://microformats.org/profile/hcard' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='http://gmpg.org/xfn/11' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='http://specs.openid.net/auth/2.0/provider' href='http://www.google.com/profiles/chris.messina'/> <Link rel='describedby' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='describedby' href='http://s2.googleusercontent.com/webfinger/?q=chris.messina%40gmail.com&amp;fmt=foaf' type='application/rdf+xml'/> <Link rel='http://schemas.google.com/g/2010#updates-from' href='http://buzz.googleapis.com/feeds/102034052532213921839/public/posted' type='application/atom+xml'/></XRD>

Page 114: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

XRD ProfileHow WebFinger works<?xml version='1.0'?><XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'> <Subject>acct:[email protected]</Subject> <Alias>http://www.google.com/profiles/chris.messina</Alias> <Link rel='http://portablecontacts.net/spec/1.0' href='http://www-opensocial.googleusercontent.com/api/people/'/> <Link rel='http://webfinger.net/rel/profile-page' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='http://microformats.org/profile/hcard' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='http://gmpg.org/xfn/11' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='http://specs.openid.net/auth/2.0/provider' href='http://www.google.com/profiles/chris.messina'/> <Link rel='describedby' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='describedby' href='http://s2.googleusercontent.com/webfinger/?q=chris.messina%40gmail.com&amp;fmt=foaf' type='application/rdf+xml'/> <Link rel='http://schemas.google.com/g/2010#updates-from' href='http://buzz.googleapis.com/feeds/102034052532213921839/public/posted' type='application/atom+xml'/></XRD>

Page 115: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 116: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

XRD ProfileHow WebFinger works<?xml version='1.0'?><XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'> <Subject>acct:[email protected]</Subject> <Alias>http://www.google.com/profiles/chris.messina</Alias> <Link rel='http://portablecontacts.net/spec/1.0' href='http://www-opensocial.googleusercontent.com/api/people/'/> <Link rel='http://webfinger.net/rel/profile-page' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='http://microformats.org/profile/hcard' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='http://gmpg.org/xfn/11' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='http://specs.openid.net/auth/2.0/provider' href='http://www.google.com/profiles/chris.messina'/> <Link rel='describedby' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='describedby' href='http://s2.googleusercontent.com/webfinger/?q=chris.messina%40gmail.com&amp;fmt=foaf' type='application/rdf+xml'/> <Link rel='http://schemas.google.com/g/2010#updates-from' href='http://buzz.googleapis.com/feeds/102034052532213921839/public/posted' type='application/atom+xml'/></XRD>

Page 117: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

<?xml version='1.0'?><XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'> <Subject>acct:[email protected]</Subject> <Alias>http://www.google.com/profiles/chris.messina</Alias> <Link rel='http://portablecontacts.net/spec/1.0' href='http://www-opensocial.googleusercontent.com/api/people/'/> <Link rel='http://webfinger.net/rel/profile-page' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='http://microformats.org/profile/hcard' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='http://gmpg.org/xfn/11' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='http://specs.openid.net/auth/2.0/provider' href='http://www.google.com/profiles/chris.messina'/> <Link rel='describedby' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='describedby' href='http://s2.googleusercontent.com/webfinger/?q=chris.messina%40gmail.com&amp;fmt=foaf' type='application/rdf+xml'/> <Link rel='http://schemas.google.com/g/2010#updates-from' href='http://buzz.googleapis.com/feeds/102034052532213921839/public/posted' type='application/atom+xml'/></XRD>

XRD ProfileHow WebFinger works

<Link rel='http://specs.openid.net/auth/2.0/provider' href='http://www.google.com/profiles/chris.messina'/>

Page 118: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Putting it together

ConnectEmailEnter email: Lookup

Making OpenID easier using an email address

Page 119: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Putting it together

ConnectEmailEnter email:

Making OpenID easier using an email address

Page 120: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Putting it together

[email protected] email:

Making OpenID easier using an email address

Page 121: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Putting it together

[email protected] email:

Making OpenID easier using an email address

Page 122: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3
Page 123: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Making OpenID easier using an email addressPutting it together

Signed in as: Chris Messina

Page 124: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Making OpenID easier using an email addressPutting it together

Signed in as: Chris Messina

Page 125: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Connect

Page 126: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

...according to David RecordonThe anatomy of connect

Source O’Reilly Radar.95

Page 127: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

...according to David RecordonThe anatomy of connect

• Profile (identity, accounts, profiles)

Source O’Reilly Radar.95

Page 128: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

...according to David RecordonThe anatomy of connect

• Profile (identity, accounts, profiles)• Relationships (followers, friends, contacts)

Source O’Reilly Radar.95

Page 129: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

...according to David RecordonThe anatomy of connect

• Profile (identity, accounts, profiles)• Relationships (followers, friends, contacts)• Content (posts, photos, videos, links)

Source O’Reilly Radar.95

Page 130: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

...according to David RecordonThe anatomy of connect

• Profile (identity, accounts, profiles)• Relationships (followers, friends, contacts)• Content (posts, photos, videos, links)• Activity (poked, bought, shared, blogged)

Source O’Reilly Radar.95

Page 131: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

...according to David RecordonThe anatomy of connect

• Profile (identity, accounts, profiles)• Relationships (followers, friends, contacts)• Content (posts, photos, videos, links)• Activity (poked, bought, shared, blogged)

Source O’Reilly Radar.

• Goal: Discovery of new people and content

95

Page 132: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

ConnectConnect

Page 133: OpenID & OAuth for the Consumer Web Workshop, Part 1 of 3

Agenda• The Value• The Technology• The Future

• Breakouts