SlideShare ist ein Scribd-Unternehmen logo
1 von 41
API Security and
Federation Patterns
QCon San Francisco - November 13, 2013
Francois Lascelles, Chief Architect, Layer 7 Technologies

#qconsf
#OAuth
@flascelles
Agenda
 Introduction
 API Security Components
 Authorization Server Patterns
–
–
–
–
–

Two-way token issuing
Redirection-based token issuing
Nested handshakes
Federated handshakes
Other extension handshakes

 Vulnerabilities and Mitigation
– Fishing attacks
– Public vs Confidential clients
– Bearer vs MAC token types

 Managing API Security
2

API Security and Federation Patterns
Information fragmentation
– Users and organizations interact with IT assets fragmented across
an increasing number of service providers, applications and
devices

Your Org

– In isolation, each asset provides limited value
3

API Security and Federation Patterns
Application-to-application interaction

– APIs let providers and applications interact
 HTTP
 REST

 OData
 XML/JSON
 Web Services

4

API Security and Federation Patterns
Secure API exchange

– These APIs deal with personal and/or sensitive information and need to
be secured
 Confidentiality
 Integrity
 Availability
 …

5

API Security and Federation Patterns
Interactions on behalf of users

– OAuth lets users and organizations control these interactions
 Express consent
 Limit scope
 Turn on/off

6

API Security and Federation Patterns
API security logical components

IdP

User

Authorization Server
Application

Token Server
Policy Enforcement Point
Resource Server

7

API Security and Federation Patterns

API Endpoint
Authorization server patterns

Let us count the ways…

8

API Security and Federation Patterns
Two-way handshakes
 Limit shared-secret exposure by negotiating temporary token

1. Authenticate with secret, get token

2. Consume API, include token in requests

9

API Security and Federation Patterns
E.g. OAuth client credentials grant type

 In this grant type, the application presents its own credentials
to get a token.
– No concept of user identity

 Alternatives
– Present client credentials with every API call (over secure channel)
– HMAC signatures for every API call

 Only for confidential clients
 No refresh token in this case

10

API Security and Federation Patterns
E.g. OAuth password grant type (ropc)
 Resource-owner password credentials
– For trusted apps only
– For public or confidential clients
– Optimal UX on mobile apps
1. App collects user credentials

POST /token
[Authorization: Basic optional]
Content-Type: application/x-www-form-urlencoded
grant_type=password&username=franco&password=bl
ah

Email:
_______
Passwd: _______
[Login]

3. App gets back token(s)
Content-Type: application/json
{
"access_token":”foo”,
"expires_in":3600,
["refresh_token":”optional”]
11

2. App uses creds in call to token
endpoint

}

API Security and Federation Patterns
Redirection-based handshakes

12

API Security and Federation Patterns
Redirection-based handshakes – Why?
 Avoid the password sharing anti-pattern

Online
statement

Pretend to be user
Pull statement

Please provide your cc account info:
• Username
• Password

This seems
wrong

13

Expense
system

API Security and Federation Patterns
RBH – step 1

(Authorization server)

Authenticate locally (if needed)
Express consent

14

Redirect

API Security and Federation Patterns
RBH – step 2

- User did not share
passwd with app
(callback address)

Redirect
back

15

Receive
code

API Security and Federation Patterns
RBH – step 3

tmp code

I can haz
token?

access token

Call API
(with token)

- Application now accesses

Much
better…
16

data on behalf of user

API Security and Federation Patterns
E.g. OAuth 2.0 code, implicit

OAuth 2.0 core specifies two variations on a redirection-based
handshake
1. Authorization code
–

As we just described

2. Implicit
– No temporary code
– App gets token directly through redirect back from authorization server

17

API Security and Federation Patterns
Social Login
 An application delegates user authentication to a social
platform
– Enhanced user experience
– Remove burden of managing shared secrets with users

18

API Security and Federation Patterns
Social Login – Step 1

 User click Login with [Social provider]
– Redirected to Social provider’s authorization server

 User authenticated, expresses consent

Do you authorize app to get basic info
about you?
Yes [x]
No [ ]

19

API Security and Federation Patterns
Social Login – Step 2

 User expresses consent
– Redirected back to the application
– Application now has OAuth access token to call API on behalf of user

++token

20

API Security and Federation Patterns
Social Login – Step 3

 App calls [Social provider]’s api
– User_info endpoint
– Discovers identity of user
– Attaches it to session between app and user-agent

Who was this? [access_token]
user_info

21

{ ‘sub’: ‘franco’, ‘email’: ‘flascelles@gmail.com’…}

API Security and Federation Patterns
Social Login -> OpenID Connect
 In this case, the API provided is there to enable the federated
authentication

 This pattern is specified in standard OpenID Connect
– Extends OAuth 2.0
– Describes user_info, ID token based on JWT, …

 Web-friendly and modern alternative to SAML web browser
SSO
– No SAML, no XML, no digital signatures,…

API Provider -> IdP
22

API Security and Federation Patterns
Nested handshakes
 When users interact with an authorization server, they need to
be authenticated

 What happens when the API provider wants to delegate
authentication to a social login/openid connect provider?

Username: _________
Password: _________ [Login]

Log in with [Google] [facebook] […]

23

API Security and Federation Patterns

Step 1
App wants to consume API
on behalf of user, redirects
to API provider’s
authorization server to get
back access token

app
Nested handshakes

Step 2
User redirected to IdP of choice so that the first
authorization server gets an access token from the
2nd authorization server

app
Do you authorize app* to get basic info
about you?
Yes [x]
No [ ]

24

API Security and Federation Patterns
Nested handshakes

Step 3
User redirected back, its identity now known to the
first authorization server, expresses consent.

Do you authorize app* to [scope] on
your behalf?
Yes [x]
No [ ]

25

API Security and Federation Patterns

app
Nested handshakes

Step 4
User redirected back to app. Nested handshakes
complete.

Two apps, two access tokens

26

API Security and Federation Patterns
Federated handshakes

 Application already has a ‘proof-of-authentication’, needs to
consume API on behalf of user
– Login using SAML on a web app
– OpenID Connect

 No redirection, no credentials

<saml>
{jwt}

27

?

API Security and Federation Patterns
Federated handshakes
 SAML Bearer Grant
– urn:ietf:params:oauth:grant-type:samXX-bearer
<saml>
access_token

 JWT Bearer Grant
– urn:ietf:params:oauth:grant-type:jwt-bearer
{jwt}
access_token
28

API Security and Federation Patterns
Example: Domain of apps sharing an auth context
 A domain of apps on a mobile device share an auth context
– OpenID Connect -> JWT

 Each app gets its own access token
– urn:ietf:params:oauth:grant-type:jwt-bearer

 Single sign-on experience
OpenID Connect

JWT Bearer Grant
Group KeyChain

API Provider

Mobile apps

29

API Security and Federation Patterns
Other ‘extension’ handshakes

 Challenge-response grant
– One-time passwords

– Risk-based, context-based auth
– Multi-factor

 [Insert Secret] bearer grant
– Cookie
– …

30

API Security and Federation Patterns
Threats and Mitigation

31

API Security and Federation Patterns
Fishing attacks
 Risk associated with redirection-based handshakes
– Malicious ‘application’ pretends to be legitimate
– Inserts its own endpoint in callback address
– Gets token

 (especially implicit grant)
Do you authorize Legitimate
app to access API on your
behalf?

Tricked
you

[X] Yes
[ ] No

GET
/authorize?response_type=token&client_id=legitimate
&redirect_uri=[malicious]
32

API Security and Federation Patterns
Fishing mitigation 101
 Register and validate redirection URIs
 Strict validation (not partial)

 Never skip consent step
(out-of-band)
Register Legitimate app
Callback=foo

foiled
Error
Invalid callback
GET
/authorize?response_type=token&client_id=legitimate
&redirect_uri=[malicious]
33

API Security and Federation Patterns
Fishing on mobile
 On the web, the user-agent is responsible for redirecting to
the callback address
– On the web, DNS resolves addresses and HTTPS validates server-side
trust

 With native mobile apps, each app registers its own URL
scheme instead
APPLE:
“If more than one third-party app registers to handle
the same URL scheme, there is currently no process
for determining which app will be given that scheme.
”
--link

34

API Security and Federation Patterns
Public vs confidential clients

 It’s either confidential, or it isn’t
– Don’t ‘hide’ a secret on a public app
store or render on a web page

(badly hidden witch)

35

API Security and Federation Patterns
Client confidentiality does strengthen security

 Assigned secrets to clients (when appropriate) adds security
– E.g. compromised refresh token:

1. Compromised
access tokens,
refresh
foiled tokens

2. Exploit stolen
token for x
minutes
3. Token expired

4. Attempt to get fresh token
(using refresh token)

5. Authentication required
36

API Security and Federation Patterns
Bearer vs MAC tokens

 Bearer

 MAC

Adoption!

Tough
choice

App developer
37

API Security and Federation Patterns
Bearer, use responsibly
 Bearer tokens are easier but need to be used responsibly
– Exchanged and used over a secure channel

- Don’t log them.
- Forget original (hash
them).

tokens in
query strings

App developer

API Publisher
OAuth Server Impl
38

- Don’t render them where
they can be copied from.
Store them securely.
Server-side trust

API Security and Federation Patterns
MAC, is it really more secure?
 Pros
– Better protected against man-in-the-middle
– If a request is intercepted, no big deal

 Cons
– You have to keep two secrets safe on the server side (per client)

39

API Security and Federation Patterns
Managing API Security

Extend
framework to
client app

Integrate

•
•
•
•
•

Authorization Server
Policy Enforcement Point
Resource Server
ALFW
…

Protect

Configure, not
code
40

API Security and Federation Patterns

•
•
•
•

Web SSO
Analytics
Dev/User Portal
…

Decouple
Thank you

QCon SF 2013
Francois Lascelles, Chief Architect, Layer 7 Technologies

Weitere ähnliche Inhalte

Was ist angesagt?

Oauth2 and OWSM OAuth2 support
Oauth2 and OWSM OAuth2 supportOauth2 and OWSM OAuth2 support
Oauth2 and OWSM OAuth2 support
Gaurav Sharma
 
Authentication: Cookies vs JWTs and why you’re doing it wrong
Authentication: Cookies vs JWTs and why you’re doing it wrongAuthentication: Cookies vs JWTs and why you’re doing it wrong
Authentication: Cookies vs JWTs and why you’re doing it wrong
Derek Perkins
 
Mohanraj - Securing Your Web Api With OAuth
Mohanraj - Securing Your Web Api With OAuthMohanraj - Securing Your Web Api With OAuth
Mohanraj - Securing Your Web Api With OAuth
fossmy
 

Was ist angesagt? (20)

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
 
REST Service Authetication with TLS & JWTs
REST Service Authetication with TLS & JWTsREST Service Authetication with TLS & JWTs
REST Service Authetication with TLS & JWTs
 
OAuth - Open API Authentication
OAuth - Open API AuthenticationOAuth - Open API Authentication
OAuth - Open API Authentication
 
API Security : Patterns and Practices
API Security : Patterns and PracticesAPI Security : Patterns and Practices
API Security : Patterns and Practices
 
Rest API Security - A quick understanding of Rest API Security
Rest API Security - A quick understanding of Rest API SecurityRest API Security - A quick understanding of Rest API Security
Rest API Security - A quick understanding of Rest API Security
 
OAuth2 + API Security
OAuth2 + API SecurityOAuth2 + API Security
OAuth2 + API Security
 
Oauth2 and OWSM OAuth2 support
Oauth2 and OWSM OAuth2 supportOauth2 and OWSM OAuth2 support
Oauth2 and OWSM OAuth2 support
 
Stateless authentication for microservices - GR8Conf 2015
Stateless authentication for microservices - GR8Conf 2015Stateless authentication for microservices - GR8Conf 2015
Stateless authentication for microservices - GR8Conf 2015
 
Secure Your REST API (The Right Way)
Secure Your REST API (The Right Way)Secure Your REST API (The Right Way)
Secure Your REST API (The Right Way)
 
API Security from the DevOps and CSO Perspectives (Webcast)
API Security from the DevOps and CSO Perspectives (Webcast)API Security from the DevOps and CSO Perspectives (Webcast)
API Security from the DevOps and CSO Perspectives (Webcast)
 
Authentication: Cookies vs JWTs and why you’re doing it wrong
Authentication: Cookies vs JWTs and why you’re doing it wrongAuthentication: Cookies vs JWTs and why you’re doing it wrong
Authentication: Cookies vs JWTs and why you’re doing it wrong
 
Mohanraj - Securing Your Web Api With OAuth
Mohanraj - Securing Your Web Api With OAuthMohanraj - Securing Your Web Api With OAuth
Mohanraj - Securing Your Web Api With OAuth
 
JavaOne 2014 - Securing RESTful Resources with OAuth2
JavaOne 2014 - Securing RESTful Resources with OAuth2JavaOne 2014 - Securing RESTful Resources with OAuth2
JavaOne 2014 - Securing RESTful Resources with OAuth2
 
Modern Security with OAuth 2.0 and JWT and Spring by Dmitry Buzdin
Modern Security with OAuth 2.0 and JWT and Spring by Dmitry BuzdinModern Security with OAuth 2.0 and JWT and Spring by Dmitry Buzdin
Modern Security with OAuth 2.0 and JWT and Spring by Dmitry Buzdin
 
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...
 
Making Sense of API Access Control
Making Sense of API Access ControlMaking Sense of API Access Control
Making Sense of API Access Control
 
ConFoo 2015 - Securing RESTful resources with OAuth2
ConFoo 2015 - Securing RESTful resources with OAuth2ConFoo 2015 - Securing RESTful resources with OAuth2
ConFoo 2015 - Securing RESTful resources with OAuth2
 
Enabling Cloud Native Security with OAuth2 and Multi-Tenant UAA
Enabling Cloud Native Security with OAuth2 and Multi-Tenant UAA Enabling Cloud Native Security with OAuth2 and Multi-Tenant UAA
Enabling Cloud Native Security with OAuth2 and Multi-Tenant UAA
 
Enterprise Access Control Patterns for REST and Web APIs Gluecon 2011, Franco...
Enterprise Access Control Patterns for REST and Web APIs Gluecon 2011, Franco...Enterprise Access Control Patterns for REST and Web APIs Gluecon 2011, Franco...
Enterprise Access Control Patterns for REST and Web APIs Gluecon 2011, Franco...
 
Securty Testing For RESTful Applications
Securty Testing For RESTful ApplicationsSecurty Testing For RESTful Applications
Securty Testing For RESTful Applications
 

Ähnlich wie API Security & Federation Patterns - Francois Lascelles, Chief Architect, Layer 7 @ QCon SF

Ähnlich wie API Security & Federation Patterns - Francois Lascelles, Chief Architect, Layer 7 @ QCon SF (20)

Federation Evolved: How Cloud, Mobile & APIs Change the Way We Broker Identity
Federation Evolved: How Cloud, Mobile & APIs Change the Way We Broker IdentityFederation Evolved: How Cloud, Mobile & APIs Change the Way We Broker Identity
Federation Evolved: How Cloud, Mobile & APIs Change the Way We Broker Identity
 
Stateless Auth using OAuth2 & JWT
Stateless Auth using OAuth2 & JWTStateless Auth using OAuth2 & JWT
Stateless Auth using OAuth2 & JWT
 
OAuth in the Wild
OAuth in the WildOAuth in the Wild
OAuth in the Wild
 
Stateless Auth using OAUTH2 & JWT
Stateless Auth using OAUTH2 & JWTStateless Auth using OAUTH2 & JWT
Stateless Auth using OAUTH2 & JWT
 
O auth2.0 guide
O auth2.0 guideO auth2.0 guide
O auth2.0 guide
 
e-SUAP - Security - Windows azure access control list (english version)
e-SUAP - Security - Windows azure access control list (english version)e-SUAP - Security - Windows azure access control list (english version)
e-SUAP - Security - Windows azure access control list (english version)
 
Microservice security with spring security 5.1,Oauth 2.0 and open id connect
Microservice security with spring security 5.1,Oauth 2.0 and open id connect Microservice security with spring security 5.1,Oauth 2.0 and open id connect
Microservice security with spring security 5.1,Oauth 2.0 and open id connect
 
O auth2 with angular js
O auth2 with angular jsO auth2 with angular js
O auth2 with angular js
 
API Security - Null meet
API Security - Null meetAPI Security - Null meet
API Security - Null meet
 
Balancing Mobile UX & Security: An API Management Perspective Presentation fr...
Balancing Mobile UX & Security: An API Management Perspective Presentation fr...Balancing Mobile UX & Security: An API Management Perspective Presentation fr...
Balancing Mobile UX & Security: An API Management Perspective Presentation fr...
 
Oauth Nightmares Abstract OAuth Nightmares
Oauth Nightmares Abstract OAuth Nightmares Oauth Nightmares Abstract OAuth Nightmares
Oauth Nightmares Abstract OAuth Nightmares
 
Devteach 2017 OAuth and Open id connect demystified
Devteach 2017 OAuth and Open id connect demystifiedDevteach 2017 OAuth and Open id connect demystified
Devteach 2017 OAuth and Open id connect demystified
 
Iam f42 a
Iam f42 aIam f42 a
Iam f42 a
 
LF_APIStrat17_OWASP’s Latest Category: API Underprotection
LF_APIStrat17_OWASP’s Latest Category: API UnderprotectionLF_APIStrat17_OWASP’s Latest Category: API Underprotection
LF_APIStrat17_OWASP’s Latest Category: API Underprotection
 
OAuth with Salesforce - Demystified
OAuth with Salesforce - DemystifiedOAuth with Salesforce - Demystified
OAuth with Salesforce - Demystified
 
OAuth 2.0 - The fundamentals, the good , the bad, technical primer and commo...
OAuth 2.0  - The fundamentals, the good , the bad, technical primer and commo...OAuth 2.0  - The fundamentals, the good , the bad, technical primer and commo...
OAuth 2.0 - The fundamentals, the good , the bad, technical primer and commo...
 
Presentation
PresentationPresentation
Presentation
 
attacks-oauth-secure-oauth-implementation-33644.pdf
attacks-oauth-secure-oauth-implementation-33644.pdfattacks-oauth-secure-oauth-implementation-33644.pdf
attacks-oauth-secure-oauth-implementation-33644.pdf
 
Access Management for Cloud and Mobile
Access Management for Cloud and MobileAccess Management for Cloud and Mobile
Access Management for Cloud and Mobile
 
OAuth2 primer
OAuth2 primerOAuth2 primer
OAuth2 primer
 

Mehr von CA API Management

5 steps end to end security consumer apps
5 steps end to end security consumer apps5 steps end to end security consumer apps
5 steps end to end security consumer apps
CA API Management
 

Mehr von CA API Management (20)

Api architectures for the modern enterprise
Api architectures for the modern enterpriseApi architectures for the modern enterprise
Api architectures for the modern enterprise
 
Mastering Digital Channels with APIs
Mastering Digital Channels with APIsMastering Digital Channels with APIs
Mastering Digital Channels with APIs
 
Takeaways from API Security Breaches Webinar
Takeaways from API Security Breaches WebinarTakeaways from API Security Breaches Webinar
Takeaways from API Security Breaches Webinar
 
API Design Methodology - Mike Amundsen, Director of API Architecture, API Aca...
API Design Methodology - Mike Amundsen, Director of API Architecture, API Aca...API Design Methodology - Mike Amundsen, Director of API Architecture, API Aca...
API Design Methodology - Mike Amundsen, Director of API Architecture, API Aca...
 
Liberating the API Economy with Scale-Free Networks - Mike Amundsen, Director...
Liberating the API Economy with Scale-Free Networks - Mike Amundsen, Director...Liberating the API Economy with Scale-Free Networks - Mike Amundsen, Director...
Liberating the API Economy with Scale-Free Networks - Mike Amundsen, Director...
 
API360 – A How-To Guide for Enterprise APIs - Learn how to position your ente...
API360 – A How-To Guide for Enterprise APIs - Learn how to position your ente...API360 – A How-To Guide for Enterprise APIs - Learn how to position your ente...
API360 – A How-To Guide for Enterprise APIs - Learn how to position your ente...
 
API Monetization: Unlock the Value of Your Data
API Monetization: Unlock the Value of Your DataAPI Monetization: Unlock the Value of Your Data
API Monetization: Unlock the Value of Your Data
 
Revisiting Geddes' Outlook Tower - Mike Amundsen, Director of API Architectur...
Revisiting Geddes' Outlook Tower - Mike Amundsen, Director of API Architectur...Revisiting Geddes' Outlook Tower - Mike Amundsen, Director of API Architectur...
Revisiting Geddes' Outlook Tower - Mike Amundsen, Director of API Architectur...
 
Managing Identity by Giving Up Control - Scott Morrison, SVP & Distinguished ...
Managing Identity by Giving Up Control - Scott Morrison, SVP & Distinguished ...Managing Identity by Giving Up Control - Scott Morrison, SVP & Distinguished ...
Managing Identity by Giving Up Control - Scott Morrison, SVP & Distinguished ...
 
Enabling the Multi-Device Universe
Enabling the Multi-Device UniverseEnabling the Multi-Device Universe
Enabling the Multi-Device Universe
 
Building APIs That Last for Decades - Irakli Nadareishvili, Director of API S...
Building APIs That Last for Decades - Irakli Nadareishvili, Director of API S...Building APIs That Last for Decades - Irakli Nadareishvili, Director of API S...
Building APIs That Last for Decades - Irakli Nadareishvili, Director of API S...
 
The Art of API Design - Ronnie Mitra, Director of API Design, API Academy at ...
The Art of API Design - Ronnie Mitra, Director of API Design, API Academy at ...The Art of API Design - Ronnie Mitra, Director of API Design, API Academy at ...
The Art of API Design - Ronnie Mitra, Director of API Design, API Academy at ...
 
APIs Fueling the Connected Car Opportunity - Scott Morrison, SVP & Distinguis...
APIs Fueling the Connected Car Opportunity - Scott Morrison, SVP & Distinguis...APIs Fueling the Connected Car Opportunity - Scott Morrison, SVP & Distinguis...
APIs Fueling the Connected Car Opportunity - Scott Morrison, SVP & Distinguis...
 
Adapting to Digital Change: Use APIs to Delight Customers & Win
Adapting to Digital Change: Use APIs to Delight Customers & WinAdapting to Digital Change: Use APIs to Delight Customers & Win
Adapting to Digital Change: Use APIs to Delight Customers & Win
 
Balancing Security & Developer Enablement in Enterprise Mobility - Jaime Ryan...
Balancing Security & Developer Enablement in Enterprise Mobility - Jaime Ryan...Balancing Security & Developer Enablement in Enterprise Mobility - Jaime Ryan...
Balancing Security & Developer Enablement in Enterprise Mobility - Jaime Ryan...
 
5 steps end to end security consumer apps
5 steps end to end security consumer apps5 steps end to end security consumer apps
5 steps end to end security consumer apps
 
Best Practices You Must Apply to Secure Your APIs - Scott Morrison, SVP & Dis...
Best Practices You Must Apply to Secure Your APIs - Scott Morrison, SVP & Dis...Best Practices You Must Apply to Secure Your APIs - Scott Morrison, SVP & Dis...
Best Practices You Must Apply to Secure Your APIs - Scott Morrison, SVP & Dis...
 
Drones, Phones & Pwns the Promise & Dangers of IoT APIs: Use APIs to Securely...
Drones, Phones & Pwns the Promise & Dangers of IoT APIs: Use APIs to Securely...Drones, Phones & Pwns the Promise & Dangers of IoT APIs: Use APIs to Securely...
Drones, Phones & Pwns the Promise & Dangers of IoT APIs: Use APIs to Securely...
 
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...
 
Using APIs to Create an Omni-Channel Retail Experience
Using APIs to Create an Omni-Channel Retail ExperienceUsing APIs to Create an Omni-Channel Retail Experience
Using APIs to Create an Omni-Channel Retail Experience
 

Kürzlich hochgeladen

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Kürzlich hochgeladen (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

API Security & Federation Patterns - Francois Lascelles, Chief Architect, Layer 7 @ QCon SF

  • 1. API Security and Federation Patterns QCon San Francisco - November 13, 2013 Francois Lascelles, Chief Architect, Layer 7 Technologies #qconsf #OAuth @flascelles
  • 2. Agenda  Introduction  API Security Components  Authorization Server Patterns – – – – – Two-way token issuing Redirection-based token issuing Nested handshakes Federated handshakes Other extension handshakes  Vulnerabilities and Mitigation – Fishing attacks – Public vs Confidential clients – Bearer vs MAC token types  Managing API Security 2 API Security and Federation Patterns
  • 3. Information fragmentation – Users and organizations interact with IT assets fragmented across an increasing number of service providers, applications and devices Your Org – In isolation, each asset provides limited value 3 API Security and Federation Patterns
  • 4. Application-to-application interaction – APIs let providers and applications interact  HTTP  REST  OData  XML/JSON  Web Services 4 API Security and Federation Patterns
  • 5. Secure API exchange – These APIs deal with personal and/or sensitive information and need to be secured  Confidentiality  Integrity  Availability  … 5 API Security and Federation Patterns
  • 6. Interactions on behalf of users – OAuth lets users and organizations control these interactions  Express consent  Limit scope  Turn on/off 6 API Security and Federation Patterns
  • 7. API security logical components IdP User Authorization Server Application Token Server Policy Enforcement Point Resource Server 7 API Security and Federation Patterns API Endpoint
  • 8. Authorization server patterns Let us count the ways… 8 API Security and Federation Patterns
  • 9. Two-way handshakes  Limit shared-secret exposure by negotiating temporary token 1. Authenticate with secret, get token 2. Consume API, include token in requests 9 API Security and Federation Patterns
  • 10. E.g. OAuth client credentials grant type  In this grant type, the application presents its own credentials to get a token. – No concept of user identity  Alternatives – Present client credentials with every API call (over secure channel) – HMAC signatures for every API call  Only for confidential clients  No refresh token in this case 10 API Security and Federation Patterns
  • 11. E.g. OAuth password grant type (ropc)  Resource-owner password credentials – For trusted apps only – For public or confidential clients – Optimal UX on mobile apps 1. App collects user credentials POST /token [Authorization: Basic optional] Content-Type: application/x-www-form-urlencoded grant_type=password&username=franco&password=bl ah Email: _______ Passwd: _______ [Login] 3. App gets back token(s) Content-Type: application/json { "access_token":”foo”, "expires_in":3600, ["refresh_token":”optional”] 11 2. App uses creds in call to token endpoint } API Security and Federation Patterns
  • 13. Redirection-based handshakes – Why?  Avoid the password sharing anti-pattern Online statement Pretend to be user Pull statement Please provide your cc account info: • Username • Password This seems wrong 13 Expense system API Security and Federation Patterns
  • 14. RBH – step 1 (Authorization server) Authenticate locally (if needed) Express consent 14 Redirect API Security and Federation Patterns
  • 15. RBH – step 2 - User did not share passwd with app (callback address) Redirect back 15 Receive code API Security and Federation Patterns
  • 16. RBH – step 3 tmp code I can haz token? access token Call API (with token) - Application now accesses Much better… 16 data on behalf of user API Security and Federation Patterns
  • 17. E.g. OAuth 2.0 code, implicit OAuth 2.0 core specifies two variations on a redirection-based handshake 1. Authorization code – As we just described 2. Implicit – No temporary code – App gets token directly through redirect back from authorization server 17 API Security and Federation Patterns
  • 18. Social Login  An application delegates user authentication to a social platform – Enhanced user experience – Remove burden of managing shared secrets with users 18 API Security and Federation Patterns
  • 19. Social Login – Step 1  User click Login with [Social provider] – Redirected to Social provider’s authorization server  User authenticated, expresses consent Do you authorize app to get basic info about you? Yes [x] No [ ] 19 API Security and Federation Patterns
  • 20. Social Login – Step 2  User expresses consent – Redirected back to the application – Application now has OAuth access token to call API on behalf of user ++token 20 API Security and Federation Patterns
  • 21. Social Login – Step 3  App calls [Social provider]’s api – User_info endpoint – Discovers identity of user – Attaches it to session between app and user-agent Who was this? [access_token] user_info 21 { ‘sub’: ‘franco’, ‘email’: ‘flascelles@gmail.com’…} API Security and Federation Patterns
  • 22. Social Login -> OpenID Connect  In this case, the API provided is there to enable the federated authentication  This pattern is specified in standard OpenID Connect – Extends OAuth 2.0 – Describes user_info, ID token based on JWT, …  Web-friendly and modern alternative to SAML web browser SSO – No SAML, no XML, no digital signatures,… API Provider -> IdP 22 API Security and Federation Patterns
  • 23. Nested handshakes  When users interact with an authorization server, they need to be authenticated  What happens when the API provider wants to delegate authentication to a social login/openid connect provider? Username: _________ Password: _________ [Login] Log in with [Google] [facebook] […] 23 API Security and Federation Patterns Step 1 App wants to consume API on behalf of user, redirects to API provider’s authorization server to get back access token app
  • 24. Nested handshakes Step 2 User redirected to IdP of choice so that the first authorization server gets an access token from the 2nd authorization server app Do you authorize app* to get basic info about you? Yes [x] No [ ] 24 API Security and Federation Patterns
  • 25. Nested handshakes Step 3 User redirected back, its identity now known to the first authorization server, expresses consent. Do you authorize app* to [scope] on your behalf? Yes [x] No [ ] 25 API Security and Federation Patterns app
  • 26. Nested handshakes Step 4 User redirected back to app. Nested handshakes complete. Two apps, two access tokens 26 API Security and Federation Patterns
  • 27. Federated handshakes  Application already has a ‘proof-of-authentication’, needs to consume API on behalf of user – Login using SAML on a web app – OpenID Connect  No redirection, no credentials <saml> {jwt} 27 ? API Security and Federation Patterns
  • 28. Federated handshakes  SAML Bearer Grant – urn:ietf:params:oauth:grant-type:samXX-bearer <saml> access_token  JWT Bearer Grant – urn:ietf:params:oauth:grant-type:jwt-bearer {jwt} access_token 28 API Security and Federation Patterns
  • 29. Example: Domain of apps sharing an auth context  A domain of apps on a mobile device share an auth context – OpenID Connect -> JWT  Each app gets its own access token – urn:ietf:params:oauth:grant-type:jwt-bearer  Single sign-on experience OpenID Connect JWT Bearer Grant Group KeyChain API Provider Mobile apps 29 API Security and Federation Patterns
  • 30. Other ‘extension’ handshakes  Challenge-response grant – One-time passwords – Risk-based, context-based auth – Multi-factor  [Insert Secret] bearer grant – Cookie – … 30 API Security and Federation Patterns
  • 31. Threats and Mitigation 31 API Security and Federation Patterns
  • 32. Fishing attacks  Risk associated with redirection-based handshakes – Malicious ‘application’ pretends to be legitimate – Inserts its own endpoint in callback address – Gets token  (especially implicit grant) Do you authorize Legitimate app to access API on your behalf? Tricked you [X] Yes [ ] No GET /authorize?response_type=token&client_id=legitimate &redirect_uri=[malicious] 32 API Security and Federation Patterns
  • 33. Fishing mitigation 101  Register and validate redirection URIs  Strict validation (not partial)  Never skip consent step (out-of-band) Register Legitimate app Callback=foo foiled Error Invalid callback GET /authorize?response_type=token&client_id=legitimate &redirect_uri=[malicious] 33 API Security and Federation Patterns
  • 34. Fishing on mobile  On the web, the user-agent is responsible for redirecting to the callback address – On the web, DNS resolves addresses and HTTPS validates server-side trust  With native mobile apps, each app registers its own URL scheme instead APPLE: “If more than one third-party app registers to handle the same URL scheme, there is currently no process for determining which app will be given that scheme. ” --link 34 API Security and Federation Patterns
  • 35. Public vs confidential clients  It’s either confidential, or it isn’t – Don’t ‘hide’ a secret on a public app store or render on a web page (badly hidden witch) 35 API Security and Federation Patterns
  • 36. Client confidentiality does strengthen security  Assigned secrets to clients (when appropriate) adds security – E.g. compromised refresh token: 1. Compromised access tokens, refresh foiled tokens 2. Exploit stolen token for x minutes 3. Token expired 4. Attempt to get fresh token (using refresh token) 5. Authentication required 36 API Security and Federation Patterns
  • 37. Bearer vs MAC tokens  Bearer  MAC Adoption! Tough choice App developer 37 API Security and Federation Patterns
  • 38. Bearer, use responsibly  Bearer tokens are easier but need to be used responsibly – Exchanged and used over a secure channel - Don’t log them. - Forget original (hash them). tokens in query strings App developer API Publisher OAuth Server Impl 38 - Don’t render them where they can be copied from. Store them securely. Server-side trust API Security and Federation Patterns
  • 39. MAC, is it really more secure?  Pros – Better protected against man-in-the-middle – If a request is intercepted, no big deal  Cons – You have to keep two secrets safe on the server side (per client) 39 API Security and Federation Patterns
  • 40. Managing API Security Extend framework to client app Integrate • • • • • Authorization Server Policy Enforcement Point Resource Server ALFW … Protect Configure, not code 40 API Security and Federation Patterns • • • • Web SSO Analytics Dev/User Portal … Decouple
  • 41. Thank you QCon SF 2013 Francois Lascelles, Chief Architect, Layer 7 Technologies

Hinweis der Redaktion

  1. Think M2M
  2. 12.30
  3. This is very similar to saml web browsersso except that there is no complex saml to parse and digital signatures to validate
  4. 25m
  5. Show a domain of apps sharing a auth context in the form of a JWT issued from an openid connect handshake, then each app getting its own access token based on thatWeb-&gt;domain cookieMobile apps -&gt; a JWT stored in a shared keychain-&gt; ‘Mobile SSO’, ‘Layer 7 MAG”
  6. 37.30