SlideShare una empresa de Scribd logo
1 de 89
OAuth 101 & Secure API's
                  It's all ball bearings (APIs) nowadays




  An authentication and
authorization framework for
the future of the Interwebs
                                                               Brian Campbell
1                                                            @weeUnquietMind
                                         Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Agenda
    •   Introduction
    •   OAuth drivers
    •   Screenshot demo
    •   OAuth history
    •   OAuth 2
    •   OAuth in context
    •   OAuth security model




2                              Copyright ©2012 Ping Identity Corporation. All rights reserved.
2
                                                   Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Who the heck is this guy anyway?
     @weeUnquietMind – the short story of an unfortunate handle

     As Senior Architect for Ping Identity, Brian Campbell aspires to one day
     know what a Senior Architect actually does for a living. In the meantime,
     he tries to make himself useful by ideating, designing and building
     software systems such as Ping‟s flagship product PingFederate. When not
     making himself useful, he contributes to various identity and security
     standards including a two-year stint as co-chair of the OASIS Security
     Services Technical Committee and a current focus on OAuth 2.0 and
     JOSE within the IETF as well as OpenID Connect. He holds a B.A.,
     magna cum laude, in Computer Science from Amherst College in
     Massachusetts. Despite spending four years in the state, he has to look up
     how to spell "Massachusetts" every time he writes it.




3                                                       Copyright ©2012 Ping Identity Corporation. All rights reserved.
3
                                                                            Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Draft -28 of The OAuth 2.0 Authorization Framework




4
                                         Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Draft -28 of The OAuth 2.0 Authorization Framework




5                                                                          Page 70
                                         Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Draft -28 of The OAuth 2.0 Authorization Framework




                                 Prominently mentioned
                                   in the second to last
                                  paragraph of the very
                                         last page.




6                                                                              Page 70
                                             Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Better Placement on Some Lesser Known Specs




7                                 Copyright ©2012 Ping Identity Corporation. All rights reserved.
7
                                                      Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Some Might Even Call Them Esoteric…




8                                 Copyright ©2012 Ping Identity Corporation. All rights reserved.
8
                                                      Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Agenda
    •   Introduction
    •   OAuth drivers
    •   Screenshot demo
    •   OAuth history
    •   OAuth 2
    •   OAuth in context
    •   OAuth security model




9                              Copyright ©2012 Ping Identity Corporation. All rights reserved.
9
                                                   Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Drivers




10             Copyright ©2012 Ping Identity Corporation. All rights reserved.
10
                                   Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
In the Beginning there was SOAP…




          Simple [sic] Object Access Protocol
 … and SOAP based SOA was going to change the world




11                                Copyright ©2012 Ping Identity Corporation. All rights reserved.
11
                                                      Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
SOAP was given Authentication

 • The SOAP world has long had standards related
   to authentication & authorization of web services
 • WS-Trust defines a protocol by which a SOAP
   client can obtain a security token (typically a
   SAML assertion)
 • WS-Security stipulates how to attach the token
   (SAML assertion) to a SOAP request
 • WS-* does a few other things too



12                               Copyright ©2012 Ping Identity Corporation. All rights reserved.
12
                                                     Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
However…




     Apparently people are lazy and really like to REST…
13
                                             Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
But just for some perspective…




14
                                  Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
1) REST authentication


 • (The) REST (of the) world has not had
   comparable standards
 • Nothing comparable to WS-Security - mishmash
   of HTTP Basic, HTTP Digest, proprietary
   mechanisms, and mutual SSL for client
   authentication
 • Nothing comparable to WS-Trust
     – consequently client bears burden of managing
       credentials & trust



15
                                           Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
2) Password anti-pattern

                            Other sites asks
                            YOU for your
                            GOOGLE password
                            so it can access
                            your Google stuff.




16
                                  Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Tsk tsk!


            • Requesting sites and apps store the
              passwords
            • Hosting sites get locked into password
              authentication
            • Teaches users to be (more) indiscriminate with
              their passwords
            • Doesn‟t support granular permissions
            • Hosting site is not involved in, and has no
              knowledge of, the authorization step
            • Changing password (good security hygiene)
              revokes access to all
            • No easy way to revoke access



17
                                          Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Importance of revocation




18
                            Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
3) Cloud! CLOUD! CLOUD! CLOUD! CLOUD! APIs




              Cloud Cures Everything!




19                              Copyright ©2012 Ping Identity Corporation. All rights reserved.
19
                                                    Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
3) Cloud APIs


• Within move towards SaaS – trend towards API
  access to data/services to supplement, or even
  replace, browser access
• Salesforce.com: over 60% of access is via API
• APIs of PaaS offerings allow the customer to
  expose its own cloud services
• Clear trend for these APIs is towards REST




20                             Copyright ©2012 Ping Identity Corporation. All rights reserved.
20
                                                   Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
4) The Rise of Native Mobile Apps




                                        • Typically interact
                                          with internet APIs
                                        • Require
                                          authentication &
                                          authorization




21
                                     Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Aside: Mobile Application Continuum

     Web Applications                                 Native Applications
                            Hybrid
 Web Server
                                                   Web Server


          Web App



         HTML/JS/CSS    Hybrid Approaches                                            JSON/XML

 Mobile Device                                     Mobile Device



          Mobile Web
            Page                                                                Native App

          Browser


22                                          Copyright ©2012 Ping Identity Corporation. All rights reserved.
22
                                                                Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Aside - Native / Hybrid / Web

• Not going to try to predict winner
   • Expect them all
   • Hybrid gaining momentum
• Authentication & authorization should be consistent
  across both models, so that,
   • Users are not confused, e.g. use different
     credentials and/or authentication ceremony for the
     two models, even if accessing the same application
   • Service providers aren‟t forced to implement
     multiple security frameworks for the two models




23
                                          Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Drivers


                           Password
           Lack of         anti-
           standards       pattern




                             Cloud
            Native
                             APIs
            mobile
            Applications




24
                                      Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Enter OAuth!



     • An open protocol to allow secure API
       authorization in a simple and standard method
       from desktop, mobile and web applications.
     • Defines an authorization & authentication
       framework for RESTful APIs (and more)
     • Mitigates password anti-pattern
        – In archetypical use case of delegated authorization
     • Provides a standard way to give a „key‟ to a third-
       party which allows only limited access to perform
       specific functions
        – Without divulging your credentials


25
                                                  Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
An Overused Analogy
 OAuth is your valet key to the Interwebs




 It‟s going happen one way or the other so may
 as well tax and regulate…



26                            Copyright ©2012 Ping Identity Corporation. All rights reserved.
26
                                                  Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Agenda
 •   Introduction
 •   OAuth drivers
 •   Screenshot demo
 •   OAuth history
 •   OAuth 2
 •   OAuth in context
 •   OAuth security model




27                          Copyright ©2012 Ping Identity Corporation. All rights reserved.
27
                                                Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Screenshot Demo: brizzly.com accesses the twitters




                                   API            @
         brizzly.com
                                                Twitter



                   Web Interface




28
                                                      Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
About Brizzly… Remember Revocation?




29
                                       Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Screenshot Demo: (now defunct) brizzly.com accesses the twitters




30
                                                   Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Screenshot Demo: (now defunct) brizzly.com accesses the twitters




31
                                                   Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Screenshot Demo: (now defunct) brizzly.com accesses the twitters




32
                                                   Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Screenshot Demo: (now defunct) brizzly.com accesses the twitters




33
                                                   Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Screenshot Demo: (now defunct) brizzly.com accesses the twitters




34
                                                   Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Screenshot Demo: (now defunct) brizzly.com accesses the twitters




35
                                                   Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Screenshot Demo: (now defunct) brizzly.com accesses the twitters




36
                                                   Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Screenshot Demo: (now defunct) brizzly.com accesses the twitters




37
                                                   Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Agenda
 •   Introduction
 •   OAuth drivers
 •   Screenshot demo
 •   OAuth history
 •   OAuth 2
 •   OAuth in context
 •   OAuth security model




38                          Copyright ©2012 Ping Identity Corporation. All rights reserved.
38
                                                Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
A [confusing] Little History

• First was the Emergence of Proprietary Solutions
   – Google AuthSub, AOL OpenAuth, Yahoo
     BBAuth, Upcoming API, Flickr API, AWS API, and more
• OAuth Core 1.0 [Oct 2007]
   – Open protocol to standardize what was already being
     done
• OAuth Core 1.0 Revision A [June 2009]
   – Addresses a session fixation attack
• The OAuth 1.0 Protocol / RFC 5849 [April 2010]
   – Move to the IETF as informational documentation of
     1.0a with editorial clarifications and errata


39
                                         Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
More History, Still Confusing

 • OAuth WRAP (Web Resource Authorization
   Profiles) [Jan 2010]
     – Better Support for non-web applications
     – Simplify the Client
     – Short lived, opaque, bearer access tokens with
       long lived refresh tokens
     – Cleaner separation of roles
        • Server handling authorization requests
        • Server handling protected resource access
        • Client
     – Simple Web Token (SWT)
        • Attempt to standardize an access token format
 • Oauth 2.0 [in progress]
     – *still* in progress
40
                                               Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Agenda
 •   Introduction
 •   OAuth drivers
 •   Screenshot demo
 •   OAuth history
 •   OAuth 2
 •   OAuth in context
 •   OAuth security model




41                          Copyright ©2012 Ping Identity Corporation. All rights reserved.
41
                                                Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
OAuth 2.0

     •   2 is better than 1
     •   Conceptually similar to WRAP
     •   With built in extensibility
     •   Clear separation of getting a token and using a token
          –   Early drafts had an option for token signatures but that was dropped
          –   "OAuth 2.0 is Bad for the Web” – spec author/editor
          –   Bearer tokens (separate spec)
          –   Return of the MAC
          –   MAC, we hardly knew ye
     • Approaching final standardization in IETF
          – Sigh
          – I‟ve been writing that in presentations dating back to December of 2010
          – Currently at draft -30 (as of last night)
     • Applicable to many other scenarios – even those with no users
     • Notable for its optimizations for mobile
          – Kind of…



42
                                                                 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
OAuth 2.0 Terminology: Roles

•        resource owner: an entity
         (usually an end-
         user/person)capable of
         granting access to a protected
         resource .
•        client: an application
         obtaining authorization and
         making protected resource
         requests (on behalf of the
         resource owner).
•        resource server (RS): the
         server hosting protected
         resources
•        authorization server (AS): a
         server capable of issuing
         tokens, obtaining
         authorization, and
         authenticating resource
         owners.
    43
                                          Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
More Terminology: Tokens


     • Access Token
       – credential used by client to access protected resources at
         the RS
       – permissions afforded by the token can be scoped
       – issued by the AS
       – structure is undefined by the spec(s)
       – usually opaque to the client
       – generally short lived
       – can be self contained or a reference
       – shifts complexity from the RS to the AS
     • Refresh Token
       – used by client to obtain a new access token when the old
         one expires
       – client only sends to AS, never to RS
       – generally long lived

44
                                                     Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Access Token Types



     • Access tokens can have different
       – formats
       – structures
       – methods of utilization (e.g. cryptographic properties)
     • Access tokens must be defined by companion
       specifications
       – token_type
       – additional parameters as needed
       – how to use at RS



45
                                                  Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Bearer Access Tokens

     • Any party in possession of the token (a
       "bearer") can use the token in any way that
       any other party in possession of it can.
     • token_type: Bearer
     • Token can be presented to the RS in HTTP
       Authorization Header, Body Parameter, or
       Query Parameter
     • Requires TLS
     • Token structure still undefined



46
                                        Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
MAC Access Tokens

     • A.k.a. Proof of possession token, proof token, HoK token
     • Defines an HTTP MAC access authentication scheme
       (key id, MAC key & algorithm, and issue time)
        – Id is sent with request
        – Key is shared symmetric secret between the client and the
          server used to „sign‟ requests (thereby proving possession of
          the secret)
     • OAuth 2.0 binding for use as an access-token type
        – token_type: mac
        – Key id is the access_token
            • Format & structure is still undefined
        – mac_key & mac_algorithm as additional parameters
     • Protects against token leakage
     • Kinda still needs TLS in some cases
     • Future uncertain…



47
                                                        Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
More Terminology: Endpoints


     • AS Endpoints
        – Authorization endpoint
           • used, via user-agent redirection, to authenticate and obtain
             authorization from the resource owner.
           • End user on the front channel.
        – Token endpoint
           • Used to exchange an authorization grant for an access token.
           • Client on the back channel.
     • Client Endpoint
        – Redirection URI
           • After completing its interaction with the resource owner, the AS
             directs the resource owner's user-agent back to the client at the
             client‟s redirection URI.
           • Front channel callback




48
                                                             Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Terminology: Authorization Grant



     • General term used to describe the intermediate
       credentials representing the resource owner
       authorization
     • Serves as an abstraction layer
        – not the cleanest abstraction
     • Used by the client to obtain an access token
     • All token endpoint calls involve exchanging some
       grant for an access token
     • Spec defines several types as well as an
       extensibility mechanism


49
                                          Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Terminology: Scope



     • The definition of scope is (mostly) out of scope
        – See what I did there?
        – The scope of the access request is expressed as a list of
          space-delimited, case sensitive strings.
        – Order doesn‟t matter.
        – The value and meaning of scope strings are defined by the
          authorization server.
     • Requesting/granting specific scope(s) allows the
       access rights associated with a token to be limited
        – Enables the principle of least privilege (or less privilege
          anyway)
        – Only ask for what is needed



50
                                                         Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Some Scope Examples

     • Facebook
        –   publish_stream
        –   publish_checkins
        –   read_mailbox
        –   email
        –   user_status
     • Google
        –   https://www.googleapis.com/auth/adsense
        –   https://www.googleapis.com/auth/plus.me
        –   https://www.googleapis.com/auth/urlshortener
        –   https://mail.google.com/mail/feed/atom
        –   https://www.googleapis.com/auth/plus.me
     • OpenID Connect
        –   openid
        –   email
        –   profile
        –   phone
        –   address

51
                                                           Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Abstract Flow


     • Client obtains authorization grant from resource
       owner*
     • Client calls the authorization server to exchange
       the grant for an access token**
     • Client uses the access token to access protected
       resources at the resource server***


     *sometimes
     **usually
     ***probably




52
                                           Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Authorization Grant Types



     •   authorization code
     •   implicit*
     •   resource owner password credentials
     •   client credentials
     •   refresh token
     •   Extensions


     * one of these things is not like the others…



53
                                                Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Grant Type: Authorization Code

     • Client sends resource owner, via browser, to the
       authorization endpoint at the AS
        – End-user authenticates
        – End-user approves requested access
     • AS sends the end-user to the client‟s redirect URI
       and includes the authorization code as a query
       parameter
     • Client receives the redirection callback, extracts the
       code, and sends it to the AS in exchange for an
       access token (and probably a refresh token)
     • Great for web app clients
        – Client authentication
        – Easy to handle the redirect
     • Okay for mobile clients
        – Without client authentication
        – Need tricks to handle the redirect/callback
54
                                                        Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Getting an Authorization Code

                     Authorization Request
GET /as/authorization.oauth2?client_id=aclient&
   redirect_uri=https%3A//client.example.com/cb&
     response_type=code&scope=beer+hockey+donuts HTTP/1.1
Host: server.example.com



       […This is where the magic happens…]


                   Authorization Response
 HTTP/1.1 302 Found
 Location:
 https://client.example.com/cb?code=GecMEdixSKRJO8xfpCXHg9Fg2
 Hze
 55
                                               Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Exchange Authorization Code for Access Token

                              Access Token Request
POST /as/token.oauth2 HTTP/1.1
Host: as.example.com
Content-Type: application/x-www-form-urlencoded

client_id=aclient&client_secret=hoser&redirect_uri=https%3A//client.example.com/cb&grant_ty
pe=authorization_code&code=GecMEdixSKRJO8xfpCXHg9Fg2Hze


                             Access Token Response
 HTTP/1.1 200 OK
 Cache-Control: no-store
 Pragma: no-cache
 Content-Type: application/json;charset=UTF-8

 {
          "token_type":"Bearer",
          "access_token":"a0VuzD3NfDsjCsTUZB5LmXs7WPQ1x07DCHR”,
          "expires_in":3600,
          "refresh_token":"mSTBpqQcSkRECNfDclfRDjREnmqeWVap0DseM6aXkixIX”
 }

     56
                                                                  Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Brief Interlude: Using the Access Token



Protected Resource Request with a Bearer Token
GET /double/secret/probation/resource HTTP/1.1
Host: rs.example.com
Authorization: Bearer a0VuzD3NfDsjCsTUZB5LmXs7WPQ1x07DCHR




 MAC Token a Bit More Complicated

 POST /take/off/eh HTTP/1.1
 Host: rs.example.com
 Content-Type: application/x-www-form-urlencoded
 Authorization: MAC id="jd93dh9dh39D",
             nonce="273156:di3hvdf8",
             bodyhash="k9kbtCIy0CkI3/FEfpS/oIDjk6k=",
             mac="W7bdMZbv9UWOTadASIQHagZyirA="


 57
                                                        Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Grant Type: Implicit



     • Similar to the authorization code flow except…
     • After resource owner authentication and
       authorization, the AS sends the end-user to the
       client‟s redirect URI and includes the access
       token on the fragment (#)
     • No token endpoint call so not *really* a grant
       type
     • Optimized for „widget‟ clients or in-browser
       JavaScript applications
     • Could also work for native/mobile clients

58
                                           Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Getting a Token with Implicit

                            Authorization Request
GET /as/authorization.oauth2?client_id=aclient&
     redirect_uri=https%3A//client.example.com/cb&response_type=token HTTP/1.1
Host: server.example.com

                      […magic happens…]
                          Authorization Response
 HTTP/1.1 302 Found
 Location: https://client.example.com/cb#expires_in=3600
     &token_type=Bearer&access_token=gBjAAf7Io0FIfwZaXDTRQg0d7GTwAOL7G6e




                      Protected Resource Request

GET /double/secret/probation/resource HTTP/1.1
Host: rs.example.com
Authorization: Bearer gBjAAf7Io0FIfwZaXDTRQg0d7GTwAOL7G6e
  59
                                                               Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Grant Type: Resource Owner Password Credentials



     • Client obtains resource owner‟s username
       and password directly from the resource
       owner and sends them directly to the AS as a
       grant.
     • Requires trust in the client.
     • Refresh token eliminates the need for the
       client to store the password.
     • Somewhat intended as a migration
       mechanism


60
                                        Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Exchange Resource Owner Password Credentials for Access Token


                               Access Token Request
POST /as/token.oauth2 HTTP/1.1
Host: as.example.com
Authorization: Basic c29tZWNsaWVudDpBbWVyaWNhJ3NIYXQ=
Content-Type: application/x-www-form-urlencoded

grant_type=password&username=pmadsen&password=uselesstaxonomy


                             Access Token Response
 HTTP/1.1 200 OK
 Cache-Control: no-store
 Pragma: no-cache
 Content-Type: application/json; charset=UTF-8

 {
          "token_type":"Bearer",
          "access_token":"a0VuzD3NfDsjCsTUZB5LmXs7WPQ1x07DCHR”,
          "expires_in":3600,
          "refresh_token":"mSTBpqQcSkRECNfDclfRDjREnmqeWVap0DseM6aXkixIX”
 }

     61
                                                             Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Grant Type: Client Credentials


     • Client can request an access token using only its
       own credentials
     • For resources under the client‟s control or other
       resources as policy dictates
     • MUST only be used by “private” clients (clients that can
       authenticate securely)
     • No refresh token
     • Client Authentication Mechanisms
        – client_id & client_secret parameters
        – HTTP Basic
        – “The authorization server MAY support any suitable HTTP
          authentication scheme matching its security requirements”
        – Mutual TLS
        – client_assertion & client_assertion_type parameters

62
                                                     Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Grant Type: Refresh Token



     • If a refresh token was issued to the client
       during the exchange of a prior grant, it can be
       used as an authorization grant to get a new
       access token
       – Unless revoked or otherwise invalid
     • Refresh an expired access token without
       involving direct user authorization
     • The AS may issue a new refresh token
       – Good security hygiene



63
                                               Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Refreshing an Access Token

                               Access Token Request
POST /as/token.oauth2 HTTP/1.1
Host: as.example.com
Authorization: Basic c29tZWNsaWVudDpBbWVyaWNhJ3NIYXQ=
Content-Type: application/x-www-form-urlencoded

grant_type=refresh_token&refresh_token=1StDpqQcSk1CNf7clfRjREnmqeiVap0DseM6aXkixI11


                              Access Token Response
  HTTP/1.1 200 OK
  Cache-Control: no-store
  Pragma: no-cache
  Content-Type: application/json; charset=UTF-8

  {
           "token_type":"Bearer",
           "access_token":"MdqBuexXYlMSogbrAwiPP47eGxGqZajuJNa”,
           "expires_in":3600,
           "refresh_token":"hlyEOO9PXgmvPiYI8g68KSEs2HQhgrkiUQGsc9Xxskd”
  }

      64
                                                               Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Extension Grant Types


     • Extension authorization grant types can be
       defined by assigning them a unique absolute URI
       for use with the "grant_type" parameter.
     • Extensions can define additional parameters
       needed.
     • Enables bridging between OAuth and other
       protocols.
        – SAML 2.0
        – JWT 1.0
     • (kind of) Enables other stuff too
        – Bearer access token validation
        – STS style token exchange


65
                                           Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Partial Specification Landscape

Getting a Token                                                   Using a Token
       The OAuth 2.0 Authorization Framework                         The OAuth 2.0 Protocol: Bearer Tokens
                draft-ietf-oauth-v2                                        draft-ietf-oauth-v2-bearer

                                                                  HTTP Authentication: MAC Access Authentication
                                                                           draft-ietf-oauth-v2-http-mac
       Extension Grants
               &                  OAuth 2.0 Assertion Profile
      Client Authentication       draft-ietf-oauth-assertions
                                                                Tokens     Assertions and Protocols for SAML V2.0
                                                                                      saml-core-2.0-os
                                                                                                          XML Sec
     SAML 2.0 Bearer Assertion Grant
                                                                    JSON Web Token (JWT)
        Type Profile for OAuth 2.0
                                                                 draft-ietf-oauth-json-web-token
       draft-ietf-oauth-saml2-bearer

                               JSON Web Token (JWT) Bearer
                                                                             JSON Web Signature (JWS)
                                   Profile for OAuth 2.0
                                                                           draft-ietf-jose-json-web-signature
                                 draft-ietf-oauth-jwt-bearer
                                                                            JSON Web Signature (JWE)
                                                                         draft-ietf-jose-json-web-encryption

                                                                                  JSON Web Key (JWK)
                               Other Protocols                   JOSE           draft-ietf-jose-json-web-key
User-Managed Access (UMA)                                                          JSON Web Key (JWA)
        Core Protocol
                                 OpenID Connect 1.0                         draft-ietf-jose-json-web-algorithms
draft-hardjono-oauth-umacore
66
                                                                             Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Agenda
 •   Introduction
 •   OAuth drivers
 •   Screenshot demo
 •   OAuth history
 •   OAuth 2
 •   OAuth in context
 •   OAuth security model




67                          Copyright ©2012 Ping Identity Corporation. All rights reserved.
67
                                                Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
OAuth in Context


     Compare, Contrast & Compose




68
                         Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
OAuth relationship to OpenID

     • They are different
        – Authorization vs. Authentication
     • They share similarities
        – Web redirect flows
            • Client to AS
            • RP to OP
        – End user authentication
            • To AS
            • To OP
     • Lines between roles and goals of each often blur
        – An OP is also an AS who has RSs that the Client/RP wants
          to access
        – An AS can be an RS and defer to an OP for user
          authentication
     • Similarities and overlap have, in part, motivated the
       building the next version of OpenID „on top of‟ OAuth

69
                                                   Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
OpenID Connect



     • Adds a thin 'identity layer' onto OAuth 2.0
     • Designed to address limitations of OpenID
       2.0 (URL length issues, LOA ceiling,
       implementation complexity, etc.)
     • Reflects a harmonization of multiple
       competing visions for evolution of OpenID 2.0
     • Designed to allow for support of higher LOA




70
                                        Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
OpenID Connect Family tree

                      Artifact




          Hybrid
          Extension




OAuth 1


                        OAuth 2   JWT
71
                                        Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
72
     Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
OpenID Connect relation to OAuth


     • Whereas OAuth is a general mechanism to
       authorize API access, OpenID Connect profiles
       the generic for purposes of sharing profile
       information
     • OpenID Connect adds a security token explicitly
       for SSO from AS to Client
     • Uses the authorization code & implicit grant
       types – the pieces of OAuth optimized for user-
       consent scenarios
     • Leverages the authorization & token endpoints &
       adds identity-based params to core OAuth
       messages

73
                                          Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
SAML & OAuth


     SAML                   'Hybrid' – carry OAuth token
                OAuth
                            in SAML SSO messages


                            SAML assertions sent within
     OAuth                  OAuth messages
                SAML




     SAML           OAuth   'Sequencing' – use SAML SSO
                            to authenticate user to AS




74
                                  Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Sequencing SAML & OAuth




          OAuth



              SAML



                           OAuth




75
                               Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Trading Tokens




       SAML                             JWT                           Profiles for specific
                                                                      assertion
                                                                      Formats [2] & [3]


       Assertion profile                                              How to use assertions
                                                                      as a grant type [1] (also
                                                                      client authentication)


       OAuth                                                          Core protocol [0]




     [0] - http://tools.ietf.org/html/draft-ietf-oauth-v2
     [1] - http://tools.ietf.org/html/draft-ietf-oauth-assertions
     [2] - http://tools.ietf.org/html/draft-ietf-oauth-saml2-bearer
76   [3] - http://tools.ietf.org/html/draft-ietf-oauth-jwt-bearer
                                                                        Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Using a SAML Assertion (or JWT) as an OAuth grant type

SAML

POST /token.oauth2 HTTP/1.1
Host: authz.example.net
Content-Type: application/x-www-form-urlencoded

grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Asaml2-bearer
&assertion=PEFzc2VydGlvbiBJc3N1ZUluc3Rh [...omitted for brevity...]lbnQ-PC9Bc3NlcnRpb24-




JWT

POST /token.oauth2 HTTP/1.1
Host: authz.example.net
Content-Type: application/x-www-form-urlencoded

grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer
&assertion=eyJhbGciOiJFUzI1NiJ9.eyJpc3Mi[...omitted for brevity...].J9lZhwP_2n[...omitted...]



77
                                                                      Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
OAuth relationship to XACML

     • eXtensible Access Control Markup Language
       – A declarative access control policy language in XML and a
         processing model describing how to evaluate authorization
         requests according to the rules defined in policies.
       – PAP
           • Administration
       – PDP
           • Decision
       – PEP
           • Enforcement


Though both focused on
authorization, OAuth & XACML are
very different animals
78
                                                        Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
OAuth is Authorization?


• Depends on what part of
  the authz elephant you
  are looking at
     – Policy (XACML)
     – Query (XACML/SAML
       profile)
     – Claims (SAML & JWT)
     – User consent (OAuth)
     – Permissions (OAuth)

     But if your use cases don’t
      involve user-consent,
      then OAuth starts to
      look more like
      authentication (be careful)

79
                                    Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
UMA & OAuth

•        User Managed Access extends OAuth 2.0 to allow for a user to
         manage access to multiple (and distributed) resources through
         centralized Authorization Manager
•        UMA “provides a method for users to control access to their protected
         resources, residing on any number of host sites, through an
         authorization manager that governs access decisions based on user
         policy.”
•        Leverages separation between AS & RS introduced with WRAP & v2
•        Defines how a host can ask the authorization manager to validate
         tokens in real
•        Supports more dynamic registration




    80
                                                          Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Agenda
 •   Introduction
 •   OAuth drivers
 •   Screenshot demo
 •   OAuth history
 •   OAuth 2
 •   OAuth in context
 •   OAuth security model




81                          Copyright ©2012 Ping Identity Corporation. All rights reserved.
81
                                                Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
OAuth 2 Security Model

     • Well, it sort of depends…
       – Token type
       – Grant type
       – Client type
     • Also, it‟s kind of complicated…
     • Threat model doc is as long as the core spec
       – http://tools.ietf.org/html/draft-ietf-oauth-v2-threatmodel
         (currently at -06)
     • So just going to look at some aspects of it
       here


82
                                                        Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Session Cookie Analogy


     • OAuth using bearer tokens is sort of like session
       cookies for API/resource access
     • Generally you login to a website and are issued a
       session cookie for subsequent requests
     • Grant is like the login while the access token is
       like the session cookie
     • TLS is required at every step
     • Cookies rely on same origin policy
     • Access tokens rely on static or well know servers
     • Neither is perfect
     • Discovery cannot be safely done with bearer
       tokens

83
                                           Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
What about MAC?


     • Helps with the discovery problem
     • Still kind of similar to session cookies
        – In fact, the MAC spec once defined an extension to the
          HTTP "Set-Cookie " response header field
        – Didn‟t last
     • Does prevents credential leakage
     • Can be used over insecure channels
        – Adds complexity (normalization, cryptography, state
          management)
        – No confidentiality (still need TLS for that)
     • Spec‟s future is unclear…
        – Return of the MAC part II?
        – Others (last week, for example, draft-tschofenig-oauth-
          hotk-00)?
84
                                                  Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Tokens & Signing



     • Signed Tokens
       – Token is signed by the issuer (AS)
       – JWT, SWT, SAML, etc.
       – Token is self-contained
     • Signing with Tokens
       – Client signs the request with some secret issued
         along side the token
       – MAC
       – Token can be self-contained or reference


85
                                              Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
But Why aren‟t Tokens Defined?



     • It‟s okay, it really is
     • I don‟t know why exactly, but I‟ve grown to
       accept and even like it
     • It does imply some level of coordination
       between the AS & RS
     • Time will tell…




86
                                         Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Not for Single Sign-On
     • OAuth (alone) is not for cross domain SSO
        – Primarily about protecting the protected resource
              • That‟s why it‟s called that
              • While also enabling delegated access
        – But not the client
     • (Under certain circumstances) a token or code can
       be swapped and used to gain full access to a
       different client
        – Client relying on OAuth to authenticate to resources other
          than the RS for which the access token is issued
        – Implicit & unauthenticated code flows
     • A user grants a client access to info/resources at an
       RS but not to access resources a different
       client/website
        – Client has not Authenticated the user but rather only gotten
          delegated access to the users information.
     • A good discussion of the issue by my colleague John
       Bradley
        –   http://www.thread-safe.com/2012/01/problem-with-oauth-for-authentication.html
87
                                                                         Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Other Security Stuff


     •   Reference style tokens need sufficient entropy
     •   Revocation is good to provide
     •   TLS
     •   Client authentication and binding clients to
         grants/codes/tokens
         – Identification alone is also useful
     •   Brute force countermeasures
     •   Token storage
     •   Token/code leakage
     •   Phishing
     •   Did I mention TLS?
     •   Scope of scopes

88
                                                 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
Thanks!      (and time permitting)


                                Questions?
                        (there are no stupid questions, only stupid answers and I‟m
                              tremendously qualified to deliver such answers)




OAuth 101 & Secure API's
     It's all ball bearings (APIs) nowadays                                        Brian Campbell
89                                                                               @weeUnquietMind
                                                               Copyright © 2012. Cloud Identity Summit. All Rights Reserved.

Más contenido relacionado

La actualidad más candente

Open Banking via APIc 2018
Open Banking via APIc 2018Open Banking via APIc 2018
Open Banking via APIc 2018Shiu-Fun Poon
 
Con8817 api management - enable your infrastructure for secure mobile and c...
Con8817   api management - enable your infrastructure for secure mobile and c...Con8817   api management - enable your infrastructure for secure mobile and c...
Con8817 api management - enable your infrastructure for secure mobile and c...OracleIDM
 
OpenID Connect - a simple[sic] single sign-on & identity layer on top of OAut...
OpenID Connect - a simple[sic] single sign-on & identity layer on top of OAut...OpenID Connect - a simple[sic] single sign-on & identity layer on top of OAut...
OpenID Connect - a simple[sic] single sign-on & identity layer on top of OAut...Brian Campbell
 
PingOne IDaaS: What You Need to Know
PingOne IDaaS: What You Need to KnowPingOne IDaaS: What You Need to Know
PingOne IDaaS: What You Need to KnowCloudIDSummit
 
CON8040 Identity as a Service - Extend Enterprise Controls and Identity to th...
CON8040 Identity as a Service - Extend Enterprise Controls and Identity to th...CON8040 Identity as a Service - Extend Enterprise Controls and Identity to th...
CON8040 Identity as a Service - Extend Enterprise Controls and Identity to th...oow123
 
Placement of BPM runtime components in an SOA environment
Placement of BPM runtime components in an SOA environmentPlacement of BPM runtime components in an SOA environment
Placement of BPM runtime components in an SOA environmentKim Clark
 
Microservices = Death of the Enterprise Service Bus (ESB)?
Microservices = Death of the Enterprise Service Bus (ESB)?Microservices = Death of the Enterprise Service Bus (ESB)?
Microservices = Death of the Enterprise Service Bus (ESB)?Kai Wähner
 
What’s behind a high quality web API? Ensure your APIs are more than just a ...
What’s behind a high quality web API? Ensure your APIs are more than just a ...What’s behind a high quality web API? Ensure your APIs are more than just a ...
What’s behind a high quality web API? Ensure your APIs are more than just a ...Kim Clark
 
IBM API Connect Deployment `Good Practices - IBM Think 2018
IBM API Connect Deployment `Good Practices - IBM Think 2018IBM API Connect Deployment `Good Practices - IBM Think 2018
IBM API Connect Deployment `Good Practices - IBM Think 2018Chris Phillips
 
OpenID Connect: The new standard for connecting to your Customers, Partners, ...
OpenID Connect: The new standard for connecting to your Customers, Partners, ...OpenID Connect: The new standard for connecting to your Customers, Partners, ...
OpenID Connect: The new standard for connecting to your Customers, Partners, ...Salesforce Developers
 
Enterprise Single Sign On
Enterprise Single Sign On Enterprise Single Sign On
Enterprise Single Sign On WSO2
 
CIS13: Identity at Scale
CIS13: Identity at ScaleCIS13: Identity at Scale
CIS13: Identity at ScaleCloudIDSummit
 
CA CloudMinder Vasu Surabhi
CA CloudMinder Vasu SurabhiCA CloudMinder Vasu Surabhi
CA CloudMinder Vasu SurabhiVasu Surabhi
 
Standardizing Identity Provisioning with SCIM
Standardizing Identity Provisioning with SCIMStandardizing Identity Provisioning with SCIM
Standardizing Identity Provisioning with SCIMHasiniG
 
CA Security - Deloitte IAM Summit - Vasu
CA Security - Deloitte IAM Summit  - VasuCA Security - Deloitte IAM Summit  - Vasu
CA Security - Deloitte IAM Summit - VasuVasu Surabhi
 
Simplifying User Access with NetScaler SDX and CA Single Sign-on
 Simplifying User Access with NetScaler SDX and CA Single Sign-on Simplifying User Access with NetScaler SDX and CA Single Sign-on
Simplifying User Access with NetScaler SDX and CA Single Sign-onCA Technologies
 
Con8823 access management for the internet of things-final
Con8823   access management for the internet of things-finalCon8823   access management for the internet of things-final
Con8823 access management for the internet of things-finalOracleIDM
 

La actualidad más candente (20)

Open Banking via APIc 2018
Open Banking via APIc 2018Open Banking via APIc 2018
Open Banking via APIc 2018
 
Con8817 api management - enable your infrastructure for secure mobile and c...
Con8817   api management - enable your infrastructure for secure mobile and c...Con8817   api management - enable your infrastructure for secure mobile and c...
Con8817 api management - enable your infrastructure for secure mobile and c...
 
OpenID Connect - a simple[sic] single sign-on & identity layer on top of OAut...
OpenID Connect - a simple[sic] single sign-on & identity layer on top of OAut...OpenID Connect - a simple[sic] single sign-on & identity layer on top of OAut...
OpenID Connect - a simple[sic] single sign-on & identity layer on top of OAut...
 
Open Standards For Social Business Apps
Open Standards For Social Business AppsOpen Standards For Social Business Apps
Open Standards For Social Business Apps
 
API Security with OAuth2.0.
API Security with OAuth2.0.API Security with OAuth2.0.
API Security with OAuth2.0.
 
PingOne IDaaS: What You Need to Know
PingOne IDaaS: What You Need to KnowPingOne IDaaS: What You Need to Know
PingOne IDaaS: What You Need to Know
 
CON8040 Identity as a Service - Extend Enterprise Controls and Identity to th...
CON8040 Identity as a Service - Extend Enterprise Controls and Identity to th...CON8040 Identity as a Service - Extend Enterprise Controls and Identity to th...
CON8040 Identity as a Service - Extend Enterprise Controls and Identity to th...
 
Placement of BPM runtime components in an SOA environment
Placement of BPM runtime components in an SOA environmentPlacement of BPM runtime components in an SOA environment
Placement of BPM runtime components in an SOA environment
 
API and Microservices Management
API and Microservices ManagementAPI and Microservices Management
API and Microservices Management
 
Microservices = Death of the Enterprise Service Bus (ESB)?
Microservices = Death of the Enterprise Service Bus (ESB)?Microservices = Death of the Enterprise Service Bus (ESB)?
Microservices = Death of the Enterprise Service Bus (ESB)?
 
What’s behind a high quality web API? Ensure your APIs are more than just a ...
What’s behind a high quality web API? Ensure your APIs are more than just a ...What’s behind a high quality web API? Ensure your APIs are more than just a ...
What’s behind a high quality web API? Ensure your APIs are more than just a ...
 
IBM API Connect Deployment `Good Practices - IBM Think 2018
IBM API Connect Deployment `Good Practices - IBM Think 2018IBM API Connect Deployment `Good Practices - IBM Think 2018
IBM API Connect Deployment `Good Practices - IBM Think 2018
 
OpenID Connect: The new standard for connecting to your Customers, Partners, ...
OpenID Connect: The new standard for connecting to your Customers, Partners, ...OpenID Connect: The new standard for connecting to your Customers, Partners, ...
OpenID Connect: The new standard for connecting to your Customers, Partners, ...
 
Enterprise Single Sign On
Enterprise Single Sign On Enterprise Single Sign On
Enterprise Single Sign On
 
CIS13: Identity at Scale
CIS13: Identity at ScaleCIS13: Identity at Scale
CIS13: Identity at Scale
 
CA CloudMinder Vasu Surabhi
CA CloudMinder Vasu SurabhiCA CloudMinder Vasu Surabhi
CA CloudMinder Vasu Surabhi
 
Standardizing Identity Provisioning with SCIM
Standardizing Identity Provisioning with SCIMStandardizing Identity Provisioning with SCIM
Standardizing Identity Provisioning with SCIM
 
CA Security - Deloitte IAM Summit - Vasu
CA Security - Deloitte IAM Summit  - VasuCA Security - Deloitte IAM Summit  - Vasu
CA Security - Deloitte IAM Summit - Vasu
 
Simplifying User Access with NetScaler SDX and CA Single Sign-on
 Simplifying User Access with NetScaler SDX and CA Single Sign-on Simplifying User Access with NetScaler SDX and CA Single Sign-on
Simplifying User Access with NetScaler SDX and CA Single Sign-on
 
Con8823 access management for the internet of things-final
Con8823   access management for the internet of things-finalCon8823   access management for the internet of things-final
Con8823 access management for the internet of things-final
 

Destacado

API Management Platform Technical Evaluation Framework
API Management Platform Technical Evaluation FrameworkAPI Management Platform Technical Evaluation Framework
API Management Platform Technical Evaluation FrameworkWSO2
 
AWS re:Invent 2016: Securing Serverless Architectures, and API Filtering at L...
AWS re:Invent 2016: Securing Serverless Architectures, and API Filtering at L...AWS re:Invent 2016: Securing Serverless Architectures, and API Filtering at L...
AWS re:Invent 2016: Securing Serverless Architectures, and API Filtering at L...Amazon Web Services
 
(DEV203) Amazon API Gateway & AWS Lambda to Build Secure APIs
(DEV203) Amazon API Gateway & AWS Lambda to Build Secure APIs(DEV203) Amazon API Gateway & AWS Lambda to Build Secure APIs
(DEV203) Amazon API Gateway & AWS Lambda to Build Secure APIsAmazon Web Services
 
API Management architect presentation
API Management architect presentationAPI Management architect presentation
API Management architect presentationsflynn073
 
Craft Conference 2015 - Evolution of the PayPal API: Platform & Culture
Craft Conference 2015 - Evolution of the PayPal API: Platform & CultureCraft Conference 2015 - Evolution of the PayPal API: Platform & Culture
Craft Conference 2015 - Evolution of the PayPal API: Platform & CultureDeepak Nadig
 
WSO2Con ASIA 2016: Understanding the WSO2 API Management Platform
WSO2Con ASIA 2016: Understanding the WSO2 API Management PlatformWSO2Con ASIA 2016: Understanding the WSO2 API Management Platform
WSO2Con ASIA 2016: Understanding the WSO2 API Management PlatformWSO2
 
AWS July Webinar Series: Overview: Build and Manage your APIs with Amazon API...
AWS July Webinar Series: Overview: Build and Manage your APIs with Amazon API...AWS July Webinar Series: Overview: Build and Manage your APIs with Amazon API...
AWS July Webinar Series: Overview: Build and Manage your APIs with Amazon API...Amazon Web Services
 
Gartner AADI Summit Sydney 2014 Implementing the Layer 7 API Management Pla...
Gartner AADI Summit Sydney 2014   Implementing the Layer 7 API Management Pla...Gartner AADI Summit Sydney 2014   Implementing the Layer 7 API Management Pla...
Gartner AADI Summit Sydney 2014 Implementing the Layer 7 API Management Pla...CA API Management
 
Best Practices for API Management
Best Practices for API Management Best Practices for API Management
Best Practices for API Management WSO2
 
WSO2Con EU 2016: Understanding the WSO2 API Management Platform
WSO2Con EU 2016: Understanding the WSO2 API Management PlatformWSO2Con EU 2016: Understanding the WSO2 API Management Platform
WSO2Con EU 2016: Understanding the WSO2 API Management PlatformWSO2
 
AWS re:Invent 2016: Serverless Authentication and Authorization: Identity Man...
AWS re:Invent 2016: Serverless Authentication and Authorization: Identity Man...AWS re:Invent 2016: Serverless Authentication and Authorization: Identity Man...
AWS re:Invent 2016: Serverless Authentication and Authorization: Identity Man...Amazon Web Services
 
Implementing API Facade using WSO2 API Management Platform
Implementing API Facade using WSO2 API Management PlatformImplementing API Facade using WSO2 API Management Platform
Implementing API Facade using WSO2 API Management PlatformWSO2
 
Roll Your Own API Management Platform with nginx and Lua
Roll Your Own API Management Platform with nginx and LuaRoll Your Own API Management Platform with nginx and Lua
Roll Your Own API Management Platform with nginx and LuaJon Moore
 
Securing Serverless Workloads with Cognito and API Gateway Part I - AWS Secur...
Securing Serverless Workloads with Cognito and API Gateway Part I - AWS Secur...Securing Serverless Workloads with Cognito and API Gateway Part I - AWS Secur...
Securing Serverless Workloads with Cognito and API Gateway Part I - AWS Secur...Amazon Web Services
 
Building Scalable Services with Amazon API Gateway - Technical 201
Building Scalable Services with Amazon API Gateway - Technical 201Building Scalable Services with Amazon API Gateway - Technical 201
Building Scalable Services with Amazon API Gateway - Technical 201Amazon Web Services
 
Open API and API Management - Introduction and Comparison of Products: TIBCO ...
Open API and API Management - Introduction and Comparison of Products: TIBCO ...Open API and API Management - Introduction and Comparison of Products: TIBCO ...
Open API and API Management - Introduction and Comparison of Products: TIBCO ...Kai Wähner
 
Securing RESTful APIs using OAuth 2 and OpenID Connect
Securing RESTful APIs using OAuth 2 and OpenID ConnectSecuring RESTful APIs using OAuth 2 and OpenID Connect
Securing RESTful APIs using OAuth 2 and OpenID ConnectJonathan LeBlanc
 

Destacado (20)

API Management Platform Technical Evaluation Framework
API Management Platform Technical Evaluation FrameworkAPI Management Platform Technical Evaluation Framework
API Management Platform Technical Evaluation Framework
 
AWS re:Invent 2016: Securing Serverless Architectures, and API Filtering at L...
AWS re:Invent 2016: Securing Serverless Architectures, and API Filtering at L...AWS re:Invent 2016: Securing Serverless Architectures, and API Filtering at L...
AWS re:Invent 2016: Securing Serverless Architectures, and API Filtering at L...
 
(DEV203) Amazon API Gateway & AWS Lambda to Build Secure APIs
(DEV203) Amazon API Gateway & AWS Lambda to Build Secure APIs(DEV203) Amazon API Gateway & AWS Lambda to Build Secure APIs
(DEV203) Amazon API Gateway & AWS Lambda to Build Secure APIs
 
API Management architect presentation
API Management architect presentationAPI Management architect presentation
API Management architect presentation
 
Craft Conference 2015 - Evolution of the PayPal API: Platform & Culture
Craft Conference 2015 - Evolution of the PayPal API: Platform & CultureCraft Conference 2015 - Evolution of the PayPal API: Platform & Culture
Craft Conference 2015 - Evolution of the PayPal API: Platform & Culture
 
WSO2Con ASIA 2016: Understanding the WSO2 API Management Platform
WSO2Con ASIA 2016: Understanding the WSO2 API Management PlatformWSO2Con ASIA 2016: Understanding the WSO2 API Management Platform
WSO2Con ASIA 2016: Understanding the WSO2 API Management Platform
 
AWS July Webinar Series: Overview: Build and Manage your APIs with Amazon API...
AWS July Webinar Series: Overview: Build and Manage your APIs with Amazon API...AWS July Webinar Series: Overview: Build and Manage your APIs with Amazon API...
AWS July Webinar Series: Overview: Build and Manage your APIs with Amazon API...
 
Gartner AADI Summit Sydney 2014 Implementing the Layer 7 API Management Pla...
Gartner AADI Summit Sydney 2014   Implementing the Layer 7 API Management Pla...Gartner AADI Summit Sydney 2014   Implementing the Layer 7 API Management Pla...
Gartner AADI Summit Sydney 2014 Implementing the Layer 7 API Management Pla...
 
Oracle api gateway overview
Oracle api gateway overviewOracle api gateway overview
Oracle api gateway overview
 
Best Practices for API Management
Best Practices for API Management Best Practices for API Management
Best Practices for API Management
 
WSO2Con EU 2016: Understanding the WSO2 API Management Platform
WSO2Con EU 2016: Understanding the WSO2 API Management PlatformWSO2Con EU 2016: Understanding the WSO2 API Management Platform
WSO2Con EU 2016: Understanding the WSO2 API Management Platform
 
Amazon API Gateway
Amazon API GatewayAmazon API Gateway
Amazon API Gateway
 
AWS re:Invent 2016: Serverless Authentication and Authorization: Identity Man...
AWS re:Invent 2016: Serverless Authentication and Authorization: Identity Man...AWS re:Invent 2016: Serverless Authentication and Authorization: Identity Man...
AWS re:Invent 2016: Serverless Authentication and Authorization: Identity Man...
 
Implementing API Facade using WSO2 API Management Platform
Implementing API Facade using WSO2 API Management PlatformImplementing API Facade using WSO2 API Management Platform
Implementing API Facade using WSO2 API Management Platform
 
Roll Your Own API Management Platform with nginx and Lua
Roll Your Own API Management Platform with nginx and LuaRoll Your Own API Management Platform with nginx and Lua
Roll Your Own API Management Platform with nginx and Lua
 
Securing Serverless Workloads with Cognito and API Gateway Part I - AWS Secur...
Securing Serverless Workloads with Cognito and API Gateway Part I - AWS Secur...Securing Serverless Workloads with Cognito and API Gateway Part I - AWS Secur...
Securing Serverless Workloads with Cognito and API Gateway Part I - AWS Secur...
 
Building Scalable Services with Amazon API Gateway - Technical 201
Building Scalable Services with Amazon API Gateway - Technical 201Building Scalable Services with Amazon API Gateway - Technical 201
Building Scalable Services with Amazon API Gateway - Technical 201
 
Oracle API Gateway
Oracle API GatewayOracle API Gateway
Oracle API Gateway
 
Open API and API Management - Introduction and Comparison of Products: TIBCO ...
Open API and API Management - Introduction and Comparison of Products: TIBCO ...Open API and API Management - Introduction and Comparison of Products: TIBCO ...
Open API and API Management - Introduction and Comparison of Products: TIBCO ...
 
Securing RESTful APIs using OAuth 2 and OpenID Connect
Securing RESTful APIs using OAuth 2 and OpenID ConnectSecuring RESTful APIs using OAuth 2 and OpenID Connect
Securing RESTful APIs using OAuth 2 and OpenID Connect
 

Similar a OAuth 101 & Secure APIs 2012 Cloud Identity Summit

Synergies of Cloud Identity: Putting it All Together
Synergies of Cloud Identity: Putting it All TogetherSynergies of Cloud Identity: Putting it All Together
Synergies of Cloud Identity: Putting it All TogetherTwobo Technologies
 
CIS 2015 Extreme OpenID Connect - John Bradley
CIS 2015 Extreme OpenID Connect - John BradleyCIS 2015 Extreme OpenID Connect - John Bradley
CIS 2015 Extreme OpenID Connect - John BradleyCloudIDSummit
 
Who’s Knocking? Identity for APIs, Web and Mobile
Who’s Knocking? Identity for APIs, Web and MobileWho’s Knocking? Identity for APIs, Web and Mobile
Who’s Knocking? Identity for APIs, Web and MobileNordic APIs
 
Gartner Catalyst Savvis Cloud API Case Study
Gartner Catalyst   Savvis Cloud API Case StudyGartner Catalyst   Savvis Cloud API Case Study
Gartner Catalyst Savvis Cloud API Case StudyCA API Management
 
CIS 2015- Beyond Federation Protocols- Praerit Garg
CIS 2015- Beyond Federation Protocols- Praerit GargCIS 2015- Beyond Federation Protocols- Praerit Garg
CIS 2015- Beyond Federation Protocols- Praerit GargCloudIDSummit
 
O Dell Secure360 Presentation5 12 10b
O Dell Secure360 Presentation5 12 10bO Dell Secure360 Presentation5 12 10b
O Dell Secure360 Presentation5 12 10bBruce O'Dell
 
Catalyst 2015: Patrick Harding
Catalyst 2015: Patrick HardingCatalyst 2015: Patrick Harding
Catalyst 2015: Patrick HardingPing Identity
 
1400 ping madsen-nordicapis-connect-01
1400 ping madsen-nordicapis-connect-011400 ping madsen-nordicapis-connect-01
1400 ping madsen-nordicapis-connect-01Nordic APIs
 
Migrating and Modernizing Identity on the Path to Multi Cloud
Migrating and Modernizing Identity on the Path to Multi CloudMigrating and Modernizing Identity on the Path to Multi Cloud
Migrating and Modernizing Identity on the Path to Multi CloudStrata Identity
 
Webinar: eFolder Expert Series: Five Technologies from AppAssure to Boost You...
Webinar: eFolder Expert Series: Five Technologies from AppAssure to Boost You...Webinar: eFolder Expert Series: Five Technologies from AppAssure to Boost You...
Webinar: eFolder Expert Series: Five Technologies from AppAssure to Boost You...Dropbox
 
Windows Azure overview webinar by Sentri
Windows Azure overview webinar by SentriWindows Azure overview webinar by Sentri
Windows Azure overview webinar by SentriSentri
 
CIS 2015 OpenID Connect Workshop Part 1: Challenges for mobile - B. Allyn Fay
CIS 2015 OpenID Connect Workshop Part 1: Challenges for mobile - B. Allyn FayCIS 2015 OpenID Connect Workshop Part 1: Challenges for mobile - B. Allyn Fay
CIS 2015 OpenID Connect Workshop Part 1: Challenges for mobile - B. Allyn FayCloudIDSummit
 
CIS 2015 Extreme SAML - Hans Zandbelt
CIS 2015 Extreme SAML - Hans ZandbeltCIS 2015 Extreme SAML - Hans Zandbelt
CIS 2015 Extreme SAML - Hans ZandbeltCloudIDSummit
 
RTView - Monitoring Service for SmartCloud Applications
RTView - Monitoring Service for SmartCloud ApplicationsRTView - Monitoring Service for SmartCloud Applications
RTView - Monitoring Service for SmartCloud ApplicationsSL Corporation
 
Up 2011-ken huang
Up 2011-ken huangUp 2011-ken huang
Up 2011-ken huangKen Huang
 
Openstack identity protocols unconference
Openstack identity protocols unconferenceOpenstack identity protocols unconference
Openstack identity protocols unconferenceDavid Waite
 
OAuth in the Real World featuring Webshell
OAuth in the Real World featuring WebshellOAuth in the Real World featuring Webshell
OAuth in the Real World featuring WebshellCA API Management
 
FIDO, Federation and the Internet of Things
 FIDO, Federation and the Internet of Things FIDO, Federation and the Internet of Things
FIDO, Federation and the Internet of ThingsFIDO Alliance
 

Similar a OAuth 101 & Secure APIs 2012 Cloud Identity Summit (20)

Identity soup
Identity soupIdentity soup
Identity soup
 
Synergies of Cloud Identity: Putting it All Together
Synergies of Cloud Identity: Putting it All TogetherSynergies of Cloud Identity: Putting it All Together
Synergies of Cloud Identity: Putting it All Together
 
CIS 2015 Extreme OpenID Connect - John Bradley
CIS 2015 Extreme OpenID Connect - John BradleyCIS 2015 Extreme OpenID Connect - John Bradley
CIS 2015 Extreme OpenID Connect - John Bradley
 
PCI and the Cloud
PCI and the CloudPCI and the Cloud
PCI and the Cloud
 
Who’s Knocking? Identity for APIs, Web and Mobile
Who’s Knocking? Identity for APIs, Web and MobileWho’s Knocking? Identity for APIs, Web and Mobile
Who’s Knocking? Identity for APIs, Web and Mobile
 
Gartner Catalyst Savvis Cloud API Case Study
Gartner Catalyst   Savvis Cloud API Case StudyGartner Catalyst   Savvis Cloud API Case Study
Gartner Catalyst Savvis Cloud API Case Study
 
CIS 2015- Beyond Federation Protocols- Praerit Garg
CIS 2015- Beyond Federation Protocols- Praerit GargCIS 2015- Beyond Federation Protocols- Praerit Garg
CIS 2015- Beyond Federation Protocols- Praerit Garg
 
O Dell Secure360 Presentation5 12 10b
O Dell Secure360 Presentation5 12 10bO Dell Secure360 Presentation5 12 10b
O Dell Secure360 Presentation5 12 10b
 
Catalyst 2015: Patrick Harding
Catalyst 2015: Patrick HardingCatalyst 2015: Patrick Harding
Catalyst 2015: Patrick Harding
 
1400 ping madsen-nordicapis-connect-01
1400 ping madsen-nordicapis-connect-011400 ping madsen-nordicapis-connect-01
1400 ping madsen-nordicapis-connect-01
 
Migrating and Modernizing Identity on the Path to Multi Cloud
Migrating and Modernizing Identity on the Path to Multi CloudMigrating and Modernizing Identity on the Path to Multi Cloud
Migrating and Modernizing Identity on the Path to Multi Cloud
 
Webinar: eFolder Expert Series: Five Technologies from AppAssure to Boost You...
Webinar: eFolder Expert Series: Five Technologies from AppAssure to Boost You...Webinar: eFolder Expert Series: Five Technologies from AppAssure to Boost You...
Webinar: eFolder Expert Series: Five Technologies from AppAssure to Boost You...
 
Windows Azure overview webinar by Sentri
Windows Azure overview webinar by SentriWindows Azure overview webinar by Sentri
Windows Azure overview webinar by Sentri
 
CIS 2015 OpenID Connect Workshop Part 1: Challenges for mobile - B. Allyn Fay
CIS 2015 OpenID Connect Workshop Part 1: Challenges for mobile - B. Allyn FayCIS 2015 OpenID Connect Workshop Part 1: Challenges for mobile - B. Allyn Fay
CIS 2015 OpenID Connect Workshop Part 1: Challenges for mobile - B. Allyn Fay
 
CIS 2015 Extreme SAML - Hans Zandbelt
CIS 2015 Extreme SAML - Hans ZandbeltCIS 2015 Extreme SAML - Hans Zandbelt
CIS 2015 Extreme SAML - Hans Zandbelt
 
RTView - Monitoring Service for SmartCloud Applications
RTView - Monitoring Service for SmartCloud ApplicationsRTView - Monitoring Service for SmartCloud Applications
RTView - Monitoring Service for SmartCloud Applications
 
Up 2011-ken huang
Up 2011-ken huangUp 2011-ken huang
Up 2011-ken huang
 
Openstack identity protocols unconference
Openstack identity protocols unconferenceOpenstack identity protocols unconference
Openstack identity protocols unconference
 
OAuth in the Real World featuring Webshell
OAuth in the Real World featuring WebshellOAuth in the Real World featuring Webshell
OAuth in the Real World featuring Webshell
 
FIDO, Federation and the Internet of Things
 FIDO, Federation and the Internet of Things FIDO, Federation and the Internet of Things
FIDO, Federation and the Internet of Things
 

Más de Brian Campbell

Token Binding Identiverse 2018
Token Binding Identiverse 2018 Token Binding Identiverse 2018
Token Binding Identiverse 2018 Brian Campbell
 
IAM Overview Identiverse 2018
IAM Overview Identiverse 2018IAM Overview Identiverse 2018
IAM Overview Identiverse 2018Brian Campbell
 
Beyond Bearer: Token Binding as the Foundation for a More Secure Web
Beyond Bearer: Token Binding as the Foundation for a More Secure WebBeyond Bearer: Token Binding as the Foundation for a More Secure Web
Beyond Bearer: Token Binding as the Foundation for a More Secure WebBrian Campbell
 
Identity and Access Management - RSA 2017 Security Foundations Seminar
Identity and Access Management - RSA 2017 Security Foundations SeminarIdentity and Access Management - RSA 2017 Security Foundations Seminar
Identity and Access Management - RSA 2017 Security Foundations SeminarBrian Campbell
 
OAuth 2.0 Token Exchange: An STS for the REST of Us
OAuth 2.0 Token Exchange: An STS for the REST of UsOAuth 2.0 Token Exchange: An STS for the REST of Us
OAuth 2.0 Token Exchange: An STS for the REST of UsBrian Campbell
 
Denver Startup Week '15: Mobile SSO
Denver Startup Week '15: Mobile SSODenver Startup Week '15: Mobile SSO
Denver Startup Week '15: Mobile SSOBrian Campbell
 
Mobile SSO: are we there yet?
Mobile SSO: are we there yet?Mobile SSO: are we there yet?
Mobile SSO: are we there yet?Brian Campbell
 
Mobile Single Sign-On (Gluecon '15)
Mobile Single Sign-On (Gluecon '15)Mobile Single Sign-On (Gluecon '15)
Mobile Single Sign-On (Gluecon '15)Brian Campbell
 
I Left My JWT in San JOSE
I Left My JWT in San JOSEI Left My JWT in San JOSE
I Left My JWT in San JOSEBrian Campbell
 
An Introduction to the Emerging JSON-Based Identity and Security Protocols (O...
An Introduction to the Emerging JSON-Based Identity and Security Protocols (O...An Introduction to the Emerging JSON-Based Identity and Security Protocols (O...
An Introduction to the Emerging JSON-Based Identity and Security Protocols (O...Brian Campbell
 
Hope or Hype: A Look at the Next Generation of Identity Standards
Hope or Hype: A Look at the Next Generation of Identity StandardsHope or Hype: A Look at the Next Generation of Identity Standards
Hope or Hype: A Look at the Next Generation of Identity StandardsBrian Campbell
 
Introduction to the Emerging JSON-Based Identity and Security Protocols
Introduction to the Emerging JSON-Based Identity and Security ProtocolsIntroduction to the Emerging JSON-Based Identity and Security Protocols
Introduction to the Emerging JSON-Based Identity and Security ProtocolsBrian Campbell
 
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...Brian Campbell
 
OAuth 101 & Secure API's - Paul Madsen and Brian Campbell, Ping Identity
OAuth 101 & Secure API's - Paul Madsen and Brian Campbell, Ping IdentityOAuth 101 & Secure API's - Paul Madsen and Brian Campbell, Ping Identity
OAuth 101 & Secure API's - Paul Madsen and Brian Campbell, Ping IdentityBrian Campbell
 

Más de Brian Campbell (16)

The Burden of Proof
The Burden of ProofThe Burden of Proof
The Burden of Proof
 
Token Binding Identiverse 2018
Token Binding Identiverse 2018 Token Binding Identiverse 2018
Token Binding Identiverse 2018
 
IAM Overview Identiverse 2018
IAM Overview Identiverse 2018IAM Overview Identiverse 2018
IAM Overview Identiverse 2018
 
Beyond Bearer: Token Binding as the Foundation for a More Secure Web
Beyond Bearer: Token Binding as the Foundation for a More Secure WebBeyond Bearer: Token Binding as the Foundation for a More Secure Web
Beyond Bearer: Token Binding as the Foundation for a More Secure Web
 
Identity and Access Management - RSA 2017 Security Foundations Seminar
Identity and Access Management - RSA 2017 Security Foundations SeminarIdentity and Access Management - RSA 2017 Security Foundations Seminar
Identity and Access Management - RSA 2017 Security Foundations Seminar
 
OAuth 2.0 Token Exchange: An STS for the REST of Us
OAuth 2.0 Token Exchange: An STS for the REST of UsOAuth 2.0 Token Exchange: An STS for the REST of Us
OAuth 2.0 Token Exchange: An STS for the REST of Us
 
Denver Startup Week '15: Mobile SSO
Denver Startup Week '15: Mobile SSODenver Startup Week '15: Mobile SSO
Denver Startup Week '15: Mobile SSO
 
Mobile SSO: are we there yet?
Mobile SSO: are we there yet?Mobile SSO: are we there yet?
Mobile SSO: are we there yet?
 
Mobile Single Sign-On (Gluecon '15)
Mobile Single Sign-On (Gluecon '15)Mobile Single Sign-On (Gluecon '15)
Mobile Single Sign-On (Gluecon '15)
 
I Left My JWT in San JOSE
I Left My JWT in San JOSEI Left My JWT in San JOSE
I Left My JWT in San JOSE
 
JOSE Can You See...
JOSE Can You See...JOSE Can You See...
JOSE Can You See...
 
An Introduction to the Emerging JSON-Based Identity and Security Protocols (O...
An Introduction to the Emerging JSON-Based Identity and Security Protocols (O...An Introduction to the Emerging JSON-Based Identity and Security Protocols (O...
An Introduction to the Emerging JSON-Based Identity and Security Protocols (O...
 
Hope or Hype: A Look at the Next Generation of Identity Standards
Hope or Hype: A Look at the Next Generation of Identity StandardsHope or Hype: A Look at the Next Generation of Identity Standards
Hope or Hype: A Look at the Next Generation of Identity Standards
 
Introduction to the Emerging JSON-Based Identity and Security Protocols
Introduction to the Emerging JSON-Based Identity and Security ProtocolsIntroduction to the Emerging JSON-Based Identity and Security Protocols
Introduction to the Emerging JSON-Based Identity and Security Protocols
 
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
 
OAuth 101 & Secure API's - Paul Madsen and Brian Campbell, Ping Identity
OAuth 101 & Secure API's - Paul Madsen and Brian Campbell, Ping IdentityOAuth 101 & Secure API's - Paul Madsen and Brian Campbell, Ping Identity
OAuth 101 & Secure API's - Paul Madsen and Brian Campbell, Ping Identity
 

Último

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 

Último (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 

OAuth 101 & Secure APIs 2012 Cloud Identity Summit

  • 1. OAuth 101 & Secure API's It's all ball bearings (APIs) nowadays An authentication and authorization framework for the future of the Interwebs Brian Campbell 1 @weeUnquietMind Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 2. Agenda • Introduction • OAuth drivers • Screenshot demo • OAuth history • OAuth 2 • OAuth in context • OAuth security model 2 Copyright ©2012 Ping Identity Corporation. All rights reserved. 2 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 3. Who the heck is this guy anyway? @weeUnquietMind – the short story of an unfortunate handle As Senior Architect for Ping Identity, Brian Campbell aspires to one day know what a Senior Architect actually does for a living. In the meantime, he tries to make himself useful by ideating, designing and building software systems such as Ping‟s flagship product PingFederate. When not making himself useful, he contributes to various identity and security standards including a two-year stint as co-chair of the OASIS Security Services Technical Committee and a current focus on OAuth 2.0 and JOSE within the IETF as well as OpenID Connect. He holds a B.A., magna cum laude, in Computer Science from Amherst College in Massachusetts. Despite spending four years in the state, he has to look up how to spell "Massachusetts" every time he writes it. 3 Copyright ©2012 Ping Identity Corporation. All rights reserved. 3 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 4. Draft -28 of The OAuth 2.0 Authorization Framework 4 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 5. Draft -28 of The OAuth 2.0 Authorization Framework 5 Page 70 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 6. Draft -28 of The OAuth 2.0 Authorization Framework Prominently mentioned in the second to last paragraph of the very last page. 6 Page 70 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 7. Better Placement on Some Lesser Known Specs 7 Copyright ©2012 Ping Identity Corporation. All rights reserved. 7 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 8. Some Might Even Call Them Esoteric… 8 Copyright ©2012 Ping Identity Corporation. All rights reserved. 8 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 9. Agenda • Introduction • OAuth drivers • Screenshot demo • OAuth history • OAuth 2 • OAuth in context • OAuth security model 9 Copyright ©2012 Ping Identity Corporation. All rights reserved. 9 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 10. Drivers 10 Copyright ©2012 Ping Identity Corporation. All rights reserved. 10 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 11. In the Beginning there was SOAP… Simple [sic] Object Access Protocol … and SOAP based SOA was going to change the world 11 Copyright ©2012 Ping Identity Corporation. All rights reserved. 11 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 12. SOAP was given Authentication • The SOAP world has long had standards related to authentication & authorization of web services • WS-Trust defines a protocol by which a SOAP client can obtain a security token (typically a SAML assertion) • WS-Security stipulates how to attach the token (SAML assertion) to a SOAP request • WS-* does a few other things too 12 Copyright ©2012 Ping Identity Corporation. All rights reserved. 12 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 13. However… Apparently people are lazy and really like to REST… 13 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 14. But just for some perspective… 14 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 15. 1) REST authentication • (The) REST (of the) world has not had comparable standards • Nothing comparable to WS-Security - mishmash of HTTP Basic, HTTP Digest, proprietary mechanisms, and mutual SSL for client authentication • Nothing comparable to WS-Trust – consequently client bears burden of managing credentials & trust 15 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 16. 2) Password anti-pattern Other sites asks YOU for your GOOGLE password so it can access your Google stuff. 16 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 17. Tsk tsk! • Requesting sites and apps store the passwords • Hosting sites get locked into password authentication • Teaches users to be (more) indiscriminate with their passwords • Doesn‟t support granular permissions • Hosting site is not involved in, and has no knowledge of, the authorization step • Changing password (good security hygiene) revokes access to all • No easy way to revoke access 17 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 18. Importance of revocation 18 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 19. 3) Cloud! CLOUD! CLOUD! CLOUD! CLOUD! APIs Cloud Cures Everything! 19 Copyright ©2012 Ping Identity Corporation. All rights reserved. 19 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 20. 3) Cloud APIs • Within move towards SaaS – trend towards API access to data/services to supplement, or even replace, browser access • Salesforce.com: over 60% of access is via API • APIs of PaaS offerings allow the customer to expose its own cloud services • Clear trend for these APIs is towards REST 20 Copyright ©2012 Ping Identity Corporation. All rights reserved. 20 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 21. 4) The Rise of Native Mobile Apps • Typically interact with internet APIs • Require authentication & authorization 21 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 22. Aside: Mobile Application Continuum Web Applications Native Applications Hybrid Web Server Web Server Web App HTML/JS/CSS Hybrid Approaches JSON/XML Mobile Device Mobile Device Mobile Web Page Native App Browser 22 Copyright ©2012 Ping Identity Corporation. All rights reserved. 22 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 23. Aside - Native / Hybrid / Web • Not going to try to predict winner • Expect them all • Hybrid gaining momentum • Authentication & authorization should be consistent across both models, so that, • Users are not confused, e.g. use different credentials and/or authentication ceremony for the two models, even if accessing the same application • Service providers aren‟t forced to implement multiple security frameworks for the two models 23 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 24. Drivers Password Lack of anti- standards pattern Cloud Native APIs mobile Applications 24 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 25. Enter OAuth! • An open protocol to allow secure API authorization in a simple and standard method from desktop, mobile and web applications. • Defines an authorization & authentication framework for RESTful APIs (and more) • Mitigates password anti-pattern – In archetypical use case of delegated authorization • Provides a standard way to give a „key‟ to a third- party which allows only limited access to perform specific functions – Without divulging your credentials 25 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 26. An Overused Analogy OAuth is your valet key to the Interwebs It‟s going happen one way or the other so may as well tax and regulate… 26 Copyright ©2012 Ping Identity Corporation. All rights reserved. 26 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 27. Agenda • Introduction • OAuth drivers • Screenshot demo • OAuth history • OAuth 2 • OAuth in context • OAuth security model 27 Copyright ©2012 Ping Identity Corporation. All rights reserved. 27 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 28. Screenshot Demo: brizzly.com accesses the twitters API @ brizzly.com Twitter Web Interface 28 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 29. About Brizzly… Remember Revocation? 29 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 30. Screenshot Demo: (now defunct) brizzly.com accesses the twitters 30 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 31. Screenshot Demo: (now defunct) brizzly.com accesses the twitters 31 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 32. Screenshot Demo: (now defunct) brizzly.com accesses the twitters 32 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 33. Screenshot Demo: (now defunct) brizzly.com accesses the twitters 33 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 34. Screenshot Demo: (now defunct) brizzly.com accesses the twitters 34 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 35. Screenshot Demo: (now defunct) brizzly.com accesses the twitters 35 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 36. Screenshot Demo: (now defunct) brizzly.com accesses the twitters 36 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 37. Screenshot Demo: (now defunct) brizzly.com accesses the twitters 37 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 38. Agenda • Introduction • OAuth drivers • Screenshot demo • OAuth history • OAuth 2 • OAuth in context • OAuth security model 38 Copyright ©2012 Ping Identity Corporation. All rights reserved. 38 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 39. A [confusing] Little History • First was the Emergence of Proprietary Solutions – Google AuthSub, AOL OpenAuth, Yahoo BBAuth, Upcoming API, Flickr API, AWS API, and more • OAuth Core 1.0 [Oct 2007] – Open protocol to standardize what was already being done • OAuth Core 1.0 Revision A [June 2009] – Addresses a session fixation attack • The OAuth 1.0 Protocol / RFC 5849 [April 2010] – Move to the IETF as informational documentation of 1.0a with editorial clarifications and errata 39 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 40. More History, Still Confusing • OAuth WRAP (Web Resource Authorization Profiles) [Jan 2010] – Better Support for non-web applications – Simplify the Client – Short lived, opaque, bearer access tokens with long lived refresh tokens – Cleaner separation of roles • Server handling authorization requests • Server handling protected resource access • Client – Simple Web Token (SWT) • Attempt to standardize an access token format • Oauth 2.0 [in progress] – *still* in progress 40 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 41. Agenda • Introduction • OAuth drivers • Screenshot demo • OAuth history • OAuth 2 • OAuth in context • OAuth security model 41 Copyright ©2012 Ping Identity Corporation. All rights reserved. 41 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 42. OAuth 2.0 • 2 is better than 1 • Conceptually similar to WRAP • With built in extensibility • Clear separation of getting a token and using a token – Early drafts had an option for token signatures but that was dropped – "OAuth 2.0 is Bad for the Web” – spec author/editor – Bearer tokens (separate spec) – Return of the MAC – MAC, we hardly knew ye • Approaching final standardization in IETF – Sigh – I‟ve been writing that in presentations dating back to December of 2010 – Currently at draft -30 (as of last night) • Applicable to many other scenarios – even those with no users • Notable for its optimizations for mobile – Kind of… 42 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 43. OAuth 2.0 Terminology: Roles • resource owner: an entity (usually an end- user/person)capable of granting access to a protected resource . • client: an application obtaining authorization and making protected resource requests (on behalf of the resource owner). • resource server (RS): the server hosting protected resources • authorization server (AS): a server capable of issuing tokens, obtaining authorization, and authenticating resource owners. 43 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 44. More Terminology: Tokens • Access Token – credential used by client to access protected resources at the RS – permissions afforded by the token can be scoped – issued by the AS – structure is undefined by the spec(s) – usually opaque to the client – generally short lived – can be self contained or a reference – shifts complexity from the RS to the AS • Refresh Token – used by client to obtain a new access token when the old one expires – client only sends to AS, never to RS – generally long lived 44 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 45. Access Token Types • Access tokens can have different – formats – structures – methods of utilization (e.g. cryptographic properties) • Access tokens must be defined by companion specifications – token_type – additional parameters as needed – how to use at RS 45 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 46. Bearer Access Tokens • Any party in possession of the token (a "bearer") can use the token in any way that any other party in possession of it can. • token_type: Bearer • Token can be presented to the RS in HTTP Authorization Header, Body Parameter, or Query Parameter • Requires TLS • Token structure still undefined 46 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 47. MAC Access Tokens • A.k.a. Proof of possession token, proof token, HoK token • Defines an HTTP MAC access authentication scheme (key id, MAC key & algorithm, and issue time) – Id is sent with request – Key is shared symmetric secret between the client and the server used to „sign‟ requests (thereby proving possession of the secret) • OAuth 2.0 binding for use as an access-token type – token_type: mac – Key id is the access_token • Format & structure is still undefined – mac_key & mac_algorithm as additional parameters • Protects against token leakage • Kinda still needs TLS in some cases • Future uncertain… 47 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 48. More Terminology: Endpoints • AS Endpoints – Authorization endpoint • used, via user-agent redirection, to authenticate and obtain authorization from the resource owner. • End user on the front channel. – Token endpoint • Used to exchange an authorization grant for an access token. • Client on the back channel. • Client Endpoint – Redirection URI • After completing its interaction with the resource owner, the AS directs the resource owner's user-agent back to the client at the client‟s redirection URI. • Front channel callback 48 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 49. Terminology: Authorization Grant • General term used to describe the intermediate credentials representing the resource owner authorization • Serves as an abstraction layer – not the cleanest abstraction • Used by the client to obtain an access token • All token endpoint calls involve exchanging some grant for an access token • Spec defines several types as well as an extensibility mechanism 49 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 50. Terminology: Scope • The definition of scope is (mostly) out of scope – See what I did there? – The scope of the access request is expressed as a list of space-delimited, case sensitive strings. – Order doesn‟t matter. – The value and meaning of scope strings are defined by the authorization server. • Requesting/granting specific scope(s) allows the access rights associated with a token to be limited – Enables the principle of least privilege (or less privilege anyway) – Only ask for what is needed 50 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 51. Some Scope Examples • Facebook – publish_stream – publish_checkins – read_mailbox – email – user_status • Google – https://www.googleapis.com/auth/adsense – https://www.googleapis.com/auth/plus.me – https://www.googleapis.com/auth/urlshortener – https://mail.google.com/mail/feed/atom – https://www.googleapis.com/auth/plus.me • OpenID Connect – openid – email – profile – phone – address 51 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 52. Abstract Flow • Client obtains authorization grant from resource owner* • Client calls the authorization server to exchange the grant for an access token** • Client uses the access token to access protected resources at the resource server*** *sometimes **usually ***probably 52 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 53. Authorization Grant Types • authorization code • implicit* • resource owner password credentials • client credentials • refresh token • Extensions * one of these things is not like the others… 53 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 54. Grant Type: Authorization Code • Client sends resource owner, via browser, to the authorization endpoint at the AS – End-user authenticates – End-user approves requested access • AS sends the end-user to the client‟s redirect URI and includes the authorization code as a query parameter • Client receives the redirection callback, extracts the code, and sends it to the AS in exchange for an access token (and probably a refresh token) • Great for web app clients – Client authentication – Easy to handle the redirect • Okay for mobile clients – Without client authentication – Need tricks to handle the redirect/callback 54 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 55. Getting an Authorization Code Authorization Request GET /as/authorization.oauth2?client_id=aclient& redirect_uri=https%3A//client.example.com/cb& response_type=code&scope=beer+hockey+donuts HTTP/1.1 Host: server.example.com […This is where the magic happens…] Authorization Response HTTP/1.1 302 Found Location: https://client.example.com/cb?code=GecMEdixSKRJO8xfpCXHg9Fg2 Hze 55 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 56. Exchange Authorization Code for Access Token Access Token Request POST /as/token.oauth2 HTTP/1.1 Host: as.example.com Content-Type: application/x-www-form-urlencoded client_id=aclient&client_secret=hoser&redirect_uri=https%3A//client.example.com/cb&grant_ty pe=authorization_code&code=GecMEdixSKRJO8xfpCXHg9Fg2Hze Access Token Response HTTP/1.1 200 OK Cache-Control: no-store Pragma: no-cache Content-Type: application/json;charset=UTF-8 { "token_type":"Bearer", "access_token":"a0VuzD3NfDsjCsTUZB5LmXs7WPQ1x07DCHR”, "expires_in":3600, "refresh_token":"mSTBpqQcSkRECNfDclfRDjREnmqeWVap0DseM6aXkixIX” } 56 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 57. Brief Interlude: Using the Access Token Protected Resource Request with a Bearer Token GET /double/secret/probation/resource HTTP/1.1 Host: rs.example.com Authorization: Bearer a0VuzD3NfDsjCsTUZB5LmXs7WPQ1x07DCHR MAC Token a Bit More Complicated POST /take/off/eh HTTP/1.1 Host: rs.example.com Content-Type: application/x-www-form-urlencoded Authorization: MAC id="jd93dh9dh39D", nonce="273156:di3hvdf8", bodyhash="k9kbtCIy0CkI3/FEfpS/oIDjk6k=", mac="W7bdMZbv9UWOTadASIQHagZyirA=" 57 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 58. Grant Type: Implicit • Similar to the authorization code flow except… • After resource owner authentication and authorization, the AS sends the end-user to the client‟s redirect URI and includes the access token on the fragment (#) • No token endpoint call so not *really* a grant type • Optimized for „widget‟ clients or in-browser JavaScript applications • Could also work for native/mobile clients 58 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 59. Getting a Token with Implicit Authorization Request GET /as/authorization.oauth2?client_id=aclient& redirect_uri=https%3A//client.example.com/cb&response_type=token HTTP/1.1 Host: server.example.com […magic happens…] Authorization Response HTTP/1.1 302 Found Location: https://client.example.com/cb#expires_in=3600 &token_type=Bearer&access_token=gBjAAf7Io0FIfwZaXDTRQg0d7GTwAOL7G6e Protected Resource Request GET /double/secret/probation/resource HTTP/1.1 Host: rs.example.com Authorization: Bearer gBjAAf7Io0FIfwZaXDTRQg0d7GTwAOL7G6e 59 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 60. Grant Type: Resource Owner Password Credentials • Client obtains resource owner‟s username and password directly from the resource owner and sends them directly to the AS as a grant. • Requires trust in the client. • Refresh token eliminates the need for the client to store the password. • Somewhat intended as a migration mechanism 60 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 61. Exchange Resource Owner Password Credentials for Access Token Access Token Request POST /as/token.oauth2 HTTP/1.1 Host: as.example.com Authorization: Basic c29tZWNsaWVudDpBbWVyaWNhJ3NIYXQ= Content-Type: application/x-www-form-urlencoded grant_type=password&username=pmadsen&password=uselesstaxonomy Access Token Response HTTP/1.1 200 OK Cache-Control: no-store Pragma: no-cache Content-Type: application/json; charset=UTF-8 { "token_type":"Bearer", "access_token":"a0VuzD3NfDsjCsTUZB5LmXs7WPQ1x07DCHR”, "expires_in":3600, "refresh_token":"mSTBpqQcSkRECNfDclfRDjREnmqeWVap0DseM6aXkixIX” } 61 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 62. Grant Type: Client Credentials • Client can request an access token using only its own credentials • For resources under the client‟s control or other resources as policy dictates • MUST only be used by “private” clients (clients that can authenticate securely) • No refresh token • Client Authentication Mechanisms – client_id & client_secret parameters – HTTP Basic – “The authorization server MAY support any suitable HTTP authentication scheme matching its security requirements” – Mutual TLS – client_assertion & client_assertion_type parameters 62 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 63. Grant Type: Refresh Token • If a refresh token was issued to the client during the exchange of a prior grant, it can be used as an authorization grant to get a new access token – Unless revoked or otherwise invalid • Refresh an expired access token without involving direct user authorization • The AS may issue a new refresh token – Good security hygiene 63 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 64. Refreshing an Access Token Access Token Request POST /as/token.oauth2 HTTP/1.1 Host: as.example.com Authorization: Basic c29tZWNsaWVudDpBbWVyaWNhJ3NIYXQ= Content-Type: application/x-www-form-urlencoded grant_type=refresh_token&refresh_token=1StDpqQcSk1CNf7clfRjREnmqeiVap0DseM6aXkixI11 Access Token Response HTTP/1.1 200 OK Cache-Control: no-store Pragma: no-cache Content-Type: application/json; charset=UTF-8 { "token_type":"Bearer", "access_token":"MdqBuexXYlMSogbrAwiPP47eGxGqZajuJNa”, "expires_in":3600, "refresh_token":"hlyEOO9PXgmvPiYI8g68KSEs2HQhgrkiUQGsc9Xxskd” } 64 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 65. Extension Grant Types • Extension authorization grant types can be defined by assigning them a unique absolute URI for use with the "grant_type" parameter. • Extensions can define additional parameters needed. • Enables bridging between OAuth and other protocols. – SAML 2.0 – JWT 1.0 • (kind of) Enables other stuff too – Bearer access token validation – STS style token exchange 65 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 66. Partial Specification Landscape Getting a Token Using a Token The OAuth 2.0 Authorization Framework The OAuth 2.0 Protocol: Bearer Tokens draft-ietf-oauth-v2 draft-ietf-oauth-v2-bearer HTTP Authentication: MAC Access Authentication draft-ietf-oauth-v2-http-mac Extension Grants & OAuth 2.0 Assertion Profile Client Authentication draft-ietf-oauth-assertions Tokens Assertions and Protocols for SAML V2.0 saml-core-2.0-os XML Sec SAML 2.0 Bearer Assertion Grant JSON Web Token (JWT) Type Profile for OAuth 2.0 draft-ietf-oauth-json-web-token draft-ietf-oauth-saml2-bearer JSON Web Token (JWT) Bearer JSON Web Signature (JWS) Profile for OAuth 2.0 draft-ietf-jose-json-web-signature draft-ietf-oauth-jwt-bearer JSON Web Signature (JWE) draft-ietf-jose-json-web-encryption JSON Web Key (JWK) Other Protocols JOSE draft-ietf-jose-json-web-key User-Managed Access (UMA) JSON Web Key (JWA) Core Protocol OpenID Connect 1.0 draft-ietf-jose-json-web-algorithms draft-hardjono-oauth-umacore 66 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 67. Agenda • Introduction • OAuth drivers • Screenshot demo • OAuth history • OAuth 2 • OAuth in context • OAuth security model 67 Copyright ©2012 Ping Identity Corporation. All rights reserved. 67 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 68. OAuth in Context Compare, Contrast & Compose 68 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 69. OAuth relationship to OpenID • They are different – Authorization vs. Authentication • They share similarities – Web redirect flows • Client to AS • RP to OP – End user authentication • To AS • To OP • Lines between roles and goals of each often blur – An OP is also an AS who has RSs that the Client/RP wants to access – An AS can be an RS and defer to an OP for user authentication • Similarities and overlap have, in part, motivated the building the next version of OpenID „on top of‟ OAuth 69 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 70. OpenID Connect • Adds a thin 'identity layer' onto OAuth 2.0 • Designed to address limitations of OpenID 2.0 (URL length issues, LOA ceiling, implementation complexity, etc.) • Reflects a harmonization of multiple competing visions for evolution of OpenID 2.0 • Designed to allow for support of higher LOA 70 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 71. OpenID Connect Family tree Artifact Hybrid Extension OAuth 1 OAuth 2 JWT 71 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 72. 72 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 73. OpenID Connect relation to OAuth • Whereas OAuth is a general mechanism to authorize API access, OpenID Connect profiles the generic for purposes of sharing profile information • OpenID Connect adds a security token explicitly for SSO from AS to Client • Uses the authorization code & implicit grant types – the pieces of OAuth optimized for user- consent scenarios • Leverages the authorization & token endpoints & adds identity-based params to core OAuth messages 73 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 74. SAML & OAuth SAML 'Hybrid' – carry OAuth token OAuth in SAML SSO messages SAML assertions sent within OAuth OAuth messages SAML SAML OAuth 'Sequencing' – use SAML SSO to authenticate user to AS 74 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 75. Sequencing SAML & OAuth OAuth SAML OAuth 75 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 76. Trading Tokens SAML JWT Profiles for specific assertion Formats [2] & [3] Assertion profile How to use assertions as a grant type [1] (also client authentication) OAuth Core protocol [0] [0] - http://tools.ietf.org/html/draft-ietf-oauth-v2 [1] - http://tools.ietf.org/html/draft-ietf-oauth-assertions [2] - http://tools.ietf.org/html/draft-ietf-oauth-saml2-bearer 76 [3] - http://tools.ietf.org/html/draft-ietf-oauth-jwt-bearer Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 77. Using a SAML Assertion (or JWT) as an OAuth grant type SAML POST /token.oauth2 HTTP/1.1 Host: authz.example.net Content-Type: application/x-www-form-urlencoded grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Asaml2-bearer &assertion=PEFzc2VydGlvbiBJc3N1ZUluc3Rh [...omitted for brevity...]lbnQ-PC9Bc3NlcnRpb24- JWT POST /token.oauth2 HTTP/1.1 Host: authz.example.net Content-Type: application/x-www-form-urlencoded grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer &assertion=eyJhbGciOiJFUzI1NiJ9.eyJpc3Mi[...omitted for brevity...].J9lZhwP_2n[...omitted...] 77 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 78. OAuth relationship to XACML • eXtensible Access Control Markup Language – A declarative access control policy language in XML and a processing model describing how to evaluate authorization requests according to the rules defined in policies. – PAP • Administration – PDP • Decision – PEP • Enforcement Though both focused on authorization, OAuth & XACML are very different animals 78 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 79. OAuth is Authorization? • Depends on what part of the authz elephant you are looking at – Policy (XACML) – Query (XACML/SAML profile) – Claims (SAML & JWT) – User consent (OAuth) – Permissions (OAuth) But if your use cases don’t involve user-consent, then OAuth starts to look more like authentication (be careful) 79 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 80. UMA & OAuth • User Managed Access extends OAuth 2.0 to allow for a user to manage access to multiple (and distributed) resources through centralized Authorization Manager • UMA “provides a method for users to control access to their protected resources, residing on any number of host sites, through an authorization manager that governs access decisions based on user policy.” • Leverages separation between AS & RS introduced with WRAP & v2 • Defines how a host can ask the authorization manager to validate tokens in real • Supports more dynamic registration 80 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 81. Agenda • Introduction • OAuth drivers • Screenshot demo • OAuth history • OAuth 2 • OAuth in context • OAuth security model 81 Copyright ©2012 Ping Identity Corporation. All rights reserved. 81 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 82. OAuth 2 Security Model • Well, it sort of depends… – Token type – Grant type – Client type • Also, it‟s kind of complicated… • Threat model doc is as long as the core spec – http://tools.ietf.org/html/draft-ietf-oauth-v2-threatmodel (currently at -06) • So just going to look at some aspects of it here 82 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 83. Session Cookie Analogy • OAuth using bearer tokens is sort of like session cookies for API/resource access • Generally you login to a website and are issued a session cookie for subsequent requests • Grant is like the login while the access token is like the session cookie • TLS is required at every step • Cookies rely on same origin policy • Access tokens rely on static or well know servers • Neither is perfect • Discovery cannot be safely done with bearer tokens 83 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 84. What about MAC? • Helps with the discovery problem • Still kind of similar to session cookies – In fact, the MAC spec once defined an extension to the HTTP "Set-Cookie " response header field – Didn‟t last • Does prevents credential leakage • Can be used over insecure channels – Adds complexity (normalization, cryptography, state management) – No confidentiality (still need TLS for that) • Spec‟s future is unclear… – Return of the MAC part II? – Others (last week, for example, draft-tschofenig-oauth- hotk-00)? 84 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 85. Tokens & Signing • Signed Tokens – Token is signed by the issuer (AS) – JWT, SWT, SAML, etc. – Token is self-contained • Signing with Tokens – Client signs the request with some secret issued along side the token – MAC – Token can be self-contained or reference 85 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 86. But Why aren‟t Tokens Defined? • It‟s okay, it really is • I don‟t know why exactly, but I‟ve grown to accept and even like it • It does imply some level of coordination between the AS & RS • Time will tell… 86 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 87. Not for Single Sign-On • OAuth (alone) is not for cross domain SSO – Primarily about protecting the protected resource • That‟s why it‟s called that • While also enabling delegated access – But not the client • (Under certain circumstances) a token or code can be swapped and used to gain full access to a different client – Client relying on OAuth to authenticate to resources other than the RS for which the access token is issued – Implicit & unauthenticated code flows • A user grants a client access to info/resources at an RS but not to access resources a different client/website – Client has not Authenticated the user but rather only gotten delegated access to the users information. • A good discussion of the issue by my colleague John Bradley – http://www.thread-safe.com/2012/01/problem-with-oauth-for-authentication.html 87 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 88. Other Security Stuff • Reference style tokens need sufficient entropy • Revocation is good to provide • TLS • Client authentication and binding clients to grants/codes/tokens – Identification alone is also useful • Brute force countermeasures • Token storage • Token/code leakage • Phishing • Did I mention TLS? • Scope of scopes 88 Copyright © 2012. Cloud Identity Summit. All Rights Reserved.
  • 89. Thanks! (and time permitting) Questions? (there are no stupid questions, only stupid answers and I‟m tremendously qualified to deliver such answers) OAuth 101 & Secure API's It's all ball bearings (APIs) nowadays Brian Campbell 89 @weeUnquietMind Copyright © 2012. Cloud Identity Summit. All Rights Reserved.