azure api management slidedeck - wordpress.com · securing apis with aad - oauth2 azure active...

41
Azure API Management

Upload: buithu

Post on 02-May-2018

233 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

Azure API Management

Page 2: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

Ing. Andreas Pollak

SpectoLogic® e.U.

www.spectologic.com

Page 3: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

Agenda

What is API-Management and why do I need it?Create & ConfigureProductsAlternative AuthenticationDelegationPolicies & SecurityConfiguration versioning with GITAnalytics & ReportsPricing

Page 4: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

What is API Management?

Page 5: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

Azure API Management

Developer Portal

Gateway

Publisher Portal

Applications

Publisher(s)

Developers

BackendService

ASP.NET, PHP, NodeJS, Java,

Ruby,…

Page 6: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

API Apps & API Management

API Apps

Hosting

Simple Access Control

CORS

Trigger/Action (Logic App)

API Management

Monitor

Throttle

Manipulate

Consolidating

Page 7: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

DEMOCreate API Management

Up to 60 Minutes !Proxy (name.azure-api.net)Portal (name.portal.azure-api.net)Management (name.management.azure-api.net)SCM (name.scm.azure-api.net)

Page 8: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

VPN Connection

Page 9: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

External VPN

Page 10: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

Internal VPN

Page 11: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

DEMOAdd an API

Page 12: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

Products

Product(s)

User(s)

Group(s)

API(s)

Rate limits & quotas

Page 13: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

DEMOCreate a productSubscribe to a product

Page 14: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

Azure Active Directory,FB, Google,…

using Azure AD to sign up/in API Management

Azure API Management

Gateway

Developers

Page 15: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

Delegation

Handle Authentication (SignIn/Up)

Handle Product Subscription

Page 16: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

Delegation Authentication Process

Management API

Protected WebPage

[Anonymous]|| Product Page

My Company Site

CorporateDelegation Handler

CorporateSignUp/In | Product

CorporateDelegation Handler

Protected WebPage

[Authorized]

Developer

Page 17: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

Policies

ProxyMiddleware Components

Request Destination

Page 18: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

Cors

*.spectologic.com

*.spectologic.com/api/calc

*.azurewebsites.com/api/calc

API MGMTGateway

Page 19: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

DEMOAdd a CORS policy

Page 20: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

Request Throttling Policies

API MGMTGateway

Request

Destination

Request

Request

Request

3 requests

Too many requests!

Page 21: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

DEMOThrottling Policy

Page 22: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

Validating JWT-Tokens

API MGMTGateway

Request Destination

ocp-apim-subscription-keySubscription Key

AuthorizationJWT-Token

Page 23: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

Properties in policies

PropertiesKey/Value Repository

Page 24: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

DEMOValidating JWT tokens

Page 25: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

More access restriction policies

Set-Header

Check-Header

IP-Filter

Page 26: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

HTTP-request policies

Send-One-Way-Request

Send-Request

Return-Response

Page 27: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

Integrating with SLACK

Page 28: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

Securing the backendClient Certificates

Azure API Management

GatewayApplicationsBackendService

Page 29: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

Securing APIs with OAuth2 / OpenID Connect

Azure API Management

Gateway

Applications

BackendService

Azure Active Directory…

Implicit/AuthCode

Developers

Page 30: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

Securing APIs with AAD - OAuth2Azure Active Directory

Backend Service

AAD Application

AAD Application

Azure API MGMTOAuth 2.0 Config

resource = AppID-UriApplication

Page 31: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

Securing APIs with AAD - OAuth2Azure Active Directory

Backend Service

AAD ApplicationClientID

Client SecretAppID-Uri

SignIn/Reply-UriAD-Permissions

AAD ApplicationClientID

Client SecretAppID-Uri

SignIn/Reply-UriAD-PermissionsApp-Permission

Azure API MGMTOAuth 2.0 Config

resource = AppID-Uri

AAD ApplicationClientID

Client SecretAppID-Uri

SignIn/Reply-UriAD-PermissionsApp-Permission

Application

Page 32: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

Caching with API Management

Improving Performance

Page 33: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

Advanced Caching

Fragment Caching

<cache-lookup-value>

<cache-store-value>

Page 34: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

API Management GIT-Configuration [Preview]

multiple configuration versions

syncing of multiple tenants (Test Production)

utilizing git workflow for collaborative editing

text-file based configuration

secrets from properties are kept in database only!

Page 35: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

API Management GIT-Configuration

InternalAPI MGMTDatabase

GIT repository

Modify & Commit

Request to cloneconfig data to GIT

Request to updateconfig data from GIT

Page 36: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

Analytics & Reports

Page 37: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

PricingPricing Developer Standard Premium

Price€1.34 / day (~€41.31 / mo)

€19.02/day per unit (~€ 589.51 /mo)

€77.50/day per unit (~€ 2,402.48 /mo)

API Calls (per unit)32 K / day(~1 M / month)

7 M / day(~217 M / month)

32 M / day(~1 B / month)

Data Transfer (per unit)161 MB / day(~5 GB / month)

32 GB / day(~1 TB / month)

161 GB / day(~5 TB / month)

Cache 10 MB 1 GB 5 GB

Scale-out N/A 4 units Contact us for more

Unlimited

SLA N/A 99.9% 99.95%

Multi-Region Deployment No No Yes

Azure Active Directory Integration

Unlimited User Accounts No Unlimited User Accounts

VPN Yes No Yes

Additional Data TransfersStandard Data Transfers rates apply

Standard Data Transfers rates apply

Standard Data Transfers rates apply

Page 38: Azure API Management Slidedeck - WordPress.com · Securing APIs with AAD - OAuth2 Azure Active Directory Backend Service AAD Application ClientID Client Secret AppID-Uri SignIn/Reply-Uri

THANK YOU