SlideShare a Scribd company logo
Identity on the Web
 OpenID vs OAuth
   Identity Management in SOA

        Richard Metzler

           May 2010


               1
Outline
I.    User Authentication
II.   OpenID
III. OAuth
IV. Compare OpenID & OAuth
V. My Project


                      2
User Authentication



         3
User Authentication
• every single website needs my credentials
 • username / e-mail
 • password
   • should be secure
   • should not be reused
   • how to remember?
                     4
Resulting Problems

• identity is scattered
• passwords
 • millions to remember vs recycling
 • how to authorize third party access?
     ➡ Password Anti-Pattern


                     5
OpenID



  6
OpenID

• sharing a single identity with different
  consumers
• decentralized
• OpenID 2.0 (without XRI)
                                      http://openid.net/

                       7
Roles in OpenID

•   User owns account at
    OpenID Provider

• User proves Identity
    to Relying Party




                           8
OpenID Flow




         http://www.openaselect.org/trac/openaselect/wiki/OpenID


     9
Sign in with
OpenID Identifier




       10
Discovery & Delegation
 obtain OP Endpoint




          11
Establish Association

• shared secret between Relying Party &
   OpenID Provider
• Diffie Hellman Key Exchange
• (g^xa)^xb mod p = (g^xb)^xa mod p
http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange

                                 12
Redirect User Agent to
     OP Endpoint




          13
Redirect User Agent to
     OP Endpoint




          14
Return URL Verification


• OpenId Provider checks:
 • do Realm and return_to URL match?


                  15
User Authentification




         16
OpenID Provider
 presents Realm




       17
Redirect User Agent to
  OP Endpoint URL




          18
Redirect User Agent to
  OP Endpoint URL




          19
Verification

• Relying Party checks:
 • return_to URL
 • OpenID Identifier
 • was Nonce never used before?
 • fields signed, signature valid
                   20
Logged in




    21
OpenID Flow




          http://www.openaselect.org/trac/openaselect/wiki/OpenID


     22
OAuth



  23
OAuth

• sharing your data without sharing your
  password
• centralized
• OAuth 1.0a (current version)
 • Draft for OAuth 2.0
                                    http://oauth.net/

                     24
Roles


•   User owns Resource at
    Service Provider

•   User grants
    Consumer access to
    Resource




                            25
OAuth Dance




          http://fireeagle.yahoo.net/developer/documentation/web_auth

     26
Register Consumer,
  get Consumer Key
• manually register Consumer at Service
  Provider
 • identified by Token / Secret
 • Callback URL
• all subsequent Requests must be signed
  with Secret, Nonce & Timestamp

                    27
Sign in with OAuth




        28
Get Request Token
• Consumer asks Service Provider for
  Request Token
• Request Token identifies authorization
  workflow
• not user specific
• transmitted in URL when User Agent is
  redirected

                     29
HTTP Redirect to
Service Provider




       30
HTTP Redirect to
Service Provider




       31
Authenticate




     32
Grant Access




     33
HTTP Redirect to
Consumer Callback




        34
HTTP Redirect to
Consumer Callback




        35
Get Access Token

• Consumer trades Request Token for Access
  Token
• Access Token grants access to Service
  Provider in behalf of User
• user specific

                     36
Logged in




    37
Access Resource
• authenticated access on Resource
 • must be signed
   • Consumer Key
   • OAuth Token
   • Timestamp
   • Nonce
                    38
OAuth Dance




          http://fireeagle.yahoo.net/developer/documentation/web_auth

     39
OpenId vs OAuth



       40
Commonalities

• involves 3 parties
• open protocols - community driven
• HTTP based
• not mutual exclusive

                    41
Differences

• sharing: identity vs data resources
• decentralized vs centralized
• Consumer-Provider-Relationship:
 • unknown vs well-known

                      42
My Project



    43
My Project
• Implement OAuth Service Provider &
  OAuth Consumer example
• API for manageable resources (ideas)
 • profile pictures
 • activity streams Atom feed extension
 • RESTful API for editing RDF::FOAF data
             http://activitystrea.ms/   http://www.foaf-project.org/

                          44
Questions?



    45

More Related Content

PPT
Openid & Oauth: An Introduction
PDF
Implementing OAuth
PDF
Stateless Auth using OAuth2 & JWT
PPTX
An Introduction to OAuth2
ODP
OAuth2 - Introduction
PDF
OpenID and OAuth
PPTX
Web API 2 Token Based Authentication
PDF
OAuth - Open API Authentication
Openid & Oauth: An Introduction
Implementing OAuth
Stateless Auth using OAuth2 & JWT
An Introduction to OAuth2
OAuth2 - Introduction
OpenID and OAuth
Web API 2 Token Based Authentication
OAuth - Open API Authentication

What's hot (20)

PDF
CIS14: Working with OAuth and OpenID Connect
PDF
OAuth 2.0
PPTX
OAuth2 + API Security
PPTX
An introduction to OAuth 2
PPTX
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
PPTX
JWT SSO Inbound Authenticator
PDF
Spring security oauth2
PPTX
OAuth 2
PPTX
Securing your APIs with OAuth, OpenID, and OpenID Connect
PDF
ConFoo 2015 - Securing RESTful resources with OAuth2
PPTX
An Introduction to OAuth 2
PDF
OpenID Connect - An Emperor or Just New Cloths?
PDF
Demystifying OAuth 2.0
PDF
OAuth2 primer
PDF
Single Sign On with OAuth and OpenID
PPTX
OAuth2 & OpenID Connect
PPTX
Single-Page-Application & REST security
PPTX
Securing RESTful APIs using OAuth 2 and OpenID Connect
PPTX
Securing your apps with OAuth2 and OpenID Connect - Roland Guijt - Codemotion...
PPT
OAuth2 Protocol with Grails Spring Security
CIS14: Working with OAuth and OpenID Connect
OAuth 2.0
OAuth2 + API Security
An introduction to OAuth 2
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
JWT SSO Inbound Authenticator
Spring security oauth2
OAuth 2
Securing your APIs with OAuth, OpenID, and OpenID Connect
ConFoo 2015 - Securing RESTful resources with OAuth2
An Introduction to OAuth 2
OpenID Connect - An Emperor or Just New Cloths?
Demystifying OAuth 2.0
OAuth2 primer
Single Sign On with OAuth and OpenID
OAuth2 & OpenID Connect
Single-Page-Application & REST security
Securing RESTful APIs using OAuth 2 and OpenID Connect
Securing your apps with OAuth2 and OpenID Connect - Roland Guijt - Codemotion...
OAuth2 Protocol with Grails Spring Security
Ad

Viewers also liked (20)

PDF
Distributed Identities with OpenID
PDF
PHP, OAuth, Web Services and YQL
PDF
Single Sign on e OpenID
PPT
PDF
Cloud identity management meetup 150108
PPTX
Web access management using o auth2 and saml – wam 2.0
PPT
Forums 2.0 منتديات
PDF
Implementing OAuth with PHP
PDF
OpenID Overview - Seoul July 2007
PPT
Introduction to Research Methods
PPT
Web Access Management
PDF
Access Management for Cloud and Mobile
PDF
CIS14: PingAccess 101
PDF
OpenID Bootcamp Tutorial
PDF
CIS14: PingAccess in Action
PDF
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
ODP
Interface Drupal with desktop or webapp via OAuth & REST
PPT
Salesforce Presentation
PPT
Web Servers (ppt)
PDF
reveal.js 3.0.0
Distributed Identities with OpenID
PHP, OAuth, Web Services and YQL
Single Sign on e OpenID
Cloud identity management meetup 150108
Web access management using o auth2 and saml – wam 2.0
Forums 2.0 منتديات
Implementing OAuth with PHP
OpenID Overview - Seoul July 2007
Introduction to Research Methods
Web Access Management
Access Management for Cloud and Mobile
CIS14: PingAccess 101
OpenID Bootcamp Tutorial
CIS14: PingAccess in Action
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
Interface Drupal with desktop or webapp via OAuth & REST
Salesforce Presentation
Web Servers (ppt)
reveal.js 3.0.0
Ad

Similar to OpenID vs OAuth - Identity on the Web (20)

PDF
OAuth: Trust Issues
PPTX
Spring Social - Messaging Friends & Influencing People
PPTX
Intro to OAuth2 and OpenID Connect
PPTX
Secure your app with keycloak
PDF
Oauth Php App
PDF
Mobile Authentication - Onboarding, best practices & anti-patterns
PPT
PDF
oauth-for-credentials-security-in-rest-api-access
PPTX
Xplore Group - Flashtalk (Fabric8, Neo4j, GraphQL, OpenID Connect)
PPTX
Globus Auth: A Research Identity and Access Management Platform
PDF
Ember Authentication and Authorization with Torii
PDF
Ritou idcon7
PPTX
Creating a Sign On with Open id connect
PDF
OAuth 1.0
PDF
Oauth Behind The Scenes
PDF
open id & o-auth
PPTX
Social Single Sign-On with OpenID Connect
PPTX
Introduction to sitecore identity
PDF
Securing .NET Core, ASP.NET Core applications
PPT
Linkedin & OAuth
OAuth: Trust Issues
Spring Social - Messaging Friends & Influencing People
Intro to OAuth2 and OpenID Connect
Secure your app with keycloak
Oauth Php App
Mobile Authentication - Onboarding, best practices & anti-patterns
oauth-for-credentials-security-in-rest-api-access
Xplore Group - Flashtalk (Fabric8, Neo4j, GraphQL, OpenID Connect)
Globus Auth: A Research Identity and Access Management Platform
Ember Authentication and Authorization with Torii
Ritou idcon7
Creating a Sign On with Open id connect
OAuth 1.0
Oauth Behind The Scenes
open id & o-auth
Social Single Sign-On with OpenID Connect
Introduction to sitecore identity
Securing .NET Core, ASP.NET Core applications
Linkedin & OAuth

Recently uploaded (20)

PPTX
1. Introduction to Computer Programming.pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Approach and Philosophy of On baking technology
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Getting Started with Data Integration: FME Form 101
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Empathic Computing: Creating Shared Understanding
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
A Presentation on Artificial Intelligence
PDF
cuic standard and advanced reporting.pdf
1. Introduction to Computer Programming.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Approach and Philosophy of On baking technology
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Getting Started with Data Integration: FME Form 101
Network Security Unit 5.pdf for BCA BBA.
Empathic Computing: Creating Shared Understanding
“AI and Expert System Decision Support & Business Intelligence Systems”
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Dropbox Q2 2025 Financial Results & Investor Presentation
Advanced methodologies resolving dimensionality complications for autism neur...
Diabetes mellitus diagnosis method based random forest with bat algorithm
Group 1 Presentation -Planning and Decision Making .pptx
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Per capita expenditure prediction using model stacking based on satellite ima...
gpt5_lecture_notes_comprehensive_20250812015547.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Digital-Transformation-Roadmap-for-Companies.pptx
A Presentation on Artificial Intelligence
cuic standard and advanced reporting.pdf

OpenID vs OAuth - Identity on the Web

Editor's Notes

  • #5: plus additional identity data: profile pic, friends,…
  • #8: Live Journal (YADIS Protocol) OpenID Foundation: Yahoo!, Google, Facebook, PayPal, Verisign, IBM, Microsoft HIER: NO YADIS, NO XRI (Extensible Resource Identifier)
  • #12: url owned by <openid2.delegate> verify at <openid2.server>
  • #13: generator - g public prime - p xa = RP‘s private key xb = OP‘s private key
  • #17: put in username / password credentials
  • #18: User selects OpenId Identifier
  • #21: url owned by <openid.delegate> verify at <openid.server>
  • #25: Geschichte: -Flickr, Google AuthSub, -Yahoo! -Twitter -Facebook -> OAuth 2.0
  • #28: Passiert VIEL früher Signierung, damit keine Replay Attacken ausgeführt werden können
  • #43: OpenID komplizierter, Indirektion
  • #45: activity streams: facebook, MySpace, Google Buzz (draft)