SlideShare a Scribd company logo
1 of 55
Download to read offline
How APIs Can Be Secured in Mobile Environments
Shan - Director, Mobile Architecture
About the Presenter
Shan specializes in mobile technology with over 10 years experience in that field.
He has a strong background in telecommunication software development and is a
hardcore coder in Android and iOS platforms.
Prior to joining WSO2Mobile, he was working as the CTO/Director of Microimage Mobile
Media for almost 16 years.
He played a key role in engineering products where Microimage has won many local &
international awards which includes winning the Inaugural GSMA Asia Mobile Innovation
Award, Commendation from GSMA at the Barcelona World Awards in 2007, Asia Pacific
ICT Awards (APICTA)
Lecturer at Cicra campus (Executive MSc in Information Security)
Hobbyist (Arduino/RPi/ Wearable Devices)
3
Web Service Web API
SOAP REST
iOS Android Windows
WSDLUDDI
JAX-WSJAX-RS WCF CXFJersey RestEasyRestlet
ProtocolStandards Framework
XML-RPCPOXML
Http Https SMTP TCP/IP
SSO
OAuthOpenID Connect
WADL API
4
Mobile First Strategy
Design products for mobile phones before desktop and laptop
computers.
Rise of the Mobile-First Enterprise Apps
5
• Managers, executives and other decision makers spend
huge amounts of time outside of their offices
• Mobile is how they stay connected to their businesses.
• Stay connected to data 24/7 (data anytime, anywhere)
Computer
6
Employees
Managers
Owners
Customers Suppliers
Shareholders
Productivity Risk
7
EmployeesManagers Owners Customers Suppliers Shareholders
?
Mobile	
  App	
  Development
1.Responsive Web
2.Hybrid Web
3.Mobile Web
4.Hybrid Native
5.Native Apps
9
Native features and UX
Performance
Code Base
Availability - (Developer)
Distribution
What	
  to	
  choose	
  ?	
  
10
Native Mobile Application
iOS - Obj-C, Swift
Android - Java
11
I
n
t
e
r
f
a
c
e
Web API
API describes
what functionality is available
how it must be used
what formats it will accept as input or return as output
How	
  API’s	
  are	
  exposed
12
• COM objects
• DLL and .H files in C/C++ programming language
• JAR files
• RMI in Java
• XML over HTTP
• JSON over HTTP
WebAPI	
  	
  	
  Vs	
  	
  WebService
13
Does not define the how data is sent
over the network
Involves sending data over a network
All APIs are not Web services. All Web services are APIs
API may use any style for
communication
Three styles of use: SOAP, REST and
XML-RPC for communication
API consists of a complete set of rules
and specifications for a software program
to follow in order to facilitate interaction.
A Web service might not contain a
complete set of specifications and
sometimes might not be able to perform
all the tasks that may be possible from a
complete API.
14
Gregory Peck
Gladia Soronika
Ganesh Guru
Michelle Sharapova
POST /webservices/hr/employees.asmx HTTP/1.1
Host: www.w3schools.com
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<GetEmployees xmlns="http://www.w3schools.com/webservices/">
</GetEmployees>
</soap12:Body>
</soap12:Envelope>
i

n

t

e

r

f

a

c

e
http://<domain>/hr/getEmployees
http://<domain>/hr/Employees
http://<domain>/hr/Employees.asmx
SOAP
• provide a way to build and invoke a hosted API in a language- and platform-neutral manner.
• message from one end to the other is passed as an XML payload.
• very structured and is backed by a large number of specifications.
• request/response protocol between the client and the server is defined in the SOAP
specification.
• service is defined in Web Services Description Language (WSDL).
• WS-Security, WS-Trust, and WS-Federation specifications provides security
• WS-Policy provides a framework to build quality-of-service expressions
• WS-SecurityPolicy defines the security requirements of a SOAP service in a standard way, built
on top of the WS-Policy framework.
• highly decoupled, standardized, and governed based on policies, preferred way build a
service-oriented architecture (SOA)
15
Popularity has declined
• complexity of the WS-* standards.
• many ambiguities arose among different implementation stacks
Web Services Interoperability (WS-I) organization came up with the Basic Profile for
web services
REST
16
• based on the rule set defined in the HTTP specification
• not restricted to XML format (can be plain text, JSON, and also XML)
• protocol independent
• uses the security and authentication of HTTP
• REST is not REST without HATEOAS (client only knows the entry point URI and the
resources are supposed to return links)
• service is defined in Web Application Description Language (WADL).
17
HATEOAS - Hypermedia as the Engine of Application State
{
"links": [
{
"rel": "self",
"href": "http://localhost:8080/customers"
}
],
"content": [
{
"fullName": "Matthews, Dave",
"email": "dave@dmband.com",
"links": [
{
"rel": "self",
"href": "http://localhost:8080/customers/1"
}
]
}
]
}
Designing	
  	
  WebAPI
18
• Web API should be stateless
(no session state, cookies, or server-side values)
Adding state adds complexity and limits scalability
• Endpoints of the API should be exposed through SSL by default
• User credentials should never be passed as part an API call
GET /employees?userid=greg&password=1234
- still visible in any logs on the Web server (even passed in header)
- credentials can be corporate accounts used for other systems
- lifetime (until the password is changed)
• some APIs use an application key or some other token derived from
a HMAC algorithm
- if the key is exposed, it can be difficult to revoke. Key embedded in a mobile app
Designing	
  	
  Rest	
  API
19
Correct use of REST is about nouns, not verbs
GET /GetAccountBalance?account_id=1234
GET /accounts/1234
GET /accounts?fields=id,name&sort=id&limit=100&offset=50
HTTP VERBS together with nouns or entities in the URL that represent the data
you are exposing
GET List Account /accounts/1234
PUT Update Account /accounts/1234
POST Add Account /accounts/1234
DELETE Delete Account /accounts/1234
API	
  Security
20
Most Basic form of API Authentication
Simple for API Services developer and the API Consumer
HTTP Basic Authentication
HTTP Digest Authentication
Mutual Authentication
OAuth2.0
OpenId Connect
HTTP	
  Basic	
  Authentication	
  	
  
21
How it Works ?
If an API is HTTP Basic Authenticated :
Client Browser sends
GET /hr/employee/2 HTTP/1.1
Host: www.wso2.com
Server Reply
HTTP/1.1 401 Access Denied
WWW-Authenticate: Basic realm=“wso2.com"
Content-Length: 0
Client Browser sends
GET /hr/employee/2 HTTP/1.1
Host: www.wso2.com
Authorization: Basic aHR0cHdhdGNoOmY=
www.wso2.com/hr/employee/2
www.wso2.com:80
Base64Encode(username:password)
A string to be displayed to users so they know which username and password to use. This string should contain at
least the name of the host performing the authentication and may additionally indicate the collection of users who
may have access.
HTTP	
  Basic	
  Authentication	
  -­‐	
  Mobile	
  Apps	
  
22
• username and password
• Header - Authorization: Basic aHR0cHdhdGNoOmY=
• call the API
https://www.wso2.com/hr/employees
https://www.wso2.com/hr/employee/1
• username and password
• Header - Authorization: Basic aHR0cHdhdGNoOmY=
• call the API
How to store the username and password ?
When using the App or Master secret with
Basic Auth, use your App Key as the
username, and the secret as the password.
HTTP	
  Digest	
  Authentication	
  	
  
23
Client Browser sends
GET /hr/employee/2 HTTP/1.1
Host: www.wso2.com
Server Reply
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Digest realm="wso2.com", qop="auth",
nonce="1390781967182:c2db4ebb26207f6ed38bb08eeffc7422",
opaque="F5288F4526B8EAFFC4AC79F04CA8A6ED"
Client Browser sends
GET /hr/employee/2 HTTP/1.1
Host: www.wso2.com
Authorization: Digest username="shan", realm=“wso2.com",
nonce=“1390781967182:c2db4ebb26207f6ed38bb08eeffc7422",
uri=“/hr/employee“, cnonce="MTM5MDc4", nc=00000001, qop="auth",
response="f5bfb64ba8596d1b9ad1514702f5a062",
opaque="F5288F4526B8EAFFC4AC79F04CA8A6ED"
realm: A string to be displayed to users so they know
which username and password to use. This
string should contain at least the name of the
host performing the authentication and may
additionally indicate the collection of users who
may have access. 

nonce: A server-specified data string, which should be
uniquely generated each time a 401 response is
made. The content of the nonce is
implementation dependent. 

opaque: A string of data, specified by the server, that
should be returned by the client unchanged in the
Authorization header of subsequent requests
with URIs in the same protection space (which is
the realm). 

qop: The “quality of protection” options applied to the
response by the server. The value auth indicates
authentication while auth-int indicates
authentication with integrity protection. 

Refer : www.ietf.org/rfc/rfc2617.txt
24
How	
  to	
  calculate	
  the	
  Response	
  in	
  HTTP	
  
Digest	
  ?	
  
qop = “auth”
HA1=MD5(username:realm:password)
HA2=MD5(method:digestURI)
response=MD5(HA1:nonce:HA2)
qop = “auth-int”
HA1=MD5(username:realm:password)
HA2=MD5(method:digestURI:MD5(entityBody))
response=MD5(HA1:nonce:nonceCount:clientNonce:qo
qop is unspecified
HA1=MD5(username:realm:password)
HA2=MD5(method:digestURI)
response=MD5(HA1:nonce:HA2)
Digest calculation is done with two types of data:
security-related data qop = “auth”
message-related data qop = “auth-int”
25
HTTP Basic Authentication HTTP Digest Authentication
Sends credentials in cleartext over the wire Credentials are never sent in cleartext. A digest derived
from the cleartext password is sent over the wire.
Should be used in conjunction with some external security
systems like TLS
Doesn’t depend on transport-level security or external
security systems.
Only performs authentication Can be used to protect the integrity of the message, in
addition to authentication (with qop=auth-int).

User store can store passwords as a salted hash User store should store passwords in cleartext or should
store the hash value of username:password:realm.
• Storing the password in cleartext or the hashed value of username:password:realm in Mobile
Device
• Neither option is safe.
• Recommended is to encrypt and store the hash of username:password:realm.
As a general rule, if servers or proxies don't understand the values of standard headers,will ignore it.
Mutual	
  Authentication
Device presents the login screen
Authentication happens
Device will create the CSR based on the server policy
Service signs the certificate and sends the certificate to
the device
Both way the communication is signed and encrypted
26
Mutual	
  Authentication
Difficult and complicated to implement
More secured
27
OAuth	
  2.0
28
OAuth2 is an excellent protocol for securing API services from
untrusted devices
1.A user opens up your mobile app and is prompted for their username or
email and password.
2.You send a POST request from your mobile app to your API service with
the user’s username or email and password data included
3.You validate the user credentials, and create an access token for the
user that expires after a certain amount of time.
4.You store this access token on the mobile device, treating it like an API
key which lets you access your API service.
5.Once the access token expires and no longer works, you re-prompt the
user for their username or email and password.
6. Can use refresh token to get a new token if expired
Temporary access token
It will expire
Even if stolen only for a specific time period
Grant	
  Types
๏ Authorization	
  Code	
  
๏ Implicit	
  	
  (No	
  client	
  secret)	
  
๏ Resource	
  Owner	
  Password	
  Credentials	
  
๏ Client	
  Credentials	
  
29
OAuth clients must be registered with the OAuth
authorization server and obtain a client identifier before
any interactions.
Authorization	
  Code
30
Register your app and get the clientID and clientSecret
Resource Owner User Agent
Web App
Authentication Server Resource Server
1 Redirect happens - https://<domain>/oauth2/authorize?
response_type=code&client_id=0rhQErXIX49svVYoXJGt0DWBuFca&redirect_uri=https://oauth2client.com
Display with Authentication page
Authenticate with your username and password
Ask for confirmation
2 https://oauth2client.com/cb?code=3509530953850395
3 Authorization code is extracted and sent to the Authentication Server to get the Token along with the ClientSecret
POST https://api.oauth2server.com/token
grant_type=authorization_code&
code=AUTH_CODE_HERE&
redirect_uri=REDIRECT_URI&
client_id=CLIENT_ID&
client_secret=CLIENT_SECRET
4.Now you call the API with the Authorization Token
3
4
1
2
ClientSecret
AccessToken
Authorization code
Implicit
31
Register your app and get the clientID , no secret is
generated
Resource Owner User Agent
Web App
Authentication Server Resource Server
1 Redirect happens - https://<AuthServer>/oauth?response_type=token
&client_id=CLIENT_ID&redirect_uri=https://oauth2client.com&scope=email
Display with Authentication page
Authenticate with your username and password
Ask for confirmation
2 https://oauth2client.com/#access_token=cac93e1d29e45bf6d84073dbfb460&expires_in=3600
AccessToken is extracted , no refresh token for this
3.Now you call the API with the Access Token for a limited period
3
1
2
AccessToken
Implicit	
  -­‐	
  Mobile	
  Native	
  Apps
32
Resource Owner Mobile App
Authentication Server Resource Server
1 From the web view - https://<AuthServer>/oauth?response_type=token
&client_id=CLIENT_ID&redirect_uri=https://oauth2client.com&scope=email
Display with Authentication page
Authenticate with your username and password
Ask for confirmation
2 https://oauth2client.com/#access_token=cac93e1d29e45bf6d84073dbfb460&expires_in=3600
AccessToken is extracted , no refresh token for this
3.Now you call the API with the Access Token for a limited period from the native code
3
1
2
AccessToken
WebView
Login Page has to support responsive Web
Resource Owner Password Credentials
33
Resource Owner Mobile App
Authentication Server Resource Server
1 From the application Pass the clientID clientSecret as Base64 in Authorization header
curl -v -X POST --basic
-u 0rhQErXIX49svVYoXJGt0DWBuFca:eYOFkL756W8usQaVNgCNkz9C2D0a
-H "Content-Type:application/x-www-form-urlencoded;charset=UTF-8" -k
-d "grant_type=password&
username=admin&password=admin"
https://<AuthServer>/oauth2/token
2 Now you call the API with the Access Token and use the refresh token to get the Access Token if expired
2
AccessToken + Refresh Token
Resource owner must trust the client application.
The Resource Owner Password Credentials grant type was introduced to aid
migration from HTTP Basic Authentication and Digest Authentication to OAuth 2.0.
Client Credentials Grant Type

34
Resource Owner
Mobile App
Authentication Server Resource Server
1 From the application Pass the clientID clientSecret as Base64 in Authorization header
curl -v -X POST --basic
-u 0rhQErXIX49svVYoXJGt0DWBuFca:eYOFkL756W8usQaVNgCNkz9C2D0a
-H "Content-Type:application/x-www-form-urlencoded;charset=UTF-8" -k
-d "grant_type=client_credentials" https://<AuthServer>/oauth2/token
2 Now you call the API with the Access Token (Client Credentials grant type doesn’t return a refresh token)
2
AccessToken + Refresh Token
Client itself becomes the resource owner
๏ Login Screen (Responsive Web)
๏ Authorization Code (Storing clientID,clientSecret)
๏ Implicit (Token expires , need to login every time)
35
Issues for Mobile Apps
What	
  is	
  this	
  Access	
  Token	
  ?
36
A random number
A random string
A UUID
Storing	
  the	
  Token
37
Android - SharedPreferences
iOS - Keychain
OpenID	
  Connect
OpenID Connect 1.0 is a simple identity layer on top of the OAuth 2.0
Can verify the identity of the End-User based on the authentication
performed by an Authorization Server
Can obtain basic profile information about the End-User in an
interoperable and REST-like manner
38
OpenID	
  Connect
๏ OpenID Connect was built on
top of OAuth
39
JSON web token (JWT) that transports authenticated user
information from the authorization server to the client
application.
{
"iss":"https://auth.server.com",
"sub":"shan@wso2.org",
"aud":"67jjuyuy7JHk12",
"nonce":"88797jgjg32332",
"exp":1416283970,
"iat":1416281970,
"auth_time":1311280969,
}
iss: The token issuer (authorization server)’s identifier in the format
of an HTTPS URL with no query parameters or URL fragments.
sub: The local identifier of the authenticated user.

aud: The audience of the token. This can be an array of identifiers,
but it must have the
OAuth client ID in it; otherwise the client ID should be added to the
azp parameter.
nonce: This parameter was introduced

to mitigate replay attacks. The authorization server must reject any
request if it finds two requests with the same nonce value. If a
nonce is present in the authorization grant request, then the
authorization server must include the same value in the ID token.
The client application must validate the value of the nonce once it
receives the ID token from the authorization server.
exp: The token-expiration time in seconds from 1970-01-01T0:0:0Z
(UTC). iat: The token-issued time in seconds from
1970-01-01T0:0:0Z (UTC).
auth_time: The time at which the end user authenticates with the
authorization server.

40
WSO2	
  API	
  Manager
WSO2	
  Identity	
  Server
WSO2	
  API	
  Manager
41
Gregory Peck
Gladia Soronika
Ganesh Guru
Michelle Sharapova
42
43
44
45
46
47
WSO2 - IdP Proxy Mobile App
48
Two components
SDK
IdPProxy Mobile App (iOS,Android)
It provides
API security
SSO for Native Mobile Apps
How	
  to	
  use	
  it	
  ?
๏ The developer needs to embed the SDK and add few
lines of code
๏ The end user needs to download the application and
also the IdPProxy Application
49
How	
  it	
  works
50
6"
•  Developer Registers their app in the IS Server
•  Gets the clientID and clientSecret for that App
•  Uses the IdP proxy SDK and configures the clientID and Secret
•  The App invokes the IdP Proxy App with the clientID and other
parameters
•  IdP Proxy App displays the login screen to authenticate the
user and passes the Authorization Code to the called App
•  The App uses the AuthCode to get the Token which is called
from IdP Proxy SDK .
•  After getting the Token the app call any API
•  If expired , then the SDK gets the Token again using Refresh
Token
51
Three Application
AZone
eBuy
IdPProxy
52
Open AZone App
1 2 3 4 5
53
1 2 3
Questions
1. The app constantly synchronizes with the server via API. How to avoid an user to enter
credentials every time his token is expired ?
2. What about calls I might need to make to our API -prior- to a user authenticating. Do I get a
token using the implicit grant type for these non-authenticated calls?
3. What grant-type to use for mobile Authorization Code or Resource Owner Password
Credentials or Client Credentials or Implicit
4. Can I use self-signed certificate ?
5. Do I need to validate the certificate every time ? How ?
6. Mutual Authentication way ? Is it difficult
7. Storing Tokens in the device Account Manager, KeyChain ?
54
Contact	
  us	
  !

More Related Content

What's hot

Best Practices: The Role of API Management
Best Practices: The Role of API ManagementBest Practices: The Role of API Management
Best Practices: The Role of API ManagementAkana
 
Why APIs are Different Than Integration
Why APIs are Different Than IntegrationWhy APIs are Different Than Integration
Why APIs are Different Than IntegrationApigee | Google Cloud
 
Deconstructing API Security
Deconstructing API SecurityDeconstructing API Security
Deconstructing API SecurityAkana
 
SOA and API Convergence Strategy and Tactics
SOA and API Convergence Strategy and TacticsSOA and API Convergence Strategy and Tactics
SOA and API Convergence Strategy and TacticsChris Haddad
 
WSO2 API Manager : Going beyond the just API Management
WSO2 API Manager : Going beyond the just API ManagementWSO2 API Manager : Going beyond the just API Management
WSO2 API Manager : Going beyond the just API ManagementEdgar Silva
 
How to Build, Manage, and Promote APIs
How to Build, Manage, and Promote APIsHow to Build, Manage, and Promote APIs
How to Build, Manage, and Promote APIsWSO2
 
Architecting an Enterprise API Management Strategy
Architecting an Enterprise API Management StrategyArchitecting an Enterprise API Management Strategy
Architecting an Enterprise API Management StrategyWSO2
 
Api management best practices with wso2 api manager
Api management best practices with wso2 api managerApi management best practices with wso2 api manager
Api management best practices with wso2 api managerChanaka Fernando
 
Patterns and Practices in Mobile SSO
Patterns and Practices in Mobile SSOPatterns and Practices in Mobile SSO
Patterns and Practices in Mobile SSOWSO2
 
API Management Demystified
API Management DemystifiedAPI Management Demystified
API Management DemystifiedManmohan Gupta
 
Azure API Management - Global Azure Bootcamp 2019
Azure API Management - Global Azure Bootcamp 2019Azure API Management - Global Azure Bootcamp 2019
Azure API Management - Global Azure Bootcamp 2019Sam Fernando
 
API and SOA: Two Sides of the Same Coin?
API and SOA: Two Sides of the Same Coin?API and SOA: Two Sides of the Same Coin?
API and SOA: Two Sides of the Same Coin?Akana
 
API Security and Management Best Practices
API Security and Management Best PracticesAPI Security and Management Best Practices
API Security and Management Best PracticesCA API Management
 
Getting Started with the WSO2 API Manager
Getting Started with the WSO2 API ManagerGetting Started with the WSO2 API Manager
Getting Started with the WSO2 API ManagerWSO2
 
DevOps & Apps - Building and Operating Successful Mobile Apps
DevOps & Apps - Building and Operating Successful Mobile AppsDevOps & Apps - Building and Operating Successful Mobile Apps
DevOps & Apps - Building and Operating Successful Mobile AppsApigee | Google Cloud
 
API Introduction - API Management Workshop Munich from Ronnie Mitra
API Introduction - API Management Workshop Munich from Ronnie MitraAPI Introduction - API Management Workshop Munich from Ronnie Mitra
API Introduction - API Management Workshop Munich from Ronnie MitraCA API Management
 
API Management - Why it matters!
API Management - Why it matters!API Management - Why it matters!
API Management - Why it matters!Sven Bernhardt
 
An Introduction to the WSO2 API Manager
An Introduction to the WSO2 API Manager An Introduction to the WSO2 API Manager
An Introduction to the WSO2 API Manager WSO2
 

What's hot (20)

Wso2 Api Manager
Wso2 Api ManagerWso2 Api Manager
Wso2 Api Manager
 
Best Practices: The Role of API Management
Best Practices: The Role of API ManagementBest Practices: The Role of API Management
Best Practices: The Role of API Management
 
Why APIs are Different Than Integration
Why APIs are Different Than IntegrationWhy APIs are Different Than Integration
Why APIs are Different Than Integration
 
Deconstructing API Security
Deconstructing API SecurityDeconstructing API Security
Deconstructing API Security
 
SOA and API Convergence Strategy and Tactics
SOA and API Convergence Strategy and TacticsSOA and API Convergence Strategy and Tactics
SOA and API Convergence Strategy and Tactics
 
WSO2 API Manager : Going beyond the just API Management
WSO2 API Manager : Going beyond the just API ManagementWSO2 API Manager : Going beyond the just API Management
WSO2 API Manager : Going beyond the just API Management
 
How to Build, Manage, and Promote APIs
How to Build, Manage, and Promote APIsHow to Build, Manage, and Promote APIs
How to Build, Manage, and Promote APIs
 
Bigger, Better Business With OAuth
Bigger, Better Business With OAuthBigger, Better Business With OAuth
Bigger, Better Business With OAuth
 
Architecting an Enterprise API Management Strategy
Architecting an Enterprise API Management StrategyArchitecting an Enterprise API Management Strategy
Architecting an Enterprise API Management Strategy
 
Api management best practices with wso2 api manager
Api management best practices with wso2 api managerApi management best practices with wso2 api manager
Api management best practices with wso2 api manager
 
Patterns and Practices in Mobile SSO
Patterns and Practices in Mobile SSOPatterns and Practices in Mobile SSO
Patterns and Practices in Mobile SSO
 
API Management Demystified
API Management DemystifiedAPI Management Demystified
API Management Demystified
 
Azure API Management - Global Azure Bootcamp 2019
Azure API Management - Global Azure Bootcamp 2019Azure API Management - Global Azure Bootcamp 2019
Azure API Management - Global Azure Bootcamp 2019
 
API and SOA: Two Sides of the Same Coin?
API and SOA: Two Sides of the Same Coin?API and SOA: Two Sides of the Same Coin?
API and SOA: Two Sides of the Same Coin?
 
API Security and Management Best Practices
API Security and Management Best PracticesAPI Security and Management Best Practices
API Security and Management Best Practices
 
Getting Started with the WSO2 API Manager
Getting Started with the WSO2 API ManagerGetting Started with the WSO2 API Manager
Getting Started with the WSO2 API Manager
 
DevOps & Apps - Building and Operating Successful Mobile Apps
DevOps & Apps - Building and Operating Successful Mobile AppsDevOps & Apps - Building and Operating Successful Mobile Apps
DevOps & Apps - Building and Operating Successful Mobile Apps
 
API Introduction - API Management Workshop Munich from Ronnie Mitra
API Introduction - API Management Workshop Munich from Ronnie MitraAPI Introduction - API Management Workshop Munich from Ronnie Mitra
API Introduction - API Management Workshop Munich from Ronnie Mitra
 
API Management - Why it matters!
API Management - Why it matters!API Management - Why it matters!
API Management - Why it matters!
 
An Introduction to the WSO2 API Manager
An Introduction to the WSO2 API Manager An Introduction to the WSO2 API Manager
An Introduction to the WSO2 API Manager
 

Viewers also liked

Introducing WSO2 API Manager for Mobile Applications and Rapid Integration
Introducing WSO2 API Manager for Mobile Applications and Rapid IntegrationIntroducing WSO2 API Manager for Mobile Applications and Rapid Integration
Introducing WSO2 API Manager for Mobile Applications and Rapid IntegrationWSO2
 
WSO2Con USA 2017: Rise to the Challenge with WSO2 Identity Server and WSO2 AP...
WSO2Con USA 2017: Rise to the Challenge with WSO2 Identity Server and WSO2 AP...WSO2Con USA 2017: Rise to the Challenge with WSO2 Identity Server and WSO2 AP...
WSO2Con USA 2017: Rise to the Challenge with WSO2 Identity Server and WSO2 AP...WSO2
 
WSO2Con USA 2017: Managing Verifone’s New Payment Device “Carbon” with WSO2’s...
WSO2Con USA 2017: Managing Verifone’s New Payment Device “Carbon” with WSO2’s...WSO2Con USA 2017: Managing Verifone’s New Payment Device “Carbon” with WSO2’s...
WSO2Con USA 2017: Managing Verifone’s New Payment Device “Carbon” with WSO2’s...WSO2
 
Using WSO2 as a Mobile Services Platform
 Using WSO2 as a Mobile Services Platform Using WSO2 as a Mobile Services Platform
Using WSO2 as a Mobile Services PlatformWSO2
 
Run Your Own Mobile App Store with WSO2 App Manager
Run Your Own Mobile App Store with WSO2 App ManagerRun Your Own Mobile App Store with WSO2 App Manager
Run Your Own Mobile App Store with WSO2 App ManagerWSO2
 
Getting your iOS Device Managed by WSO2 EMM
Getting your iOS Device Managed by WSO2 EMMGetting your iOS Device Managed by WSO2 EMM
Getting your iOS Device Managed by WSO2 EMMWSO2
 
WSO2Con USA 2015: WSO2 Cloud: What it is, How it Works, and Where it’s Going
WSO2Con USA 2015: WSO2 Cloud: What it is, How it Works, and Where it’s GoingWSO2Con USA 2015: WSO2 Cloud: What it is, How it Works, and Where it’s Going
WSO2Con USA 2015: WSO2 Cloud: What it is, How it Works, and Where it’s GoingWSO2
 
WSO2Con USA 2015: Keynote - Kubernetes – A Platform for Automating Deployment...
WSO2Con USA 2015: Keynote - Kubernetes – A Platform for Automating Deployment...WSO2Con USA 2015: Keynote - Kubernetes – A Platform for Automating Deployment...
WSO2Con USA 2015: Keynote - Kubernetes – A Platform for Automating Deployment...WSO2
 
WSO2Con USA 2015: Getting More 9s from Your Deployment
WSO2Con USA 2015: Getting More 9s from Your DeploymentWSO2Con USA 2015: Getting More 9s from Your Deployment
WSO2Con USA 2015: Getting More 9s from Your DeploymentWSO2
 
WSO2Con USA 2015: Planning Your Cloud Strategy
WSO2Con USA 2015: Planning Your Cloud StrategyWSO2Con USA 2015: Planning Your Cloud Strategy
WSO2Con USA 2015: Planning Your Cloud StrategyWSO2
 
WSO2Con USA 2015: Patterns for Deploying Analytics in the Real World
WSO2Con USA 2015: Patterns for Deploying Analytics in the Real WorldWSO2Con USA 2015: Patterns for Deploying Analytics in the Real World
WSO2Con USA 2015: Patterns for Deploying Analytics in the Real WorldWSO2
 
WSO2Con Asia 2014 - Bring Your Own IDentity (BYOID) Benefits and Challenges
WSO2Con Asia 2014 - Bring Your Own IDentity (BYOID) Benefits and ChallengesWSO2Con Asia 2014 - Bring Your Own IDentity (BYOID) Benefits and Challenges
WSO2Con Asia 2014 - Bring Your Own IDentity (BYOID) Benefits and ChallengesWSO2
 
WSO2Con USA 2015: Single Sign-on Solutions for Salesforce with WSO2 Identity ...
WSO2Con USA 2015: Single Sign-on Solutions for Salesforce with WSO2 Identity ...WSO2Con USA 2015: Single Sign-on Solutions for Salesforce with WSO2 Identity ...
WSO2Con USA 2015: Single Sign-on Solutions for Salesforce with WSO2 Identity ...WSO2
 
WSO2Con EU 2016: Getting Started with App Cloud and API Cloud for SMEs
WSO2Con EU 2016: Getting Started with App Cloud and API Cloud for SMEsWSO2Con EU 2016: Getting Started with App Cloud and API Cloud for SMEs
WSO2Con EU 2016: Getting Started with App Cloud and API Cloud for SMEsWSO2
 
WSO2Con USA 2015: Decide and Do By Knowing With WSO2 CEP
WSO2Con USA 2015: Decide and Do By Knowing With WSO2 CEPWSO2Con USA 2015: Decide and Do By Knowing With WSO2 CEP
WSO2Con USA 2015: Decide and Do By Knowing With WSO2 CEPWSO2
 
WSO2Con EU 2016: An Effective Device Strategy to Accelerate your Business
WSO2Con EU 2016: An Effective Device Strategy to  Accelerate your BusinessWSO2Con EU 2016: An Effective Device Strategy to  Accelerate your Business
WSO2Con EU 2016: An Effective Device Strategy to Accelerate your BusinessWSO2
 
WSO2Con ASIA 2016: Case Study: Identity in the WSO2 Ecosystem
WSO2Con ASIA 2016: Case Study: Identity in the WSO2 EcosystemWSO2Con ASIA 2016: Case Study: Identity in the WSO2 Ecosystem
WSO2Con ASIA 2016: Case Study: Identity in the WSO2 EcosystemWSO2
 
WSO2Con EU 2016: Identity Management – A Cornerstone for the Connected Enter...
WSO2Con EU 2016: Identity Management –  A Cornerstone for the Connected Enter...WSO2Con EU 2016: Identity Management –  A Cornerstone for the Connected Enter...
WSO2Con EU 2016: Identity Management – A Cornerstone for the Connected Enter...WSO2
 
WSO2 Identity Server - Product Overview
WSO2 Identity Server - Product OverviewWSO2 Identity Server - Product Overview
WSO2 Identity Server - Product OverviewWSO2
 
WSO2Con EU 2016: Integration in the Home (For Less Than $50), Internet of Th...
WSO2Con EU 2016: Integration in the Home (For Less Than $50),  Internet of Th...WSO2Con EU 2016: Integration in the Home (For Less Than $50),  Internet of Th...
WSO2Con EU 2016: Integration in the Home (For Less Than $50), Internet of Th...WSO2
 

Viewers also liked (20)

Introducing WSO2 API Manager for Mobile Applications and Rapid Integration
Introducing WSO2 API Manager for Mobile Applications and Rapid IntegrationIntroducing WSO2 API Manager for Mobile Applications and Rapid Integration
Introducing WSO2 API Manager for Mobile Applications and Rapid Integration
 
WSO2Con USA 2017: Rise to the Challenge with WSO2 Identity Server and WSO2 AP...
WSO2Con USA 2017: Rise to the Challenge with WSO2 Identity Server and WSO2 AP...WSO2Con USA 2017: Rise to the Challenge with WSO2 Identity Server and WSO2 AP...
WSO2Con USA 2017: Rise to the Challenge with WSO2 Identity Server and WSO2 AP...
 
WSO2Con USA 2017: Managing Verifone’s New Payment Device “Carbon” with WSO2’s...
WSO2Con USA 2017: Managing Verifone’s New Payment Device “Carbon” with WSO2’s...WSO2Con USA 2017: Managing Verifone’s New Payment Device “Carbon” with WSO2’s...
WSO2Con USA 2017: Managing Verifone’s New Payment Device “Carbon” with WSO2’s...
 
Using WSO2 as a Mobile Services Platform
 Using WSO2 as a Mobile Services Platform Using WSO2 as a Mobile Services Platform
Using WSO2 as a Mobile Services Platform
 
Run Your Own Mobile App Store with WSO2 App Manager
Run Your Own Mobile App Store with WSO2 App ManagerRun Your Own Mobile App Store with WSO2 App Manager
Run Your Own Mobile App Store with WSO2 App Manager
 
Getting your iOS Device Managed by WSO2 EMM
Getting your iOS Device Managed by WSO2 EMMGetting your iOS Device Managed by WSO2 EMM
Getting your iOS Device Managed by WSO2 EMM
 
WSO2Con USA 2015: WSO2 Cloud: What it is, How it Works, and Where it’s Going
WSO2Con USA 2015: WSO2 Cloud: What it is, How it Works, and Where it’s GoingWSO2Con USA 2015: WSO2 Cloud: What it is, How it Works, and Where it’s Going
WSO2Con USA 2015: WSO2 Cloud: What it is, How it Works, and Where it’s Going
 
WSO2Con USA 2015: Keynote - Kubernetes – A Platform for Automating Deployment...
WSO2Con USA 2015: Keynote - Kubernetes – A Platform for Automating Deployment...WSO2Con USA 2015: Keynote - Kubernetes – A Platform for Automating Deployment...
WSO2Con USA 2015: Keynote - Kubernetes – A Platform for Automating Deployment...
 
WSO2Con USA 2015: Getting More 9s from Your Deployment
WSO2Con USA 2015: Getting More 9s from Your DeploymentWSO2Con USA 2015: Getting More 9s from Your Deployment
WSO2Con USA 2015: Getting More 9s from Your Deployment
 
WSO2Con USA 2015: Planning Your Cloud Strategy
WSO2Con USA 2015: Planning Your Cloud StrategyWSO2Con USA 2015: Planning Your Cloud Strategy
WSO2Con USA 2015: Planning Your Cloud Strategy
 
WSO2Con USA 2015: Patterns for Deploying Analytics in the Real World
WSO2Con USA 2015: Patterns for Deploying Analytics in the Real WorldWSO2Con USA 2015: Patterns for Deploying Analytics in the Real World
WSO2Con USA 2015: Patterns for Deploying Analytics in the Real World
 
WSO2Con Asia 2014 - Bring Your Own IDentity (BYOID) Benefits and Challenges
WSO2Con Asia 2014 - Bring Your Own IDentity (BYOID) Benefits and ChallengesWSO2Con Asia 2014 - Bring Your Own IDentity (BYOID) Benefits and Challenges
WSO2Con Asia 2014 - Bring Your Own IDentity (BYOID) Benefits and Challenges
 
WSO2Con USA 2015: Single Sign-on Solutions for Salesforce with WSO2 Identity ...
WSO2Con USA 2015: Single Sign-on Solutions for Salesforce with WSO2 Identity ...WSO2Con USA 2015: Single Sign-on Solutions for Salesforce with WSO2 Identity ...
WSO2Con USA 2015: Single Sign-on Solutions for Salesforce with WSO2 Identity ...
 
WSO2Con EU 2016: Getting Started with App Cloud and API Cloud for SMEs
WSO2Con EU 2016: Getting Started with App Cloud and API Cloud for SMEsWSO2Con EU 2016: Getting Started with App Cloud and API Cloud for SMEs
WSO2Con EU 2016: Getting Started with App Cloud and API Cloud for SMEs
 
WSO2Con USA 2015: Decide and Do By Knowing With WSO2 CEP
WSO2Con USA 2015: Decide and Do By Knowing With WSO2 CEPWSO2Con USA 2015: Decide and Do By Knowing With WSO2 CEP
WSO2Con USA 2015: Decide and Do By Knowing With WSO2 CEP
 
WSO2Con EU 2016: An Effective Device Strategy to Accelerate your Business
WSO2Con EU 2016: An Effective Device Strategy to  Accelerate your BusinessWSO2Con EU 2016: An Effective Device Strategy to  Accelerate your Business
WSO2Con EU 2016: An Effective Device Strategy to Accelerate your Business
 
WSO2Con ASIA 2016: Case Study: Identity in the WSO2 Ecosystem
WSO2Con ASIA 2016: Case Study: Identity in the WSO2 EcosystemWSO2Con ASIA 2016: Case Study: Identity in the WSO2 Ecosystem
WSO2Con ASIA 2016: Case Study: Identity in the WSO2 Ecosystem
 
WSO2Con EU 2016: Identity Management – A Cornerstone for the Connected Enter...
WSO2Con EU 2016: Identity Management –  A Cornerstone for the Connected Enter...WSO2Con EU 2016: Identity Management –  A Cornerstone for the Connected Enter...
WSO2Con EU 2016: Identity Management – A Cornerstone for the Connected Enter...
 
WSO2 Identity Server - Product Overview
WSO2 Identity Server - Product OverviewWSO2 Identity Server - Product Overview
WSO2 Identity Server - Product Overview
 
WSO2Con EU 2016: Integration in the Home (For Less Than $50), Internet of Th...
WSO2Con EU 2016: Integration in the Home (For Less Than $50),  Internet of Th...WSO2Con EU 2016: Integration in the Home (For Less Than $50),  Internet of Th...
WSO2Con EU 2016: Integration in the Home (For Less Than $50), Internet of Th...
 

Similar to How APIs Can Be Secured in Mobile Environments

Web services soap and rest by mandakini for TechGig
Web services soap and rest by mandakini for TechGigWeb services soap and rest by mandakini for TechGig
Web services soap and rest by mandakini for TechGigMandakini Kumari
 
Build your APIs with apigility
Build your APIs with apigilityBuild your APIs with apigility
Build your APIs with apigilityChristian Varela
 
4163A - What is Web 2.0.ppt
4163A - What is Web 2.0.ppt4163A - What is Web 2.0.ppt
4163A - What is Web 2.0.pptMatthew Perrins
 
Introduction to CloudStack API
Introduction to CloudStack APIIntroduction to CloudStack API
Introduction to CloudStack APIKrunal Jain
 
RefCard API Architecture Strategy
RefCard API Architecture StrategyRefCard API Architecture Strategy
RefCard API Architecture StrategyOCTO Technology
 
REST: So What's It All About? (SAP TechEd 2011, MOB107)
REST: So What's It All About? (SAP TechEd 2011, MOB107)REST: So What's It All About? (SAP TechEd 2011, MOB107)
REST: So What's It All About? (SAP TechEd 2011, MOB107)Sascha Wenninger
 
RefCard RESTful API Design
RefCard RESTful API DesignRefCard RESTful API Design
RefCard RESTful API DesignOCTO Technology
 
Web Development Presentation
Web Development PresentationWeb Development Presentation
Web Development PresentationTurnToTech
 
Best Practices for Architecting a Pragmatic Web API.
Best Practices for Architecting a Pragmatic Web API.Best Practices for Architecting a Pragmatic Web API.
Best Practices for Architecting a Pragmatic Web API.Mario Cardinal
 
Time to REST: testing web services
Time to REST: testing web servicesTime to REST: testing web services
Time to REST: testing web servicesIurii Kutelmakh
 
Building Your First App with MongoDB
Building Your First App with MongoDBBuilding Your First App with MongoDB
Building Your First App with MongoDBMongoDB
 
ASP.NET Web API and HTTP Fundamentals
ASP.NET Web API and HTTP FundamentalsASP.NET Web API and HTTP Fundamentals
ASP.NET Web API and HTTP FundamentalsIdo Flatow
 
Understanding Identity in the World of Web APIs – Ronnie Mitra, API Architec...
Understanding Identity in the World of Web APIs – Ronnie Mitra,  API Architec...Understanding Identity in the World of Web APIs – Ronnie Mitra,  API Architec...
Understanding Identity in the World of Web APIs – Ronnie Mitra, API Architec...CA API Management
 
How to build Simple yet powerful API.pptx
How to build Simple yet powerful API.pptxHow to build Simple yet powerful API.pptx
How to build Simple yet powerful API.pptxChanna Ly
 

Similar to How APIs Can Be Secured in Mobile Environments (20)

Getting Started with API Management
Getting Started with API ManagementGetting Started with API Management
Getting Started with API Management
 
Web services soap and rest by mandakini for TechGig
Web services soap and rest by mandakini for TechGigWeb services soap and rest by mandakini for TechGig
Web services soap and rest by mandakini for TechGig
 
Build your APIs with apigility
Build your APIs with apigilityBuild your APIs with apigility
Build your APIs with apigility
 
Web services - REST and SOAP
Web services - REST and SOAPWeb services - REST and SOAP
Web services - REST and SOAP
 
4163A - What is Web 2.0.ppt
4163A - What is Web 2.0.ppt4163A - What is Web 2.0.ppt
4163A - What is Web 2.0.ppt
 
Introduction to CloudStack API
Introduction to CloudStack APIIntroduction to CloudStack API
Introduction to CloudStack API
 
Web services
Web servicesWeb services
Web services
 
REST full API Design
REST full API DesignREST full API Design
REST full API Design
 
RefCard API Architecture Strategy
RefCard API Architecture StrategyRefCard API Architecture Strategy
RefCard API Architecture Strategy
 
REST: So What's It All About? (SAP TechEd 2011, MOB107)
REST: So What's It All About? (SAP TechEd 2011, MOB107)REST: So What's It All About? (SAP TechEd 2011, MOB107)
REST: So What's It All About? (SAP TechEd 2011, MOB107)
 
RefCard RESTful API Design
RefCard RESTful API DesignRefCard RESTful API Design
RefCard RESTful API Design
 
Web Development Presentation
Web Development PresentationWeb Development Presentation
Web Development Presentation
 
Best Practices for Architecting a Pragmatic Web API.
Best Practices for Architecting a Pragmatic Web API.Best Practices for Architecting a Pragmatic Web API.
Best Practices for Architecting a Pragmatic Web API.
 
Time to REST: testing web services
Time to REST: testing web servicesTime to REST: testing web services
Time to REST: testing web services
 
Building Your First App with MongoDB
Building Your First App with MongoDBBuilding Your First App with MongoDB
Building Your First App with MongoDB
 
ASP.NET Web API and HTTP Fundamentals
ASP.NET Web API and HTTP FundamentalsASP.NET Web API and HTTP Fundamentals
ASP.NET Web API and HTTP Fundamentals
 
Understanding Identity in the World of Web APIs – Ronnie Mitra, API Architec...
Understanding Identity in the World of Web APIs – Ronnie Mitra,  API Architec...Understanding Identity in the World of Web APIs – Ronnie Mitra,  API Architec...
Understanding Identity in the World of Web APIs – Ronnie Mitra, API Architec...
 
How to build Simple yet powerful API.pptx
How to build Simple yet powerful API.pptxHow to build Simple yet powerful API.pptx
How to build Simple yet powerful API.pptx
 
Rest web service
Rest web serviceRest web service
Rest web service
 
How RESTful Is Your REST?
How RESTful Is Your REST?How RESTful Is Your REST?
How RESTful Is Your REST?
 

More from WSO2

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessWSO2
 
How to Create a Service in Choreo
How to Create a Service in ChoreoHow to Create a Service in Choreo
How to Create a Service in ChoreoWSO2
 
Ballerina Tech Talk - May 2023
Ballerina Tech Talk - May 2023Ballerina Tech Talk - May 2023
Ballerina Tech Talk - May 2023WSO2
 
Platform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on AzurePlatform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on AzureWSO2
 
GartnerITSymSessionSlides.pdf
GartnerITSymSessionSlides.pdfGartnerITSymSessionSlides.pdf
GartnerITSymSessionSlides.pdfWSO2
 
[Webinar] How to Create an API in Minutes
[Webinar] How to Create an API in Minutes[Webinar] How to Create an API in Minutes
[Webinar] How to Create an API in MinutesWSO2
 
Modernizing the Student Journey with Ethos Identity
Modernizing the Student Journey with Ethos IdentityModernizing the Student Journey with Ethos Identity
Modernizing the Student Journey with Ethos IdentityWSO2
 
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...WSO2
 
CIO Summit Berlin 2022.pptx.pdf
CIO Summit Berlin 2022.pptx.pdfCIO Summit Berlin 2022.pptx.pdf
CIO Summit Berlin 2022.pptx.pdfWSO2
 
Delivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing ChoreoDelivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing ChoreoWSO2
 
Fueling the Digital Experience Economy with Connected Products
Fueling the Digital Experience Economy with Connected ProductsFueling the Digital Experience Economy with Connected Products
Fueling the Digital Experience Economy with Connected ProductsWSO2
 
A Reference Methodology for Agile Digital Businesses
 A Reference Methodology for Agile Digital Businesses A Reference Methodology for Agile Digital Businesses
A Reference Methodology for Agile Digital BusinessesWSO2
 
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)WSO2
 
Lessons from the pandemic - From a single use case to true transformation
 Lessons from the pandemic - From a single use case to true transformation Lessons from the pandemic - From a single use case to true transformation
Lessons from the pandemic - From a single use case to true transformationWSO2
 
Adding Liveliness to Banking Experiences
Adding Liveliness to Banking ExperiencesAdding Liveliness to Banking Experiences
Adding Liveliness to Banking ExperiencesWSO2
 
Building a Future-ready Bank
Building a Future-ready BankBuilding a Future-ready Bank
Building a Future-ready BankWSO2
 
WSO2 API Manager Community Call - November 2021
WSO2 API Manager Community Call - November 2021WSO2 API Manager Community Call - November 2021
WSO2 API Manager Community Call - November 2021WSO2
 
[API World ] - Managing Asynchronous APIs
[API World ] - Managing Asynchronous APIs[API World ] - Managing Asynchronous APIs
[API World ] - Managing Asynchronous APIsWSO2
 
[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native Deployment[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native DeploymentWSO2
 

More from WSO2 (20)

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with Platformless
 
How to Create a Service in Choreo
How to Create a Service in ChoreoHow to Create a Service in Choreo
How to Create a Service in Choreo
 
Ballerina Tech Talk - May 2023
Ballerina Tech Talk - May 2023Ballerina Tech Talk - May 2023
Ballerina Tech Talk - May 2023
 
Platform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on AzurePlatform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on Azure
 
GartnerITSymSessionSlides.pdf
GartnerITSymSessionSlides.pdfGartnerITSymSessionSlides.pdf
GartnerITSymSessionSlides.pdf
 
[Webinar] How to Create an API in Minutes
[Webinar] How to Create an API in Minutes[Webinar] How to Create an API in Minutes
[Webinar] How to Create an API in Minutes
 
Modernizing the Student Journey with Ethos Identity
Modernizing the Student Journey with Ethos IdentityModernizing the Student Journey with Ethos Identity
Modernizing the Student Journey with Ethos Identity
 
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...
 
CIO Summit Berlin 2022.pptx.pdf
CIO Summit Berlin 2022.pptx.pdfCIO Summit Berlin 2022.pptx.pdf
CIO Summit Berlin 2022.pptx.pdf
 
Delivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing ChoreoDelivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing Choreo
 
Fueling the Digital Experience Economy with Connected Products
Fueling the Digital Experience Economy with Connected ProductsFueling the Digital Experience Economy with Connected Products
Fueling the Digital Experience Economy with Connected Products
 
A Reference Methodology for Agile Digital Businesses
 A Reference Methodology for Agile Digital Businesses A Reference Methodology for Agile Digital Businesses
A Reference Methodology for Agile Digital Businesses
 
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
 
Lessons from the pandemic - From a single use case to true transformation
 Lessons from the pandemic - From a single use case to true transformation Lessons from the pandemic - From a single use case to true transformation
Lessons from the pandemic - From a single use case to true transformation
 
Adding Liveliness to Banking Experiences
Adding Liveliness to Banking ExperiencesAdding Liveliness to Banking Experiences
Adding Liveliness to Banking Experiences
 
Building a Future-ready Bank
Building a Future-ready BankBuilding a Future-ready Bank
Building a Future-ready Bank
 
WSO2 API Manager Community Call - November 2021
WSO2 API Manager Community Call - November 2021WSO2 API Manager Community Call - November 2021
WSO2 API Manager Community Call - November 2021
 
[API World ] - Managing Asynchronous APIs
[API World ] - Managing Asynchronous APIs[API World ] - Managing Asynchronous APIs
[API World ] - Managing Asynchronous APIs
 
[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native Deployment[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native Deployment
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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...Drew Madelung
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
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 WorkerThousandEyes
 
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 CVKhem
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Recently uploaded (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
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
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

How APIs Can Be Secured in Mobile Environments

  • 1. How APIs Can Be Secured in Mobile Environments Shan - Director, Mobile Architecture
  • 2. About the Presenter Shan specializes in mobile technology with over 10 years experience in that field. He has a strong background in telecommunication software development and is a hardcore coder in Android and iOS platforms. Prior to joining WSO2Mobile, he was working as the CTO/Director of Microimage Mobile Media for almost 16 years. He played a key role in engineering products where Microimage has won many local & international awards which includes winning the Inaugural GSMA Asia Mobile Innovation Award, Commendation from GSMA at the Barcelona World Awards in 2007, Asia Pacific ICT Awards (APICTA) Lecturer at Cicra campus (Executive MSc in Information Security) Hobbyist (Arduino/RPi/ Wearable Devices)
  • 3. 3 Web Service Web API SOAP REST iOS Android Windows WSDLUDDI JAX-WSJAX-RS WCF CXFJersey RestEasyRestlet ProtocolStandards Framework XML-RPCPOXML Http Https SMTP TCP/IP SSO OAuthOpenID Connect WADL API
  • 4. 4 Mobile First Strategy Design products for mobile phones before desktop and laptop computers.
  • 5. Rise of the Mobile-First Enterprise Apps 5 • Managers, executives and other decision makers spend huge amounts of time outside of their offices • Mobile is how they stay connected to their businesses. • Stay connected to data 24/7 (data anytime, anywhere)
  • 7. 7 EmployeesManagers Owners Customers Suppliers Shareholders ?
  • 8. Mobile  App  Development 1.Responsive Web 2.Hybrid Web 3.Mobile Web 4.Hybrid Native 5.Native Apps
  • 9. 9 Native features and UX Performance Code Base Availability - (Developer) Distribution What  to  choose  ?  
  • 10. 10 Native Mobile Application iOS - Obj-C, Swift Android - Java
  • 11. 11 I n t e r f a c e Web API API describes what functionality is available how it must be used what formats it will accept as input or return as output
  • 12. How  API’s  are  exposed 12 • COM objects • DLL and .H files in C/C++ programming language • JAR files • RMI in Java • XML over HTTP • JSON over HTTP
  • 13. WebAPI      Vs    WebService 13 Does not define the how data is sent over the network Involves sending data over a network All APIs are not Web services. All Web services are APIs API may use any style for communication Three styles of use: SOAP, REST and XML-RPC for communication API consists of a complete set of rules and specifications for a software program to follow in order to facilitate interaction. A Web service might not contain a complete set of specifications and sometimes might not be able to perform all the tasks that may be possible from a complete API.
  • 14. 14 Gregory Peck Gladia Soronika Ganesh Guru Michelle Sharapova POST /webservices/hr/employees.asmx HTTP/1.1 Host: www.w3schools.com Content-Type: application/soap+xml; charset=utf-8 Content-Length: length <?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <GetEmployees xmlns="http://www.w3schools.com/webservices/"> </GetEmployees> </soap12:Body> </soap12:Envelope> i n t e r f a c e http://<domain>/hr/getEmployees http://<domain>/hr/Employees http://<domain>/hr/Employees.asmx
  • 15. SOAP • provide a way to build and invoke a hosted API in a language- and platform-neutral manner. • message from one end to the other is passed as an XML payload. • very structured and is backed by a large number of specifications. • request/response protocol between the client and the server is defined in the SOAP specification. • service is defined in Web Services Description Language (WSDL). • WS-Security, WS-Trust, and WS-Federation specifications provides security • WS-Policy provides a framework to build quality-of-service expressions • WS-SecurityPolicy defines the security requirements of a SOAP service in a standard way, built on top of the WS-Policy framework. • highly decoupled, standardized, and governed based on policies, preferred way build a service-oriented architecture (SOA) 15 Popularity has declined • complexity of the WS-* standards. • many ambiguities arose among different implementation stacks Web Services Interoperability (WS-I) organization came up with the Basic Profile for web services
  • 16. REST 16 • based on the rule set defined in the HTTP specification • not restricted to XML format (can be plain text, JSON, and also XML) • protocol independent • uses the security and authentication of HTTP • REST is not REST without HATEOAS (client only knows the entry point URI and the resources are supposed to return links) • service is defined in Web Application Description Language (WADL).
  • 17. 17 HATEOAS - Hypermedia as the Engine of Application State { "links": [ { "rel": "self", "href": "http://localhost:8080/customers" } ], "content": [ { "fullName": "Matthews, Dave", "email": "dave@dmband.com", "links": [ { "rel": "self", "href": "http://localhost:8080/customers/1" } ] } ] }
  • 18. Designing    WebAPI 18 • Web API should be stateless (no session state, cookies, or server-side values) Adding state adds complexity and limits scalability • Endpoints of the API should be exposed through SSL by default • User credentials should never be passed as part an API call GET /employees?userid=greg&password=1234 - still visible in any logs on the Web server (even passed in header) - credentials can be corporate accounts used for other systems - lifetime (until the password is changed) • some APIs use an application key or some other token derived from a HMAC algorithm - if the key is exposed, it can be difficult to revoke. Key embedded in a mobile app
  • 19. Designing    Rest  API 19 Correct use of REST is about nouns, not verbs GET /GetAccountBalance?account_id=1234 GET /accounts/1234 GET /accounts?fields=id,name&sort=id&limit=100&offset=50 HTTP VERBS together with nouns or entities in the URL that represent the data you are exposing GET List Account /accounts/1234 PUT Update Account /accounts/1234 POST Add Account /accounts/1234 DELETE Delete Account /accounts/1234
  • 20. API  Security 20 Most Basic form of API Authentication Simple for API Services developer and the API Consumer HTTP Basic Authentication HTTP Digest Authentication Mutual Authentication OAuth2.0 OpenId Connect
  • 21. HTTP  Basic  Authentication     21 How it Works ? If an API is HTTP Basic Authenticated : Client Browser sends GET /hr/employee/2 HTTP/1.1 Host: www.wso2.com Server Reply HTTP/1.1 401 Access Denied WWW-Authenticate: Basic realm=“wso2.com" Content-Length: 0 Client Browser sends GET /hr/employee/2 HTTP/1.1 Host: www.wso2.com Authorization: Basic aHR0cHdhdGNoOmY= www.wso2.com/hr/employee/2 www.wso2.com:80 Base64Encode(username:password) A string to be displayed to users so they know which username and password to use. This string should contain at least the name of the host performing the authentication and may additionally indicate the collection of users who may have access.
  • 22. HTTP  Basic  Authentication  -­‐  Mobile  Apps   22 • username and password • Header - Authorization: Basic aHR0cHdhdGNoOmY= • call the API https://www.wso2.com/hr/employees https://www.wso2.com/hr/employee/1 • username and password • Header - Authorization: Basic aHR0cHdhdGNoOmY= • call the API How to store the username and password ? When using the App or Master secret with Basic Auth, use your App Key as the username, and the secret as the password.
  • 23. HTTP  Digest  Authentication     23 Client Browser sends GET /hr/employee/2 HTTP/1.1 Host: www.wso2.com Server Reply HTTP/1.1 401 Unauthorized WWW-Authenticate: Digest realm="wso2.com", qop="auth", nonce="1390781967182:c2db4ebb26207f6ed38bb08eeffc7422", opaque="F5288F4526B8EAFFC4AC79F04CA8A6ED" Client Browser sends GET /hr/employee/2 HTTP/1.1 Host: www.wso2.com Authorization: Digest username="shan", realm=“wso2.com", nonce=“1390781967182:c2db4ebb26207f6ed38bb08eeffc7422", uri=“/hr/employee“, cnonce="MTM5MDc4", nc=00000001, qop="auth", response="f5bfb64ba8596d1b9ad1514702f5a062", opaque="F5288F4526B8EAFFC4AC79F04CA8A6ED" realm: A string to be displayed to users so they know which username and password to use. This string should contain at least the name of the host performing the authentication and may additionally indicate the collection of users who may have access. 
 nonce: A server-specified data string, which should be uniquely generated each time a 401 response is made. The content of the nonce is implementation dependent. 
 opaque: A string of data, specified by the server, that should be returned by the client unchanged in the Authorization header of subsequent requests with URIs in the same protection space (which is the realm). 
 qop: The “quality of protection” options applied to the response by the server. The value auth indicates authentication while auth-int indicates authentication with integrity protection. 
 Refer : www.ietf.org/rfc/rfc2617.txt
  • 24. 24 How  to  calculate  the  Response  in  HTTP   Digest  ?   qop = “auth” HA1=MD5(username:realm:password) HA2=MD5(method:digestURI) response=MD5(HA1:nonce:HA2) qop = “auth-int” HA1=MD5(username:realm:password) HA2=MD5(method:digestURI:MD5(entityBody)) response=MD5(HA1:nonce:nonceCount:clientNonce:qo qop is unspecified HA1=MD5(username:realm:password) HA2=MD5(method:digestURI) response=MD5(HA1:nonce:HA2) Digest calculation is done with two types of data: security-related data qop = “auth” message-related data qop = “auth-int”
  • 25. 25 HTTP Basic Authentication HTTP Digest Authentication Sends credentials in cleartext over the wire Credentials are never sent in cleartext. A digest derived from the cleartext password is sent over the wire. Should be used in conjunction with some external security systems like TLS Doesn’t depend on transport-level security or external security systems. Only performs authentication Can be used to protect the integrity of the message, in addition to authentication (with qop=auth-int).
 User store can store passwords as a salted hash User store should store passwords in cleartext or should store the hash value of username:password:realm. • Storing the password in cleartext or the hashed value of username:password:realm in Mobile Device • Neither option is safe. • Recommended is to encrypt and store the hash of username:password:realm. As a general rule, if servers or proxies don't understand the values of standard headers,will ignore it.
  • 26. Mutual  Authentication Device presents the login screen Authentication happens Device will create the CSR based on the server policy Service signs the certificate and sends the certificate to the device Both way the communication is signed and encrypted 26
  • 27. Mutual  Authentication Difficult and complicated to implement More secured 27
  • 28. OAuth  2.0 28 OAuth2 is an excellent protocol for securing API services from untrusted devices 1.A user opens up your mobile app and is prompted for their username or email and password. 2.You send a POST request from your mobile app to your API service with the user’s username or email and password data included 3.You validate the user credentials, and create an access token for the user that expires after a certain amount of time. 4.You store this access token on the mobile device, treating it like an API key which lets you access your API service. 5.Once the access token expires and no longer works, you re-prompt the user for their username or email and password. 6. Can use refresh token to get a new token if expired Temporary access token It will expire Even if stolen only for a specific time period
  • 29. Grant  Types ๏ Authorization  Code   ๏ Implicit    (No  client  secret)   ๏ Resource  Owner  Password  Credentials   ๏ Client  Credentials   29 OAuth clients must be registered with the OAuth authorization server and obtain a client identifier before any interactions.
  • 30. Authorization  Code 30 Register your app and get the clientID and clientSecret Resource Owner User Agent Web App Authentication Server Resource Server 1 Redirect happens - https://<domain>/oauth2/authorize? response_type=code&client_id=0rhQErXIX49svVYoXJGt0DWBuFca&redirect_uri=https://oauth2client.com Display with Authentication page Authenticate with your username and password Ask for confirmation 2 https://oauth2client.com/cb?code=3509530953850395 3 Authorization code is extracted and sent to the Authentication Server to get the Token along with the ClientSecret POST https://api.oauth2server.com/token grant_type=authorization_code& code=AUTH_CODE_HERE& redirect_uri=REDIRECT_URI& client_id=CLIENT_ID& client_secret=CLIENT_SECRET 4.Now you call the API with the Authorization Token 3 4 1 2 ClientSecret AccessToken Authorization code
  • 31. Implicit 31 Register your app and get the clientID , no secret is generated Resource Owner User Agent Web App Authentication Server Resource Server 1 Redirect happens - https://<AuthServer>/oauth?response_type=token &client_id=CLIENT_ID&redirect_uri=https://oauth2client.com&scope=email Display with Authentication page Authenticate with your username and password Ask for confirmation 2 https://oauth2client.com/#access_token=cac93e1d29e45bf6d84073dbfb460&expires_in=3600 AccessToken is extracted , no refresh token for this 3.Now you call the API with the Access Token for a limited period 3 1 2 AccessToken
  • 32. Implicit  -­‐  Mobile  Native  Apps 32 Resource Owner Mobile App Authentication Server Resource Server 1 From the web view - https://<AuthServer>/oauth?response_type=token &client_id=CLIENT_ID&redirect_uri=https://oauth2client.com&scope=email Display with Authentication page Authenticate with your username and password Ask for confirmation 2 https://oauth2client.com/#access_token=cac93e1d29e45bf6d84073dbfb460&expires_in=3600 AccessToken is extracted , no refresh token for this 3.Now you call the API with the Access Token for a limited period from the native code 3 1 2 AccessToken WebView Login Page has to support responsive Web
  • 33. Resource Owner Password Credentials 33 Resource Owner Mobile App Authentication Server Resource Server 1 From the application Pass the clientID clientSecret as Base64 in Authorization header curl -v -X POST --basic -u 0rhQErXIX49svVYoXJGt0DWBuFca:eYOFkL756W8usQaVNgCNkz9C2D0a -H "Content-Type:application/x-www-form-urlencoded;charset=UTF-8" -k -d "grant_type=password& username=admin&password=admin" https://<AuthServer>/oauth2/token 2 Now you call the API with the Access Token and use the refresh token to get the Access Token if expired 2 AccessToken + Refresh Token Resource owner must trust the client application. The Resource Owner Password Credentials grant type was introduced to aid migration from HTTP Basic Authentication and Digest Authentication to OAuth 2.0.
  • 34. Client Credentials Grant Type
 34 Resource Owner Mobile App Authentication Server Resource Server 1 From the application Pass the clientID clientSecret as Base64 in Authorization header curl -v -X POST --basic -u 0rhQErXIX49svVYoXJGt0DWBuFca:eYOFkL756W8usQaVNgCNkz9C2D0a -H "Content-Type:application/x-www-form-urlencoded;charset=UTF-8" -k -d "grant_type=client_credentials" https://<AuthServer>/oauth2/token 2 Now you call the API with the Access Token (Client Credentials grant type doesn’t return a refresh token) 2 AccessToken + Refresh Token Client itself becomes the resource owner
  • 35. ๏ Login Screen (Responsive Web) ๏ Authorization Code (Storing clientID,clientSecret) ๏ Implicit (Token expires , need to login every time) 35 Issues for Mobile Apps
  • 36. What  is  this  Access  Token  ? 36 A random number A random string A UUID
  • 37. Storing  the  Token 37 Android - SharedPreferences iOS - Keychain
  • 38. OpenID  Connect OpenID Connect 1.0 is a simple identity layer on top of the OAuth 2.0 Can verify the identity of the End-User based on the authentication performed by an Authorization Server Can obtain basic profile information about the End-User in an interoperable and REST-like manner 38
  • 39. OpenID  Connect ๏ OpenID Connect was built on top of OAuth 39 JSON web token (JWT) that transports authenticated user information from the authorization server to the client application. { "iss":"https://auth.server.com", "sub":"shan@wso2.org", "aud":"67jjuyuy7JHk12", "nonce":"88797jgjg32332", "exp":1416283970, "iat":1416281970, "auth_time":1311280969, } iss: The token issuer (authorization server)’s identifier in the format of an HTTPS URL with no query parameters or URL fragments. sub: The local identifier of the authenticated user.
 aud: The audience of the token. This can be an array of identifiers, but it must have the OAuth client ID in it; otherwise the client ID should be added to the azp parameter. nonce: This parameter was introduced
 to mitigate replay attacks. The authorization server must reject any request if it finds two requests with the same nonce value. If a nonce is present in the authorization grant request, then the authorization server must include the same value in the ID token. The client application must validate the value of the nonce once it receives the ID token from the authorization server. exp: The token-expiration time in seconds from 1970-01-01T0:0:0Z (UTC). iat: The token-issued time in seconds from 1970-01-01T0:0:0Z (UTC). auth_time: The time at which the end user authenticates with the authorization server.

  • 40. 40 WSO2  API  Manager WSO2  Identity  Server
  • 41. WSO2  API  Manager 41 Gregory Peck Gladia Soronika Ganesh Guru Michelle Sharapova
  • 42. 42
  • 43. 43
  • 44. 44
  • 45. 45
  • 46. 46
  • 47. 47
  • 48. WSO2 - IdP Proxy Mobile App 48 Two components SDK IdPProxy Mobile App (iOS,Android) It provides API security SSO for Native Mobile Apps
  • 49. How  to  use  it  ? ๏ The developer needs to embed the SDK and add few lines of code ๏ The end user needs to download the application and also the IdPProxy Application 49
  • 50. How  it  works 50 6" •  Developer Registers their app in the IS Server •  Gets the clientID and clientSecret for that App •  Uses the IdP proxy SDK and configures the clientID and Secret •  The App invokes the IdP Proxy App with the clientID and other parameters •  IdP Proxy App displays the login screen to authenticate the user and passes the Authorization Code to the called App •  The App uses the AuthCode to get the Token which is called from IdP Proxy SDK . •  After getting the Token the app call any API •  If expired , then the SDK gets the Token again using Refresh Token
  • 54. Questions 1. The app constantly synchronizes with the server via API. How to avoid an user to enter credentials every time his token is expired ? 2. What about calls I might need to make to our API -prior- to a user authenticating. Do I get a token using the implicit grant type for these non-authenticated calls? 3. What grant-type to use for mobile Authorization Code or Resource Owner Password Credentials or Client Credentials or Implicit 4. Can I use self-signed certificate ? 5. Do I need to validate the certificate every time ? How ? 6. Mutual Authentication way ? Is it difficult 7. Storing Tokens in the device Account Manager, KeyChain ? 54