SlideShare a Scribd company logo
OAuth: Open Standard for Sharing
       #OpenWebTO - June 1st, 2010
the problem
Introduction to OAuth
Introduction to OAuth
password anti-pattern
Introduction to OAuth
Sharing without passwords.
Sites exchange user authorized tokens.
Tokens can be revoked.
Tokens can be scoped.
Tokens can be time-limited.
Introduction to OAuth
Terminology has changed a lot.
 These slides are old school.
Introduction to OAuth
some history
  12/07 - OAuth 1.0
  06/08 - OAuth 1.0a
  11/09 - OAuth WRAP
  03/10 - OAuth 2.0 Draft 1
  04/10 - RFC 5849
  05/10 - OpenID Connect
OAuth 1.0a addresses a session fixation vulnerability discovered in the
                           original spec.
Step 1. Attacker initiates OAuth authorization
Step 2. Tricks victim into visiting authorization URI specially crafted for
          nefarious purposes (attacker specifies the callback).
Step 3. User enters their credentials at the authorization page,
unwittingly authorizing the attacker's request token. User is redirected to
                    a URI determined by the attacker.
Step 4. Attacker completes the OAuth workflow. Has access to the victim's
                          protected resources.
Step 5. $$$
The Result
  Inconsistent implementations.

  Different fixes for older providers.
  Be aware.
OAuth 1.0a Protocol Overview
Introduction to OAuth
Endpoint URIs
  Request Token URL

  User Authorization URL
  Access Token URL
Request a Request Token
Example: Twitter
                                                    Request:

POST /oauth/request HTTP/1.1
Host: local.eval.ca:8000
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3
...
Content-Type: application/x-www-form-urlencoded
Authorization: OAuth realm="", oauth_nonce="79013965", oauth_timestamp="1275364485",
  oauth_consumer_key="TgF80q20x4j4kPRTiYJOXQ", oauth_signature_method="HMAC-SHA1",
  oauth_version="1.0", oauth_signature="PmA%2FUWGZSN%2B%2FYZ0ak4yHAtT7in8%3D"




                                                   Response:

oauth_token=ZABxRSmYFX9oLsZOTfMbYlDXldtKuVARFkjfPjsJbT0&
  oauth_token_secret=YGgcxX60kCHyoGiO2LhE0gfWXxZyJQnfBzpp64djykU
Example: FreshBooks
                                                    Request:

Authorization: OAuth realm="", oauth_nonce="92490670", oauth_timestamp="1275365018",
  oauth_consumer_key="oauthprovider", oauth_signature_method="PLAINTEXT",
  oauth_version="1.0", oauth_signature="mVASHE5wd8MiyJYYyRhpCpLVtfAyjm7qS%26",
oauth_callback="http%3A%2F%2Flocal.eval.ca%3A8000%2Foauth%2Fcallback%2F"




                                                   Response:

oauth_token=YzjQJppbHMuSL2bwSCvysH6vDtmV6R7r2&
  oauth_token_secret=gFYjmhWZawhRdXzE4hpLeFtQR4B72znAh&
  oauth_callback_confirmed=true
Redirect user to Authorization URI
                                               Twitter:

http://twitter.com/oauth/authorize?oauth_token=UVENq7xUrdkE5dVu8AdrG1oETE3EMb5LVaUXZp0Nsy8




                                            FreshBooks:

https://subdomain.freshbooks.com/oauth/oauth_authorize.php?oauth_token=UVENq7xUrdkE5dVu8AdrG1oETE3EMb5LVaUXZp0Nsy8
Handle Callback
                                                    Twitter:

http://yourapp.com/oauth/callback?oauth_token=UVENq7xUrdkE5dVu8AdrG1oETE3EMb5LVaUXZp0Nsy8




                                                 FreshBooks:

http://yourapp.com/oauth/callback?oauth_token=UVENq7xUrdkE5dVu8AdrG1oETE3EMb5LVaUXZp0Nsy8
   &oauth_verifier=zzUWbPe1nOYkG9dzb8nm9X7t6gzbjW4l9kIAeRLQs
Exchange authorized Request
   Token for Access Token
Example: Twitter
                                                    Request:

Authorization: OAuth realm="", oauth_nonce="83131550", oauth_timestamp="1275364497",
  oauth_consumer_key="TgF80q21yvq4kPRWiYJOXQ", oauth_signature_method="HMAC-SHA1", oauth_version="1.0",
  oauth_token="ZABxRSmYFX9oLsZOTfMbYlDXldtKuVARFkjfPjsJbT0",
  oauth_signature="K1J5Q7TgU2S81FDLcDHrscRazGM%3D"




                                                   Response:

oauth_token=149686823-pX5PrnZ0bus8r7bzaA1tGlp3qQgud96eueauIioo&
 oauth_token_secret=BWZ5riq707pP4gpb8dRguD2NmhSiHt7XdA1O99YGGI&
  user_id=149686823&screen_name=freshnotifydemo
Example: FreshBooks
                                                    Request:

Authorization: OAuth realm="", oauth_nonce="56679057", oauth_timestamp="1275365024",
  oauth_signature_method="PLAINTEXT", oauth_consumer_key="oauthprovider",
  oauth_verifier="uuiDvKeqk3NX4P4wYvtYiPQdt9J5dB4sr", oauth_version="1.0",
  oauth_token="YzjQJppbHMuSL2bwSCvysH6vDtmV6R7r2",
  oauth_signature="mVASHE5wd8MiyJYYyRhpCpLVtfAyjm7qS%26gFYjmhWZawhRdXzE4hpLeFtQR4B72znAh"




                                                   Response:

oauth_token=yF53TK3Ya6eQdWPNWLuZZTviHWZaKXLrh&oauth_token_secret=UCrmxWriVsyD69URtQd6u7NQxFhiTpXBW
Accessing a Protected Resource
Example: Twitter
                                                  Request:

   POST /1/statuses/update.json HTTP/1.1
   ...
   Content-Type: application/x-www-form-urlencoded
   Authorization: OAuth realm="", oauth_nonce="46002159", oauth_timestamp="1275366995",
oauth_consumer_key="TgF80q21yvq4kPRWiYJOXQ", oauth_signature_method="HMAC-SHA1", oauth_version="1.0",
oauth_token="149686823-pX5PrnZ0bus8r7bzaA1tGlp3qQgud96eueauIioo",
oauth_signature="bfvQGgVVL8EQ15KiGKN8WQHVhts%3D"

   status=Ohai.




                                                 Response:

   { a lot of JSON }
Example: FreshBooks
                                                  Request:

   POST /api/2.1/xml-in HTTP/1.1
   ...
   Content-Type: application/xml
   Authorization: OAuth realm="", oauth_nonce="56679057", oauth_timestamp="1275365024",
oauth_signature_method="PLAINTEXT", oauth_consumer_key="oauthprovider",
oauth_verifier="uuiDvKeqk3NX4P4wYvtYiPQdt9J5dB4sr", oauth_version="1.0",
oauth_token="YzjQJppbHMuSL2bwSCvysH6vDtmV6R7r2",
oauth_signature="mVASHE5wd8MiyJYYyRhpCpLVtfAyjm7qS%26gFYjmhWZawhRdXzE4hpLeFtQR4B72znAh"

   <request method="invoice.list" />




                                                 Response:

   <response status="ok">
     A bunch of XML
   </response>
Common Questions
What about Desktop & Mobile applications?

     What the heck is OAuth WRAP?
What does OAuth have to do with OpenID?
        What is up with OAuth 2?
OAuth 2.0
Problems with OAuth 1.0
     Complex cryptographic requirements
   Poor user experience for desktop / mobile

             Performance at scale
OAuth 2.0
OAuth 2.0 defines authorization flows.

         User Delegation Flows
        Direct Credentials Flows
           Autonomous Flows
User Delegation Flows
       User-Agent Flow
       Web Server Flow

         Device Flow
Direct credentials Flows
      Username and Password Flow
        Client Credentials Flow
Autonomous flows:
      Assertion Flow
OAuth 2.0
        Bearer tokens over SSL
          Simpler signatures
 Short lived tokens with refresh tokens
Authorization server and resource server
Progress
OAuth 2.0 is currently in its 5th version of an IETF Draft.
There are implementations in the wild including Facebook, 37 Signals
                            and Github.
There are Objective C, Python and Ruby libraries available with varying
                       degrees of completeness.
So things are looking good, but as always when working with something
                               this new...
Introduction to OAuth
Resources
  http://oauth.net/
  http://tools.ietf.org/html/rfc5849
  http://hueniverse.com/oauth/

  http://tools.ietf.org/html/draft-ietf-oauth-v2-07
Introduction to OAuth
thank you!
  Paul Osman

  paul@eval.ca

More Related Content

PPTX
PDF
Authorization with oAuth
PDF
Building a Microgateway in Ballerina_KubeCon 2108
PDF
Demystifying OAuth 2.0
PDF
OAuth 2.0
PDF
Building an API Security Ecosystem
PPTX
An introduction to OAuth 2
PPTX
REST Service Authetication with TLS & JWTs
Authorization with oAuth
Building a Microgateway in Ballerina_KubeCon 2108
Demystifying OAuth 2.0
OAuth 2.0
Building an API Security Ecosystem
An introduction to OAuth 2
REST Service Authetication with TLS & JWTs

What's hot (19)

PDF
OAuth2
PDF
OAuth 2.0 and Library
PPTX
An Introduction to OAuth2
PDF
What the Heck is OAuth and Open ID Connect? - UberConf 2017
PPTX
Securing RESTful APIs using OAuth 2 and OpenID Connect
PPTX
Token Based Authentication Systems with AngularJS & NodeJS
PPTX
Single-Page-Application & REST security
PDF
Implementing OAuth
PDF
2016 pycontw web api authentication
PPTX
Adding Identity Management and Access Control to your Application, Authorization
PDF
Pushed Authorization Requests
ODP
OAuth2 - Introduction
PDF
Rich Authorization Requests
PDF
iMasters Intercon 2016 - Identity within Microservices
PDF
Yevhen Teleshyk - OAuth Phishing
PPTX
Pentest Expectations
PPTX
JWT Authentication with AngularJS
PPTX
OAuth2 + API Security
PDF
ConFoo 2015 - Securing RESTful resources with OAuth2
OAuth2
OAuth 2.0 and Library
An Introduction to OAuth2
What the Heck is OAuth and Open ID Connect? - UberConf 2017
Securing RESTful APIs using OAuth 2 and OpenID Connect
Token Based Authentication Systems with AngularJS & NodeJS
Single-Page-Application & REST security
Implementing OAuth
2016 pycontw web api authentication
Adding Identity Management and Access Control to your Application, Authorization
Pushed Authorization Requests
OAuth2 - Introduction
Rich Authorization Requests
iMasters Intercon 2016 - Identity within Microservices
Yevhen Teleshyk - OAuth Phishing
Pentest Expectations
JWT Authentication with AngularJS
OAuth2 + API Security
ConFoo 2015 - Securing RESTful resources with OAuth2
Ad

Viewers also liked (20)

PPT
Cultural diff
PPS
30種快樂的方式
PPTX
Isoiec Guide 65 Ias Ac 370 General Overview
PDF
Infrastrutture prioritarie __calabria[1]
PPTX
Robinson bosc2010 bio_hdf
PPTX
Chapter 7 Presentation
PDF
Hemmerich bosc2010 isga_ergatis
PPTX
Teaser Fontein visie huisgroepen 2010/2011
PPT
Cocre art meeting ceuta
PDF
Bonnal bosc2010 bio_ruby
PPTX
안드로이드스터디 6
DOC
Marcellus Shale
PPTX
Yahoo mobile & broadcast surround
PPTX
PPTX
NRTEE: Pierre Lundahl
PPTX
Closing Panel: Jane Comeault
PPTX
4 scenarios voor de toekomst van bibliotheken
PPTX
NRTEE: Kirsten Vice
PDF
PDF
Identityworks
Cultural diff
30種快樂的方式
Isoiec Guide 65 Ias Ac 370 General Overview
Infrastrutture prioritarie __calabria[1]
Robinson bosc2010 bio_hdf
Chapter 7 Presentation
Hemmerich bosc2010 isga_ergatis
Teaser Fontein visie huisgroepen 2010/2011
Cocre art meeting ceuta
Bonnal bosc2010 bio_ruby
안드로이드스터디 6
Marcellus Shale
Yahoo mobile & broadcast surround
NRTEE: Pierre Lundahl
Closing Panel: Jane Comeault
4 scenarios voor de toekomst van bibliotheken
NRTEE: Kirsten Vice
Identityworks
Ad

Similar to Introduction to OAuth (20)

PPTX
OAuth 2 at Webvisions
PDF
InterCon 2016 - Segurança de identidade digital levando em consideração uma a...
PDF
[LDAPCon 2015] The OpenID Connect Protocol
PDF
The Current State of OAuth 2
PPTX
Demystifying REST
PDF
OAuth2 Authentication
PDF
O auth how_to
PPT
UserCentric Identity based Service Invocation
PDF
OAuth簡介
PDF
OAuth 2.0 – A standard is coming of age by Uwe Friedrichsen
PPTX
An Introduction to OAuth 2
PPTX
REST API Security: OAuth 2.0, JWTs, and More!
PDF
Nk API - examples
PDF
Secure Webservices
PDF
Some OAuth love
PDF
What the Heck is OAuth and OIDC - UberConf 2018
PDF
アプリ開発で知っておきたい認証技術 - OAuth 1.0 + OAuth 2.0 + OpenID Connect -
PDF
AllTheTalks.Online 2020: "Basics of OAuth 2.0 and OpenID Connect"
PDF
WSO2Con USA 2015: Securing your APIs: Patterns and More
PDF
[OSSParis 2015] The OpenID Connect Protocol
OAuth 2 at Webvisions
InterCon 2016 - Segurança de identidade digital levando em consideração uma a...
[LDAPCon 2015] The OpenID Connect Protocol
The Current State of OAuth 2
Demystifying REST
OAuth2 Authentication
O auth how_to
UserCentric Identity based Service Invocation
OAuth簡介
OAuth 2.0 – A standard is coming of age by Uwe Friedrichsen
An Introduction to OAuth 2
REST API Security: OAuth 2.0, JWTs, and More!
Nk API - examples
Secure Webservices
Some OAuth love
What the Heck is OAuth and OIDC - UberConf 2018
アプリ開発で知っておきたい認証技術 - OAuth 1.0 + OAuth 2.0 + OpenID Connect -
AllTheTalks.Online 2020: "Basics of OAuth 2.0 and OpenID Connect"
WSO2Con USA 2015: Securing your APIs: Patterns and More
[OSSParis 2015] The OpenID Connect Protocol

Recently uploaded (20)

PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
cuic standard and advanced reporting.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
A Presentation on Artificial Intelligence
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Big Data Technologies - Introduction.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Empathic Computing: Creating Shared Understanding
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Spectroscopy.pptx food analysis technology
Assigned Numbers - 2025 - Bluetooth® Document
gpt5_lecture_notes_comprehensive_20250812015547.pdf
cuic standard and advanced reporting.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Programs and apps: productivity, graphics, security and other tools
Network Security Unit 5.pdf for BCA BBA.
MIND Revenue Release Quarter 2 2025 Press Release
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
NewMind AI Weekly Chronicles - August'25-Week II
Dropbox Q2 2025 Financial Results & Investor Presentation
A Presentation on Artificial Intelligence
Spectral efficient network and resource selection model in 5G networks
Big Data Technologies - Introduction.pptx
MYSQL Presentation for SQL database connectivity
Empathic Computing: Creating Shared Understanding
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Spectroscopy.pptx food analysis technology

Introduction to OAuth

  • 1. OAuth: Open Standard for Sharing #OpenWebTO - June 1st, 2010
  • 7. Sharing without passwords. Sites exchange user authorized tokens. Tokens can be revoked. Tokens can be scoped. Tokens can be time-limited.
  • 9. Terminology has changed a lot. These slides are old school.
  • 11. some history 12/07 - OAuth 1.0 06/08 - OAuth 1.0a 11/09 - OAuth WRAP 03/10 - OAuth 2.0 Draft 1 04/10 - RFC 5849 05/10 - OpenID Connect
  • 12. OAuth 1.0a addresses a session fixation vulnerability discovered in the original spec.
  • 13. Step 1. Attacker initiates OAuth authorization
  • 14. Step 2. Tricks victim into visiting authorization URI specially crafted for nefarious purposes (attacker specifies the callback).
  • 15. Step 3. User enters their credentials at the authorization page, unwittingly authorizing the attacker's request token. User is redirected to a URI determined by the attacker.
  • 16. Step 4. Attacker completes the OAuth workflow. Has access to the victim's protected resources.
  • 18. The Result Inconsistent implementations. Different fixes for older providers. Be aware.
  • 21. Endpoint URIs Request Token URL User Authorization URL Access Token URL
  • 23. Example: Twitter Request: POST /oauth/request HTTP/1.1 Host: local.eval.ca:8000 User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3 ... Content-Type: application/x-www-form-urlencoded Authorization: OAuth realm="", oauth_nonce="79013965", oauth_timestamp="1275364485", oauth_consumer_key="TgF80q20x4j4kPRTiYJOXQ", oauth_signature_method="HMAC-SHA1", oauth_version="1.0", oauth_signature="PmA%2FUWGZSN%2B%2FYZ0ak4yHAtT7in8%3D" Response: oauth_token=ZABxRSmYFX9oLsZOTfMbYlDXldtKuVARFkjfPjsJbT0& oauth_token_secret=YGgcxX60kCHyoGiO2LhE0gfWXxZyJQnfBzpp64djykU
  • 24. Example: FreshBooks Request: Authorization: OAuth realm="", oauth_nonce="92490670", oauth_timestamp="1275365018", oauth_consumer_key="oauthprovider", oauth_signature_method="PLAINTEXT", oauth_version="1.0", oauth_signature="mVASHE5wd8MiyJYYyRhpCpLVtfAyjm7qS%26", oauth_callback="http%3A%2F%2Flocal.eval.ca%3A8000%2Foauth%2Fcallback%2F" Response: oauth_token=YzjQJppbHMuSL2bwSCvysH6vDtmV6R7r2& oauth_token_secret=gFYjmhWZawhRdXzE4hpLeFtQR4B72znAh& oauth_callback_confirmed=true
  • 25. Redirect user to Authorization URI Twitter: http://twitter.com/oauth/authorize?oauth_token=UVENq7xUrdkE5dVu8AdrG1oETE3EMb5LVaUXZp0Nsy8 FreshBooks: https://subdomain.freshbooks.com/oauth/oauth_authorize.php?oauth_token=UVENq7xUrdkE5dVu8AdrG1oETE3EMb5LVaUXZp0Nsy8
  • 26. Handle Callback Twitter: http://yourapp.com/oauth/callback?oauth_token=UVENq7xUrdkE5dVu8AdrG1oETE3EMb5LVaUXZp0Nsy8 FreshBooks: http://yourapp.com/oauth/callback?oauth_token=UVENq7xUrdkE5dVu8AdrG1oETE3EMb5LVaUXZp0Nsy8 &oauth_verifier=zzUWbPe1nOYkG9dzb8nm9X7t6gzbjW4l9kIAeRLQs
  • 27. Exchange authorized Request Token for Access Token
  • 28. Example: Twitter Request: Authorization: OAuth realm="", oauth_nonce="83131550", oauth_timestamp="1275364497", oauth_consumer_key="TgF80q21yvq4kPRWiYJOXQ", oauth_signature_method="HMAC-SHA1", oauth_version="1.0", oauth_token="ZABxRSmYFX9oLsZOTfMbYlDXldtKuVARFkjfPjsJbT0", oauth_signature="K1J5Q7TgU2S81FDLcDHrscRazGM%3D" Response: oauth_token=149686823-pX5PrnZ0bus8r7bzaA1tGlp3qQgud96eueauIioo& oauth_token_secret=BWZ5riq707pP4gpb8dRguD2NmhSiHt7XdA1O99YGGI& user_id=149686823&screen_name=freshnotifydemo
  • 29. Example: FreshBooks Request: Authorization: OAuth realm="", oauth_nonce="56679057", oauth_timestamp="1275365024", oauth_signature_method="PLAINTEXT", oauth_consumer_key="oauthprovider", oauth_verifier="uuiDvKeqk3NX4P4wYvtYiPQdt9J5dB4sr", oauth_version="1.0", oauth_token="YzjQJppbHMuSL2bwSCvysH6vDtmV6R7r2", oauth_signature="mVASHE5wd8MiyJYYyRhpCpLVtfAyjm7qS%26gFYjmhWZawhRdXzE4hpLeFtQR4B72znAh" Response: oauth_token=yF53TK3Ya6eQdWPNWLuZZTviHWZaKXLrh&oauth_token_secret=UCrmxWriVsyD69URtQd6u7NQxFhiTpXBW
  • 31. Example: Twitter Request: POST /1/statuses/update.json HTTP/1.1 ... Content-Type: application/x-www-form-urlencoded Authorization: OAuth realm="", oauth_nonce="46002159", oauth_timestamp="1275366995", oauth_consumer_key="TgF80q21yvq4kPRWiYJOXQ", oauth_signature_method="HMAC-SHA1", oauth_version="1.0", oauth_token="149686823-pX5PrnZ0bus8r7bzaA1tGlp3qQgud96eueauIioo", oauth_signature="bfvQGgVVL8EQ15KiGKN8WQHVhts%3D" status=Ohai. Response: { a lot of JSON }
  • 32. Example: FreshBooks Request: POST /api/2.1/xml-in HTTP/1.1 ... Content-Type: application/xml Authorization: OAuth realm="", oauth_nonce="56679057", oauth_timestamp="1275365024", oauth_signature_method="PLAINTEXT", oauth_consumer_key="oauthprovider", oauth_verifier="uuiDvKeqk3NX4P4wYvtYiPQdt9J5dB4sr", oauth_version="1.0", oauth_token="YzjQJppbHMuSL2bwSCvysH6vDtmV6R7r2", oauth_signature="mVASHE5wd8MiyJYYyRhpCpLVtfAyjm7qS%26gFYjmhWZawhRdXzE4hpLeFtQR4B72znAh" <request method="invoice.list" /> Response: <response status="ok"> A bunch of XML </response>
  • 33. Common Questions What about Desktop & Mobile applications? What the heck is OAuth WRAP? What does OAuth have to do with OpenID? What is up with OAuth 2?
  • 35. Problems with OAuth 1.0 Complex cryptographic requirements Poor user experience for desktop / mobile Performance at scale
  • 36. OAuth 2.0 OAuth 2.0 defines authorization flows. User Delegation Flows Direct Credentials Flows Autonomous Flows
  • 37. User Delegation Flows User-Agent Flow Web Server Flow Device Flow
  • 38. Direct credentials Flows Username and Password Flow Client Credentials Flow
  • 39. Autonomous flows: Assertion Flow
  • 40. OAuth 2.0 Bearer tokens over SSL Simpler signatures Short lived tokens with refresh tokens Authorization server and resource server
  • 42. OAuth 2.0 is currently in its 5th version of an IETF Draft.
  • 43. There are implementations in the wild including Facebook, 37 Signals and Github.
  • 44. There are Objective C, Python and Ruby libraries available with varying degrees of completeness.
  • 45. So things are looking good, but as always when working with something this new...
  • 47. Resources http://oauth.net/ http://tools.ietf.org/html/rfc5849 http://hueniverse.com/oauth/ http://tools.ietf.org/html/draft-ietf-oauth-v2-07
  • 49. thank you! Paul Osman paul@eval.ca