SlideShare a Scribd company logo
API Services: Building State-of-the-Art APIs
Chris von See
Product Management
cvonsee@apigee.com
Four key topics . . .
1. Implementing optimal client-side API security
2. Configuring proxy runtime characteristics

3. Scripting capabilities in Apigee Edge (and how they just got better!)
4. The API Services datastore

©2013 Apigee Corp. All Rights Reserved.

2
Thinking about client-side applications…

Business to Business applications
✔

Mobile applications from developers you trust (like
yourself)

?

Mobile applications from developers you don't trust
(like open API developers)
Web applications that need authenticated access

©2013 Apigee Corp. All Rights Reserved.

3
Client-side security: Authentication and Authorization

Security scenario

OAuth grant type

Supports scope?

Business to Business

Client credentials grant (two-legged OAuth)

Yes

Developers you trust

Resource owner password grant

Yes

Developers you don’t trust

Authorization code grant (three-legged OAuth)

Yes

HTML5 applications

Implicit grant

Yes

• OAuthV1 and OAuthV2 policies, covering all four grant types

©2013 Apigee Corp. All Rights Reserved.

4
Client-side security: Identity tracking
• Why use API key based identity tracking instead of authorization and authentication?
–
–
–
–

Need registration and tracking of content/service users
No user-specific data involved
Rate limits or quota restrictions needed
Little or no risk associated with mis-appropriated keys

• API Key Validation, for identity-based access verification

©2013 Apigee Corp. All Rights Reserved.

5
Client-side security: Threat Protection

✔
Threat

Consequences

Denial of Service attack

Overwhelmed computing resources and inability to do business

Injection and scripting attacks

Corrupted or lost data, compromised servers or user systems

XML/JSON threats

Excessive resource utilization that can crash systems

•

Spike Arrest policy, for protection against instantaneous bursts of traffic

•

XML and JSON threat protection to keep malformed payloads out of your system

•

Regular expression protection, allowing you to scan payloads for SQL, JavaScript, etc.

•

IP address restrictions, imposing limits on who can access your API

©2013 Apigee Corp. All Rights Reserved.

6
Demonstration: Let's build a basic secure API…
Four key topics . . .

1. Implementing optimal API security

✔

2. Configuring proxy runtime characteristics
3. Scripting capabilities in Apigee Edge (and how they just got better!)
4. The API Services datastore

©2013 Apigee Corp. All Rights Reserved.

8
Why would you need to configure a proxy?
For use cases like this . . .
•

Use API Services features like this . . .

•

Changing rate limits, quotas, cache expiration
intervals or other service execution
characteristics

•

Updating application-specific configuration
values

•

•

Key-value maps

•

HTTP basic authorization credentials for backend systems

API Products

•

Custom attributes on API Products, Developer or
Developer Application definitions

•

Change resources stored at the organization or
environment level, such as:

Updating shared processing or transformation
logic

– JavaScript or Python scripts
– Java classes, in JAR format
– WSDL files and XML Schemas
– XSLT stylesheets

©2013 Apigee Corp. All Rights Reserved.

9
Demonstration: Let's configure an API…
Four key topics . . .

✔
✔

1. Implementing optimal API security
2. Configuring proxy runtime characteristics

3. Scripting capabilities in Apigee Edge (and how they just got better!)
4. The API Services datastore

©2013 Apigee Corp. All Rights Reserved.

11
Scripting capabilities in API Services

In the beginning . . .

©2013 Apigee Corp. All Rights Reserved.

Then things got better . . .

12

And now, it's even better with
the public beta of . . .
What can you do with Apigee’s node.js support?
• Build highly-customized standalone APIs by leveraging
Apigee’s integrated node.js as your back-end system
• Solve complex orchestration or mobile optimization
problems by combining Apigee policies with the power of a
scriptable target endpoint
• Use many of the thousands of third-party node.js
modules in your APIs without modification
• Leverage Apigee’s world-class cloud operations

©2013 Apigee Corp. All Rights Reserved.

13
Getting started with node.js is easy…

©2013 Apigee Corp. All Rights Reserved.

14
Importing Node.js apps into Apigee
1. Download and install apigeetool . . .
$ git clone https://github.com/apigee/api-platform-tools.git
$ cd api-platform-tools
$ sudo python setup.py install

2. Create and test your great node.js app, and deploy it to Apigee …
$ apigeetool deploynodeapp –n hello –d . –m server.js 
-o org_name –e test –u username –p password

3. Run it!
$ curl http://org-name-test.apigee.net/
Hello, World!

©2013 Apigee Corp. All Rights Reserved.

15
Node.js: A bit of the details…
• Modules pre-installed on the API platform:
–
–
–
–
–
–

argo 0.1.8
usergrid 0.10.5
async 0.2.9
express 3.2.6
request 2.21.0
underscore 1.4.4

• Apps can exist in Apigee at the org or environment level in addition to be included as
resources in an API proxy bundle.

©2013 Apigee Corp. All Rights Reserved.

16
Demonstration: Let's go take a look at a node.js proxy…
Four key topics . . .

✔
✔

1. Implementing optimal API security
2. Configuring proxy runtime characteristics

3. Scripting capabilities in API Services (and how they just got better!)
4. The API Services datastore

©2013 Apigee Corp. All Rights Reserved.

18

✔
Driving clients with data: The API Services datastore

Partner
Services

Datastore

API Services

User Data

Prebuilt

Location
queries

Existing
backend

©2013 Apigee Corp. All Rights Reserved.

Connections/Soc
ial

19

Push
Notifications
Driving clients with data: The API Services datastore

• Not easily posted or extracted from
existing backend
API Services

• Trapped in a database with no API
• No system of record
(app preferences / location)
• Puts adverse load on existing
backend
• Temporal in nature
• Needs to be closer to requesting
app to reduce latency

©2013 Apigee Corp. All Rights Reserved.

20
Demonstration: Let's show the datastore in action…
The take-aways…

1. Implementing optimal API security

easy

✔

2. Configuring proxy runtime characteristics

powerful

✔

3. Scripting capabilities in API Services

flexible

✔

4. The API Services datastore

extensible

✔

©2013 Apigee Corp. All Rights Reserved.

22
We would love your feedback!
Don’t forget to fill out the session’s
survey – found in the session details
on the conference app
#iloveapis

Thank you
Questions

More Related Content

What's hot (20)

PDF
I Love APIs 2015: Advanced Crash Course in Apigee Edge Workshop
Apigee | Google Cloud
 
PDF
2019 devoxx - apis, microservices, et le service mesh
Joel Gauci
 
PPTX
We Built This City - Apigee Edge Architecture
Apigee | Google Cloud
 
PPTX
API Services: Harness the Power of Enterprise Infrastructure
Apigee | Google Cloud
 
PPTX
What is APIGEE? What are the benefits of APIGEE?
IQ Online Training
 
PPTX
API Security Lifecycle
Apigee | Google Cloud
 
PPTX
Adapt or Die: Serverless Microservices
Apigee | Google Cloud
 
PPT
Modernizing an Existing SOA-based Architecture with APIs
Apigee | Google Cloud
 
PPTX
Adapt or Die DevJam: San Francisco, Sept 27 2016
Apigee | Google Cloud
 
PDF
How Secure Are Your APIs?
Apigee | Google Cloud
 
PPTX
API Management and Kubernetes
Apigee | Google Cloud
 
PPTX
Webcast: Apigee Edge Product Demo
Apigee | Google Cloud
 
PPTX
Transition from SOA to APIs for the App Economy - Bending the Spoon
Apigee | Google Cloud
 
PDF
How to Achieve Agile API Security
Apigee | Google Cloud
 
PPTX
Node.js - Extending the Programmability of Apigee Edge
Apigee | Google Cloud
 
PPTX
Deep-Dive: Secure API Management
Apigee | Google Cloud
 
PPTX
How to Manage Microservices and APIs with Apigee and Istio
VMware Tanzu
 
PDF
How Apigee Api Management Platform Helps with Digital Excellence
Ram Kumar
 
PDF
London Adapt or Die: Opening Keynot
Apigee | Google Cloud
 
PDF
I Love APIs 2015: Implementing an API Tier to Enable a New Mobile Platform
Apigee | Google Cloud
 
I Love APIs 2015: Advanced Crash Course in Apigee Edge Workshop
Apigee | Google Cloud
 
2019 devoxx - apis, microservices, et le service mesh
Joel Gauci
 
We Built This City - Apigee Edge Architecture
Apigee | Google Cloud
 
API Services: Harness the Power of Enterprise Infrastructure
Apigee | Google Cloud
 
What is APIGEE? What are the benefits of APIGEE?
IQ Online Training
 
API Security Lifecycle
Apigee | Google Cloud
 
Adapt or Die: Serverless Microservices
Apigee | Google Cloud
 
Modernizing an Existing SOA-based Architecture with APIs
Apigee | Google Cloud
 
Adapt or Die DevJam: San Francisco, Sept 27 2016
Apigee | Google Cloud
 
How Secure Are Your APIs?
Apigee | Google Cloud
 
API Management and Kubernetes
Apigee | Google Cloud
 
Webcast: Apigee Edge Product Demo
Apigee | Google Cloud
 
Transition from SOA to APIs for the App Economy - Bending the Spoon
Apigee | Google Cloud
 
How to Achieve Agile API Security
Apigee | Google Cloud
 
Node.js - Extending the Programmability of Apigee Edge
Apigee | Google Cloud
 
Deep-Dive: Secure API Management
Apigee | Google Cloud
 
How to Manage Microservices and APIs with Apigee and Istio
VMware Tanzu
 
How Apigee Api Management Platform Helps with Digital Excellence
Ram Kumar
 
London Adapt or Die: Opening Keynot
Apigee | Google Cloud
 
I Love APIs 2015: Implementing an API Tier to Enable a New Mobile Platform
Apigee | Google Cloud
 

Viewers also liked (10)

PPSX
Product Information Toolkit
gini115
 
PPTX
The Lost Art of Product Management (when going Agile) @Agiletourbkk2014, 29 N...
Arunthep (Gun) Sangvareethip,PMP,CSP,CSD,CSPO, LeSS
 
PPTX
Professional Skills - PowerPoint 2009
Christian Sinclair
 
PDF
10 Steps to Becoming Self Made Millionaire by Rhett Power
24Slides
 
PPT
Communication Skills Ppt
Prakash Ramakrishnan
 
PDF
Habits at Work - Merci Victoria Grace, Growth, Slack - 2016 Habit Summit
Habit Summit
 
PPTX
Communication skills ppt
Dharmik
 
PDF
UX, ethnography and possibilities: for Libraries, Museums and Archives
Ned Potter
 
PDF
Visual Design with Data
Seth Familian
 
PDF
3 Things Every Sales Team Needs to Be Thinking About in 2017
Drift
 
Product Information Toolkit
gini115
 
The Lost Art of Product Management (when going Agile) @Agiletourbkk2014, 29 N...
Arunthep (Gun) Sangvareethip,PMP,CSP,CSD,CSPO, LeSS
 
Professional Skills - PowerPoint 2009
Christian Sinclair
 
10 Steps to Becoming Self Made Millionaire by Rhett Power
24Slides
 
Communication Skills Ppt
Prakash Ramakrishnan
 
Habits at Work - Merci Victoria Grace, Growth, Slack - 2016 Habit Summit
Habit Summit
 
Communication skills ppt
Dharmik
 
UX, ethnography and possibilities: for Libraries, Museums and Archives
Ned Potter
 
Visual Design with Data
Seth Familian
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
Drift
 
Ad

Similar to API Services: Building State-of-the-Art APIs (20)

PDF
What is Apigee.pdf
VishnuGone
 
PPTX
London Adapt or Die: Securing your APIs the Right Way!
Apigee | Google Cloud
 
PDF
I Love APIs 2015: Crash Course Foundational Topics in Apigee Edge Workshop
Apigee | Google Cloud
 
PPT
How to implement api proxy and products in apigee
guptarakesh1405
 
PDF
Managing the Complexity of Microservices Deployments
Apigee | Google Cloud
 
PDF
A Checklist for Every API Call
Apigee | Google Cloud
 
PDF
API-first, going beyond SOA, ESB & Integration
Apigee | Google Cloud
 
PPTX
Adapt or Die Sydney - API Security
Apigee | Google Cloud
 
PDF
Webcast: Apigee Edge Product Demo
Apigee | Google Cloud
 
PDF
Virtual Meetup - API Security Best Practices
Jimmy Attia
 
PPTX
2022 APIsecure_Securing APIs with Open Standards
APIsecure_ Official
 
PDF
Bringing API Management to AWS Powered Backends
Apigee | Google Cloud
 
PDF
Managing the Complexity of Microservices Deployments
VMware Tanzu
 
PDF
Modernize Service-Oriented Architecture with APIs
Apigee | Google Cloud
 
PPTX
APIs: The New Security Layer
Apigee | Google Cloud
 
PDF
Webcast: Deep-Dive Apigee Edge Microgateway
Apigee | Google Cloud
 
PPTX
Introduction_to_Apigee Google Cloud.pptx
manikantaambati2
 
PPTX
Introduction to Apigee Presentation.pptx
Knoldus Inc.
 
PPTX
Smartone v1.0
Jinyean Tan
 
PDF
Protecting Your APIs Against Attack & Hijack
CA API Management
 
What is Apigee.pdf
VishnuGone
 
London Adapt or Die: Securing your APIs the Right Way!
Apigee | Google Cloud
 
I Love APIs 2015: Crash Course Foundational Topics in Apigee Edge Workshop
Apigee | Google Cloud
 
How to implement api proxy and products in apigee
guptarakesh1405
 
Managing the Complexity of Microservices Deployments
Apigee | Google Cloud
 
A Checklist for Every API Call
Apigee | Google Cloud
 
API-first, going beyond SOA, ESB & Integration
Apigee | Google Cloud
 
Adapt or Die Sydney - API Security
Apigee | Google Cloud
 
Webcast: Apigee Edge Product Demo
Apigee | Google Cloud
 
Virtual Meetup - API Security Best Practices
Jimmy Attia
 
2022 APIsecure_Securing APIs with Open Standards
APIsecure_ Official
 
Bringing API Management to AWS Powered Backends
Apigee | Google Cloud
 
Managing the Complexity of Microservices Deployments
VMware Tanzu
 
Modernize Service-Oriented Architecture with APIs
Apigee | Google Cloud
 
APIs: The New Security Layer
Apigee | Google Cloud
 
Webcast: Deep-Dive Apigee Edge Microgateway
Apigee | Google Cloud
 
Introduction_to_Apigee Google Cloud.pptx
manikantaambati2
 
Introduction to Apigee Presentation.pptx
Knoldus Inc.
 
Smartone v1.0
Jinyean Tan
 
Protecting Your APIs Against Attack & Hijack
CA API Management
 
Ad

More from Apigee | Google Cloud (20)

PDF
Magazine Luiza at a glance (1)
Apigee | Google Cloud
 
PPTX
Monetization: Unlock More Value from Your APIs
Apigee | Google Cloud
 
PDF
Apigee Demo: API Platform Overview
Apigee | Google Cloud
 
PDF
Ticketmaster at a glance
Apigee | Google Cloud
 
PDF
AccuWeather: Recasting API Experiences in a Developer-First World
Apigee | Google Cloud
 
PDF
Which Application Modernization Pattern Is Right For You?
Apigee | Google Cloud
 
PPTX
Apigee Product Roadmap Part 2
Apigee | Google Cloud
 
PPTX
The Four Transformative Forces of the API Management Market
Apigee | Google Cloud
 
PDF
Walgreens at a glance
Apigee | Google Cloud
 
PDF
Pitney Bowes at a glance
Apigee | Google Cloud
 
PPTX
Microservices Done Right: Key Ingredients for Microservices Success
Apigee | Google Cloud
 
PDF
Adapt or Die: Opening Keynote with Chet Kapoor
Apigee | Google Cloud
 
PDF
Adapt or Die: Keynote with Greg Brail
Apigee | Google Cloud
 
PDF
Adapt or Die: Keynote with Anant Jhingran
Apigee | Google Cloud
 
PDF
London Adapt or Die: Lunch keynote
Apigee | Google Cloud
 
PDF
London Adapt or Die: Closing Keynote — Adapt Now!
Apigee | Google Cloud
 
PPTX
London adapt or-die opening keynote chet kapoor
Apigee | Google Cloud
 
PPTX
London Adapt or Die: Opening Keynote with Chet Kapoor
Apigee | Google Cloud
 
PPTX
London Adapt or Die: Kubernetes, Containers and Cloud - The MoD Story
Apigee | Google Cloud
 
PPTX
London Adapt or Die: Five Things Enterprises Should Know About Serverless
Apigee | Google Cloud
 
Magazine Luiza at a glance (1)
Apigee | Google Cloud
 
Monetization: Unlock More Value from Your APIs
Apigee | Google Cloud
 
Apigee Demo: API Platform Overview
Apigee | Google Cloud
 
Ticketmaster at a glance
Apigee | Google Cloud
 
AccuWeather: Recasting API Experiences in a Developer-First World
Apigee | Google Cloud
 
Which Application Modernization Pattern Is Right For You?
Apigee | Google Cloud
 
Apigee Product Roadmap Part 2
Apigee | Google Cloud
 
The Four Transformative Forces of the API Management Market
Apigee | Google Cloud
 
Walgreens at a glance
Apigee | Google Cloud
 
Pitney Bowes at a glance
Apigee | Google Cloud
 
Microservices Done Right: Key Ingredients for Microservices Success
Apigee | Google Cloud
 
Adapt or Die: Opening Keynote with Chet Kapoor
Apigee | Google Cloud
 
Adapt or Die: Keynote with Greg Brail
Apigee | Google Cloud
 
Adapt or Die: Keynote with Anant Jhingran
Apigee | Google Cloud
 
London Adapt or Die: Lunch keynote
Apigee | Google Cloud
 
London Adapt or Die: Closing Keynote — Adapt Now!
Apigee | Google Cloud
 
London adapt or-die opening keynote chet kapoor
Apigee | Google Cloud
 
London Adapt or Die: Opening Keynote with Chet Kapoor
Apigee | Google Cloud
 
London Adapt or Die: Kubernetes, Containers and Cloud - The MoD Story
Apigee | Google Cloud
 
London Adapt or Die: Five Things Enterprises Should Know About Serverless
Apigee | Google Cloud
 

Recently uploaded (20)

PDF
Understanding The True Cost of DynamoDB Webinar
ScyllaDB
 
PDF
Bridging CAD, IBM TRIRIGA & GIS with FME: The Portland Public Schools Case
Safe Software
 
PDF
5 Things to Consider When Deploying AI in Your Enterprise
Safe Software
 
PDF
ArcGIS Utility Network Migration - The Hunter Water Story
Safe Software
 
PPTX
Smarter Governance with AI: What Every Board Needs to Know
OnBoard
 
PPTX
CapCut Pro PC Crack Latest Version Free Free
josanj305
 
PPTX
MARTSIA: A Tool for Confidential Data Exchange via Public Blockchain - Pitch ...
Michele Kryston
 
PDF
Proactive Server and System Monitoring with FME: Using HTTP and System Caller...
Safe Software
 
PDF
FME as an Orchestration Tool with Principles From Data Gravity
Safe Software
 
PDF
Simplify Your FME Flow Setup: Fault-Tolerant Deployment Made Easy with Packer...
Safe Software
 
PDF
Bitkom eIDAS Summit | European Business Wallet: Use Cases, Macroeconomics, an...
Carsten Stoecker
 
PDF
Unlocking FME Flow’s Potential: Architecture Design for Modern Enterprises
Safe Software
 
PPTX
2025 HackRedCon Cyber Career Paths.pptx Scott Stanton
Scott Stanton
 
PDF
Understanding AI Optimization AIO, LLMO, and GEO
CoDigital
 
PDF
Why aren't you using FME Flow's CPU Time?
Safe Software
 
PDF
Supporting the NextGen 911 Digital Transformation with FME
Safe Software
 
PDF
''Taming Explosive Growth: Building Resilience in a Hyper-Scaled Financial Pl...
Fwdays
 
PDF
Java 25 and Beyond - A Roadmap of Innovations
Ana-Maria Mihalceanu
 
PDF
TrustArc Webinar - Navigating APAC Data Privacy Laws: Compliance & Challenges
TrustArc
 
PDF
Kubernetes - Architecture & Components.pdf
geethak285
 
Understanding The True Cost of DynamoDB Webinar
ScyllaDB
 
Bridging CAD, IBM TRIRIGA & GIS with FME: The Portland Public Schools Case
Safe Software
 
5 Things to Consider When Deploying AI in Your Enterprise
Safe Software
 
ArcGIS Utility Network Migration - The Hunter Water Story
Safe Software
 
Smarter Governance with AI: What Every Board Needs to Know
OnBoard
 
CapCut Pro PC Crack Latest Version Free Free
josanj305
 
MARTSIA: A Tool for Confidential Data Exchange via Public Blockchain - Pitch ...
Michele Kryston
 
Proactive Server and System Monitoring with FME: Using HTTP and System Caller...
Safe Software
 
FME as an Orchestration Tool with Principles From Data Gravity
Safe Software
 
Simplify Your FME Flow Setup: Fault-Tolerant Deployment Made Easy with Packer...
Safe Software
 
Bitkom eIDAS Summit | European Business Wallet: Use Cases, Macroeconomics, an...
Carsten Stoecker
 
Unlocking FME Flow’s Potential: Architecture Design for Modern Enterprises
Safe Software
 
2025 HackRedCon Cyber Career Paths.pptx Scott Stanton
Scott Stanton
 
Understanding AI Optimization AIO, LLMO, and GEO
CoDigital
 
Why aren't you using FME Flow's CPU Time?
Safe Software
 
Supporting the NextGen 911 Digital Transformation with FME
Safe Software
 
''Taming Explosive Growth: Building Resilience in a Hyper-Scaled Financial Pl...
Fwdays
 
Java 25 and Beyond - A Roadmap of Innovations
Ana-Maria Mihalceanu
 
TrustArc Webinar - Navigating APAC Data Privacy Laws: Compliance & Challenges
TrustArc
 
Kubernetes - Architecture & Components.pdf
geethak285
 

API Services: Building State-of-the-Art APIs

  • 1. API Services: Building State-of-the-Art APIs Chris von See Product Management [email protected]
  • 2. Four key topics . . . 1. Implementing optimal client-side API security 2. Configuring proxy runtime characteristics 3. Scripting capabilities in Apigee Edge (and how they just got better!) 4. The API Services datastore ©2013 Apigee Corp. All Rights Reserved. 2
  • 3. Thinking about client-side applications… Business to Business applications ✔ Mobile applications from developers you trust (like yourself) ? Mobile applications from developers you don't trust (like open API developers) Web applications that need authenticated access ©2013 Apigee Corp. All Rights Reserved. 3
  • 4. Client-side security: Authentication and Authorization Security scenario OAuth grant type Supports scope? Business to Business Client credentials grant (two-legged OAuth) Yes Developers you trust Resource owner password grant Yes Developers you don’t trust Authorization code grant (three-legged OAuth) Yes HTML5 applications Implicit grant Yes • OAuthV1 and OAuthV2 policies, covering all four grant types ©2013 Apigee Corp. All Rights Reserved. 4
  • 5. Client-side security: Identity tracking • Why use API key based identity tracking instead of authorization and authentication? – – – – Need registration and tracking of content/service users No user-specific data involved Rate limits or quota restrictions needed Little or no risk associated with mis-appropriated keys • API Key Validation, for identity-based access verification ©2013 Apigee Corp. All Rights Reserved. 5
  • 6. Client-side security: Threat Protection ✔ Threat Consequences Denial of Service attack Overwhelmed computing resources and inability to do business Injection and scripting attacks Corrupted or lost data, compromised servers or user systems XML/JSON threats Excessive resource utilization that can crash systems • Spike Arrest policy, for protection against instantaneous bursts of traffic • XML and JSON threat protection to keep malformed payloads out of your system • Regular expression protection, allowing you to scan payloads for SQL, JavaScript, etc. • IP address restrictions, imposing limits on who can access your API ©2013 Apigee Corp. All Rights Reserved. 6
  • 7. Demonstration: Let's build a basic secure API…
  • 8. Four key topics . . . 1. Implementing optimal API security ✔ 2. Configuring proxy runtime characteristics 3. Scripting capabilities in Apigee Edge (and how they just got better!) 4. The API Services datastore ©2013 Apigee Corp. All Rights Reserved. 8
  • 9. Why would you need to configure a proxy? For use cases like this . . . • Use API Services features like this . . . • Changing rate limits, quotas, cache expiration intervals or other service execution characteristics • Updating application-specific configuration values • • Key-value maps • HTTP basic authorization credentials for backend systems API Products • Custom attributes on API Products, Developer or Developer Application definitions • Change resources stored at the organization or environment level, such as: Updating shared processing or transformation logic – JavaScript or Python scripts – Java classes, in JAR format – WSDL files and XML Schemas – XSLT stylesheets ©2013 Apigee Corp. All Rights Reserved. 9
  • 11. Four key topics . . . ✔ ✔ 1. Implementing optimal API security 2. Configuring proxy runtime characteristics 3. Scripting capabilities in Apigee Edge (and how they just got better!) 4. The API Services datastore ©2013 Apigee Corp. All Rights Reserved. 11
  • 12. Scripting capabilities in API Services In the beginning . . . ©2013 Apigee Corp. All Rights Reserved. Then things got better . . . 12 And now, it's even better with the public beta of . . .
  • 13. What can you do with Apigee’s node.js support? • Build highly-customized standalone APIs by leveraging Apigee’s integrated node.js as your back-end system • Solve complex orchestration or mobile optimization problems by combining Apigee policies with the power of a scriptable target endpoint • Use many of the thousands of third-party node.js modules in your APIs without modification • Leverage Apigee’s world-class cloud operations ©2013 Apigee Corp. All Rights Reserved. 13
  • 14. Getting started with node.js is easy… ©2013 Apigee Corp. All Rights Reserved. 14
  • 15. Importing Node.js apps into Apigee 1. Download and install apigeetool . . . $ git clone https://github.com/apigee/api-platform-tools.git $ cd api-platform-tools $ sudo python setup.py install 2. Create and test your great node.js app, and deploy it to Apigee … $ apigeetool deploynodeapp –n hello –d . –m server.js -o org_name –e test –u username –p password 3. Run it! $ curl http://org-name-test.apigee.net/ Hello, World! ©2013 Apigee Corp. All Rights Reserved. 15
  • 16. Node.js: A bit of the details… • Modules pre-installed on the API platform: – – – – – – argo 0.1.8 usergrid 0.10.5 async 0.2.9 express 3.2.6 request 2.21.0 underscore 1.4.4 • Apps can exist in Apigee at the org or environment level in addition to be included as resources in an API proxy bundle. ©2013 Apigee Corp. All Rights Reserved. 16
  • 17. Demonstration: Let's go take a look at a node.js proxy…
  • 18. Four key topics . . . ✔ ✔ 1. Implementing optimal API security 2. Configuring proxy runtime characteristics 3. Scripting capabilities in API Services (and how they just got better!) 4. The API Services datastore ©2013 Apigee Corp. All Rights Reserved. 18 ✔
  • 19. Driving clients with data: The API Services datastore Partner Services Datastore API Services User Data Prebuilt Location queries Existing backend ©2013 Apigee Corp. All Rights Reserved. Connections/Soc ial 19 Push Notifications
  • 20. Driving clients with data: The API Services datastore • Not easily posted or extracted from existing backend API Services • Trapped in a database with no API • No system of record (app preferences / location) • Puts adverse load on existing backend • Temporal in nature • Needs to be closer to requesting app to reduce latency ©2013 Apigee Corp. All Rights Reserved. 20
  • 21. Demonstration: Let's show the datastore in action…
  • 22. The take-aways… 1. Implementing optimal API security easy ✔ 2. Configuring proxy runtime characteristics powerful ✔ 3. Scripting capabilities in API Services flexible ✔ 4. The API Services datastore extensible ✔ ©2013 Apigee Corp. All Rights Reserved. 22
  • 23. We would love your feedback! Don’t forget to fill out the session’s survey – found in the session details on the conference app #iloveapis Thank you

Editor's Notes

  • #2: This session is about techniques that can be used to optimize API development and delivery on the Apigee platformCome away with a sense of how these techniques can be used in your environmentThis is part 1 of a two-part session. Part 2 is immediately after this session, in the same room, hosted by my colleague Alan Ho.Take some time to try these things out, and then send us your feedback
  • #3: We’ll get this going with something super-simple: securitySecurity forms the bedrock of any API implementation, and in the first part of this session we’re going to spend some time both talking about security in the abstract and also demonstrating how you can implement security in your API proxies. I also want to share some thoughts on something that you may not think about when implementing proxies – methods for configuring proxy behavior that are often very important but don’t necessarily get the level of thought that other areas do. We’ll also spend a bit of quality time introducing you to some of the new scripting options that can dramatically increase the flexibility you have when determining how to design and build API proxies with Apigee, even beyond what you had with configurable proxies alone, and we’ll finish with a discussion of the API Services Data Store and how you can use it to meld the requirements of external apps – mobile or not – with the data and processes from the enterprise.So, let’s get to it.
  • #4: B2B – generally heavily vetted relationship. Most of the time the data is not specific to a particular user. Independent of the user authentication process. Could run autonomously.Mobile apps from trusted developers – push the user experience by doing things other apps can’t, like have access to user credentials and details. Mobile apps from untrusted developers – cannot be trusted to handle user credentials and sensitive data well. HTML5 – inherently insecure because everything is out in the open.
  • #5: OAuth is the most widely accepted way of authenticating and authorizing users and data.OAuth defines a concept of a “grant type”, which represents the resource owner’s authorization to use a specific type of resource. Grant flows generate an access token which is used to represent that authorization for API requests.OAuth also defines a concept called “scope” which is a named set of API resources that can be accessed. Applications can request a specific scope, or they can be given a default scope.B2B – validate using application identifier (API key and shared secret)Trusted developer app – validate using a combination of application identifier (verify that it’s a trusted app) and user credentials.Untrusted developer app – no access to credentials. Requires some sort of server to validate user credentials and obtain user’s consent for app to access data. Customers can provide this authentication server, or Apigee can act in that role.HTM5 – because app is inherently insecure, implicit grant doesn’t generally require app credentials at all, just user credentials.Apigee supports all of these OAuth grant types through built-in policies for both OAuth v1.0a and OAuth v2.0. OAuth 1.0 policy is an older version that uses signatures to authenticate a request, and OAuth 2.0 is the more recent version. Single policy, configurable to perform each of the different grant types. Highly configurable, so data to perform the grant can be taken from headers, path variables, query params or payload.
  • #6: While not strictly an authentication mechanism, identity tracking using API keys allows you to track who’s using your API and to enforce certain restrictions, such as rate limits.Identity tracking is most appropriate when there’s no user data involved and there are no other restrictions on the data. Suitable for apps such as HTML5 widgets which developers would like to get widely adopted.
  • #7: Tou also need to be concerned about threat protection. Spike arrest – common concept - protects you against instantaneous bursts in traffic. Here’s something to give you a sense of why this is needed even in non-attack scenarios: One of our customers once had an application that checked the weather at the top and bottom of the hour, which doesn’t sound all that bad until you consider that there were hundreds of thousands of copies of this app in the field…so that simple weather check turned into a twice-hourly denial-of-service attack. The attack caused their back-end systems a pretty large amount of trouble until they implemented spike arrest to allow them to manage these huge influxes of inadvertent traffic.Injection and scripting attacks – common concept - can cause security breaches and all sorts of other mayhem. I think we’ve probably all heard the story of the school student whose name was “DROP TABLE STUDENTS” and how that caused a school to delete its student database, but it’s also possible for APIs to post scripts that makes their way into Web forms and open up the possibility of compromised user security.XML and JSON attacks may not be quite as obvious, but they can be just as damaging. XML and JSON documents can be nested to ten thousand levels, or contain element, attribute or object names that are megabytes in length, and so on. Apigee provides a spike arrest policy that allows for per-minute and per-second traffic burst handling.The configurable XML and JSON attack policies to tell Apigee what’s allowable and what’s not, so that a payload that doesn’t match your parameters can be rejected.Regular expression protection allows you to inspect any part of an inbound request for the marks of a number of different types of attacks, such as SQL or Javascript injection attacksIn some cases it’s appropriate to restrict specific APIs to only certain IP addresses at the API level – when certain requests are internal-only, for example. And of course, you can use Apigee’s scripting capabilities – which we’ll talk about later – to restrict APIs based on just about any other criteria you can name.
  • #9: We’ve talked about the general considerations around security, and you’ve seen a bit of how Apigee Edge’s built-in functionality enables you a lot of flexibility in setting up OAuth, adding threat protection and so on. Let’s talk now about something that we see quite a bit – the need to tailor proxy runtime operations without deploying a new version of the proxy.
  • #10: External configuration of proxies is one of those things that proxy developers tend not to think much about, but it’s a hugely useful feature for anything from tweaking cache expiration across multiple proxies to fixing scripting bugs. HTTP Basic Authorization credentials are a great example of something that should NOT be configured in a proxy.There are currently four ways to externally configure proxies… A couple of these you may already know about since they’re readily accessible via the API:-- Using API Products, which controls who has access to what, via what key;-- Using custom attributes on the various entities in the system, which allows you to set developer- or application-specific params and even make this functionality available to business users if desiredKey-value maps can be used as a persistent storage facility for configuration information or runtime data (including things like base64-encoded userids and passwords).Organization- and environment-level resources such as scripts, allow you to make larger-scale changes in processing and can be really useful in situations where a specific type of functionality is used across many different proxies.Using organization- and environment-level resources also has other obvious benefits like reducing policy asset redundancy across bundles, so we’ll dig into that in more detail in our next demo.
  • #12: Okay, you’ve got your proxies secured and configured, so let’s talk about scripting and one of the new enhancements in Apigee Edge that we’re pretty excited about – node.js support.
  • #13: If you’ve been working with Apigee for a while you’re probably already familiar with the scripting that Apigee provided early on:-- Java, which is super-powerful and super-fast but also a bit clunky to use because of the need to bundle class files into JARs before deployment-- Python, which is quite powerful and allows you to do just about anything you’d want to do in a language that many find easier to deal with-- XSLT, which was great for transforming XML files but admitted not much good for anything elseWhen 4G came out in August of 2012 we added JavaScript support, which opened things up quite a bit because of the relatively large number of developers that know JavaScript already. Node.js support in Apigee Edge introduces the concept of what we call a “scriptable target”. With node.js, you now have the ability to think of Apigee Edge as a target in and of itself, which can potentially enable some really interesting use cases and capabilities.
  • #14: Node.js and the idea of scriptable targets support enables a new level of API customization. One great use case for scriptable targets is what’s called an “OAuth consent application”. You may already know that in three-legged OAuth there’s a concept of an “authentication server” that is used to verify user credentials and to ask for and record the user permission to share their information with an application. Many of our customers ask us to host this application within Apigee because they don’t have an outboard server that has this capability; with node.js you now have the ability to host this sort of application within Apigee, which simplifies your API authorization and authentication flows considerably.In general, node.js support can help eliminate the need for separate node.js servers – you can now host those apps in the scalable Apigee cloud.Node.js gives you the ability to orchestrate calls, perform complex transformations, and do almost anything a regular node.js app can do, but now you can combine that with Apigee policies for even more flexibility.The really great thing is that you can also use many of the thousands of existing Node.js modules.
  • #15: Getting started with node.js is pretty easy.. We’ve provided a wizard that allows you use your node.js code to create a proxy using the “New API Proxy” wizard, and you can also add API key validation and quota enforcement at the same time. When you fill out the form and click Build, API Services builds the proxy, deploys it to the “test” environment and sends you to the Proxy Overview page where you can go to Develop mode to add any policies or other customizations.The Wizard allows you to select from two templates that you can use to start your development – the basic “hello world” template and one that incorporates the API Services data store to allow you to access that data as a scriptable target. There’s another way to create a node.js application – using “apigeetool”
  • #16: Apigeetool is a utility you can download from Github and install to allow you to create Apigee proxies from any node.js server module.Apigeetool allows you to do just about everything the API Proxy Wizard can do – name your proxy, set the base path and so on.It’s pretty easy to use.
  • #17: Apigee’snode.js support comes with a set of built-in NPMs that you can use in your scriptable targets. Like other Apigee resources, node.js scripts can also be stored at the organization and environment level, so they’re easy to change.
  • #19: Last but certainly not least we’re going to spend a few minutes talking about the API Services Data Store and how it can be used not only as pre-built data storage for mobile apps but also as a mechanism for managing the impedance mismatch between mobile data and access requirements and typical enterprise data storage.
  • #20: The API Services Data Store provides the ability to create an “operational data store” that can serve as an intermediary between mobile and enterprise.Looking at the data store from the mobile side, it’s pre-configured with many of the common concepts you’d want in a database to support mobile apps, such as location, connections and social integrations. It’s also extensible: new collections of data can be created and used very easily, using the Apigee Edge UI or the Data Store API. The Data Store supports user authentication as API Proxies do, and as part of its social integration it also supports login using credentials from providers like Facebook.A key concept of the data store is the ability to create connections between pieces of data, so that you can – for example - associate an item representing an activity with the place it was performed and the person that performed itHandling of location data – latitude and longitude – is also a key concept, and there are specific features of the query language that allow you to retrieve data based on the location of the object that data represents.Push notifications allow you to drive user engagement, and you can use features such as the Data Store and node.js to generate push notifications when new data is inserted into the data store.
  • #21: From the enterprise perspective, the Data Store provides an ability to take in data from disparate systems and make it available to mobile apps in a way that’s natural and easy for them to use. There are any number of reasons why this could be important – you don’t want every app hitting your SAP system, or the data in your legacy app is not structured for optimal use by the types of apps you want to build, or you just want to push the data closer to your mobile users for performance reasons. Combining this with the ability to link this data to data generated by the mobile apps themselves, and you have a powerful tool for building awesome user experiences.Let’s go take a look at the Data Store in action.