How OAuth and portable data can revolutionize your web app - Chris Messina

47
OAuth FTW Chris Messina Future of Web Apps October 10, 2008 London, England How OAuth and portable data can revolutionize your web app (FOR THE WIN)

description

 

Transcript of How OAuth and portable data can revolutionize your web app - Chris Messina

Page 1: How OAuth and portable data can revolutionize your web app - Chris Messina

OAuth FTW

Chris MessinaFuture of Web Apps

October 10, 2008London, England

How OAuth and portable data can revolutionize your web app

(FOR THE WIN)

Page 2: How OAuth and portable data can revolutionize your web app - Chris Messina

OAuth |ō| |ôˌθ|Noun.

An open protocol that allows secure API authorization in a simple and standard method from desktop, web and mobile applications.

Page 3: How OAuth and portable data can revolutionize your web app - Chris Messina

The story of OAuth starts with OpenID.

Page 4: How OAuth and portable data can revolutionize your web app - Chris Messina

factoryjoe.com

Page 5: How OAuth and portable data can revolutionize your web app - Chris Messina

?!X

factoryjoe.com

Page 6: How OAuth and portable data can revolutionize your web app - Chris Messina

!

Page 7: How OAuth and portable data can revolutionize your web app - Chris Messina

Can has OpenID?

? X

factoryjoe.com

Page 8: How OAuth and portable data can revolutionize your web app - Chris Messina

B-b-but what about API apps?

X

(APPLICATION PROGRAMMING INTERFACE)

Page 9: How OAuth and portable data can revolutionize your web app - Chris Messina
Page 10: How OAuth and portable data can revolutionize your web app - Chris Messina

?

Page 11: How OAuth and portable data can revolutionize your web app - Chris Messina

!?!

Page 12: How OAuth and portable data can revolutionize your web app - Chris Messina

How much are your username and password worth?

Page 13: How OAuth and portable data can revolutionize your web app - Chris Messina

wayn.com

Page 14: How OAuth and portable data can revolutionize your web app - Chris Messina
Page 15: How OAuth and portable data can revolutionize your web app - Chris Messina

imeem.com

Page 16: How OAuth and portable data can revolutionize your web app - Chris Messina
Page 17: How OAuth and portable data can revolutionize your web app - Chris Messina
Page 18: How OAuth and portable data can revolutionize your web app - Chris Messina

PC Load Letter?! What the f...!

Page 19: How OAuth and portable data can revolutionize your web app - Chris Messina

The Password Anti-pattern!

Page 20: How OAuth and portable data can revolutionize your web app - Chris Messina

Passwords are not confetti.

Page 21: How OAuth and portable data can revolutionize your web app - Chris Messina

Please stop throwing them around.

Page 22: How OAuth and portable data can revolutionize your web app - Chris Messina

Especially if they’re not yours.

Page 23: How OAuth and portable data can revolutionize your web app - Chris Messina

OAuth replaces the need for usernames and passwords with tokens and a hashing signature.

Page 24: How OAuth and portable data can revolutionize your web app - Chris Messina

let’s take a look

Page 25: How OAuth and portable data can revolutionize your web app - Chris Messina

Brightkite > pings Fire Eagle for Request Token

Fire Eagle > returns authorization realm

Page 26: How OAuth and portable data can revolutionize your web app - Chris Messina

Brightkite > requests that user authorize Brightkite

Fire Eagle > user authenticates through Yahoo! accounts

Page 27: How OAuth and portable data can revolutionize your web app - Chris Messina

Fire Eagle > user grants authorization to Brightkite

Fire Eagle > Fire Eagle redirects user to callback URL

Page 28: How OAuth and portable data can revolutionize your web app - Chris Messina

Brightkite > asks FE to exchange Request Token for Access Token

Fire Eagle > checks signature; if valid, returns Access Token

...subsequent requests are signed with this Access Token

Page 29: How OAuth and portable data can revolutionize your web app - Chris Messina

users can manage access...

Page 30: How OAuth and portable data can revolutionize your web app - Chris Messina

...and change access

Page 31: How OAuth and portable data can revolutionize your web app - Chris Messina

or can revoke access later without having to change their primary account password

(i.e. if they lose their phone or their computer gets stolen)

Page 32: How OAuth and portable data can revolutionize your web app - Chris Messina

?

Page 33: How OAuth and portable data can revolutionize your web app - Chris Messina

discovery

Page 34: How OAuth and portable data can revolutionize your web app - Chris Messina

Identity -› Discovery -› Authorization

Page 35: How OAuth and portable data can revolutionize your web app - Chris Messina

OpenID -› XRDS-Simple -› OAuth Endpoint

(EXTENSIBLE RESOURCE IDENTIFIER RESOLUTION)

Page 36: How OAuth and portable data can revolutionize your web app - Chris Messina

Identity -› Discovery -› [Authentication] -› Authorization

Page 37: How OAuth and portable data can revolutionize your web app - Chris Messina

http://will.norris.name

☟<meta http-equiv="X-XRDS-Location" content="http://will.norris.name/?xrds" />

Page 38: How OAuth and portable data can revolutionize your web app - Chris Messina

OpenID XRDS

<?xml version="1.0" encoding="UTF-8"?><xrds:XRDS xmlns:xrds="xri://$xrds" xmlns:openid="http://openid.net/xmlns/1.0" xmlns="xri://$xrd*($v*2.0)"> <XRD> <Service priority="0"> <Type>http://specs.openid.net/auth/2.0/signon</Type> <Type>http://openid.net/sreg/1.0</Type> <Type>http://openid.net/extensions/sreg/1.1</Type> <Type>http://schemas.openid.net/pape/policies/2007/06/phishing-resistant</Type> <Type>http://schemas.openid.net/pape/policies/2007/06/multi-factor</Type> <Type>http://schemas.openid.net/pape/policies/2007/06/multi-factor-physical</Type> <URI>https://pip.verisignlabs.com/server</URI> <LocalID>https://recordond.pip.verisignlabs.com/</LocalID> </Service> </XRD></xrds:XRDS>

Page 39: How OAuth and portable data can revolutionize your web app - Chris Messina

XRDS-Simple for Portable Contacts

<?xml version="1.0" encoding="UTF-8"?><xrds:XRDS xmlns:xrds="xri://$xrds" xmlns:openid="http://openid.net/xmlns/1.0" xmlns="xri://$xrd*($v*2.0)"> <XRD version="2.0"> <Type>xri://$xrds*simple</Type> <Service> <Type>http://portablecontacts.net/spec/1.0</Type> <URI>http://pulse.plaxo.com/pulse/pdata/contacts</URI> </Service> <Service priority="0"> <Type>http://specs.openid.net/auth/2.0/signon</Type> <Type>http://openid.net/sreg/1.0</Type> <Type>http://openid.net/extensions/sreg/1.1</Type> <Type>http://schemas.openid.net/pape/policies/2007/06/phishing-resistant</Type> <Type>http://openid.net/srv/ax/1.0</Type> <URI>http://www.myopenid.com/server</URI> <LocalID>http://brian.myopenid.com/</LocalID> </Service> </XRD></xrds:XRDS>

Page 40: How OAuth and portable data can revolutionize your web app - Chris Messina

XRDS-Simple for Portable Contacts

<XRD version="2.0"> <Type>xri://$xrds*simple</Type> <Service> <Type>http://portablecontacts.net/spec/1.0</Type> <URI>http://pulse.plaxo.com/pulse/pdata/contacts</URI> </Service> <Service priority="0"> <Type>http://specs.openid.net/auth/2.0/signon</Type> <Type>http://openid.net/sreg/1.0</Type> <Type>http://openid.net/extensions/sreg/1.1</Type> <Type>http://schemas.openid.net/pape/policies/2007/06/... <Type>http://openid.net/srv/ax/1.0</Type>

...

Page 42: How OAuth and portable data can revolutionize your web app - Chris Messina

adoption

Page 43: How OAuth and portable data can revolutionize your web app - Chris Messina

•OpenSocial

•MySpace

•Google

•Yahoo! (Fire Eagle)

•Netflix

•SmugMug

•Photobucket

•Plaxo

•Soocial.com

•Meetup.com

•Ma.gnolia

•Get Satisfaction

•Agree2

•SoundCloud

•88Miles

•Pownce

•Brightkite

•Praized

http://wiki.oauth.net/ServiceProviders

Page 44: How OAuth and portable data can revolutionize your web app - Chris Messina

code

Page 45: How OAuth and portable data can revolutionize your web app - Chris Messina

•C#

•Coldfusion

•Java

•Javascript

•Jifty

•.NET

•Objective-C

•OCaml

•Perl

•PHP

•CakePHP

•Python

•Ruby

•...interest in XMPP

http://oauth.net/code

Page 46: How OAuth and portable data can revolutionize your web app - Chris Messina

the pitch

Page 47: How OAuth and portable data can revolutionize your web app - Chris Messina

fin.

oauth.netme -› factoryjoe.com