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)

Upload: carsonified-team

Post on 02-Nov-2014

7.207 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

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