SlideShare a Scribd company logo
© Hitachi, Ltd. 2019. All rights reserved.
Implementing security and availability requirements for
banking API system using Open Source Software (OSS)
Open Source Summit Japan 2019
Hitachi, Ltd.
OSS Solution Center
Yoshiyuki Tabata
1
© Hitachi, Ltd. 2019. All rights reserved.
Self introduction
Yoshiyuki Tabata :
OSS Solution Center, Hitachi, Ltd. @ Yokohama, Japan
• Software engineer
• API Management & Identity Management
• 3scale, Keycloak
• Contributor of 3scale
• Developed “Edge Limiting policy”, “Keycloak Role Check policy”
© Hitachi, Ltd. 2019. All rights reserved.
Contents
2
1. Introduction: background and requirements
2. Usage of OSS to meet requirements
3
© Hitachi, Ltd. 2019. All rights reserved.
Background: Banking API and its security in Japan
• The revised banking act was published in Jun 2017 to promote API.
• Similar to PSD2 in EU
• 83% of banks (114 banks) answered they will open API by 2020/6(*).
(*) Based on survey of Japanese Bankers Association as of Dec 2017
• Security : OAuth 2.0 is recognized as a key technology to secure API
Quoted from Report about open API by the Japanese Bankers Association
https://www.zenginkyo.or.jp/fileadmin/res/news/news290713_3.pdf
4
© Hitachi, Ltd. 2019. All rights reserved.
Usage of OAuth 2.0: Authentication, Authorization
End users Applications API Server
3. Who is allowed what?
-> Access control
(Authorization)
Uses Apps
via browsers or
mobile devices
Call REST API
Access token
* OAuth 2.0 (RFC 6749) only describes how tokens are issued.
We have to use other standards or create something outside of standards.
1. Who is using API?
-> User authentication
2. What is using API?
-> Client authentication
OAuth 2.0
5
© Hitachi, Ltd. 2019. All rights reserved.
Requirements for Authentication/Authorization for banking API
# Category Description
1 Authentication • Can support various (customized) authentication in
OAuth flow
• Compliance to OpenID Connect on top of OAuth
2 Access control • Deny/Allow accesses based on claims in token
• Can be combined with rate limit to protect backend
3 Manage tokens • Revoke tokens triggered by users, administrators
• Revoke tokens based on policy
4 Compliance to the
latest standards
• Financial-grade API (FAPI) of OpenID Foundation
6
© Hitachi, Ltd. 2019. All rights reserved.
Background: Banking API and its availability
Level 5 4 3 2
Operating Rate > 99.999% > 99.99% > 99.9% > 99%
Total recovery time per
year (MTTR)
< 5.26 min < 52.6 min < 8.76 h < 87.6 h
Recovery time per failure < 1 min < 10 min < 1 h < 2 h
Banking API
System Infrastructure Non-Functional Requirements Related Grade Table
• Non-Functional Requirements 2018(*) was published in Apr 2018
to construct appropriate information systems, and enable stable provision of services.
(*) Reported by Information-Technology Promotion Agency, Japan
• Information systems are categorized into 5 levels according to characteristics.
• In our experience, almost all banking API systems belong to over Level 3.
7
© Hitachi, Ltd. 2019. All rights reserved.
Achieve Level 3
How to minimize MTTR ( < 8h ) and the recovery time per failure ( < 1 h ).
• Generally, to construct HA configuration and failover the system
when a failure has occurred.
• To configure the system to be recovered automatically.
-> Fault Tolerance
* This takes a high cost for preparing more resources than usual.
• To reduce dependencies of each component.
-> Fail Soft / Fault Avoidance
Level 3 Level 2
banking API system
highly
depends on
critical critical
Level 3 Level 2
banking API system
not
depends on
critical not critical
8
© Hitachi, Ltd. 2019. All rights reserved.
Requirements for Availability for banking API
# Category Description
1 Fault Tolerance • HA configuration
• Can be recovered automatically
2 Fail Soft/
Fault Avoidance
• Reduce dependencies of each component
© Hitachi, Ltd. 2019. All rights reserved.
Contents
9
1. Introduction: background and requirements
2. Usage of OSS to meet requirements
• Which OSS should be used?
• Security requirements
• Availability requirements
10
© Hitachi, Ltd. 2019. All rights reserved.
Open API system
API
Gateway
Legacy
Backend
REST API
Server
Applications
(Web App,
Mobile App)
Developer
Portal
API Management
Manager
App Developers
End Users
Bank
• API Management product is usually used for common functions to open APIs
• Rate limit, dev portal, analytics etc.
• It is desirable authentication/authorization are integrated into API management
Authentication/
Authorization
11
© Hitachi, Ltd. 2019. All rights reserved.
Open Source Software (OSS) for open API
• There are various OSSs
• We chose “3scale” and “Keycloak”
• Completeness of feature
• Activity and future of community
OSS
API Management 3scale WSO2
Kong tyk
Authentication/
Authorization
Keycloak OpenAM
Gluu
12
© Hitachi, Ltd. 2019. All rights reserved.
API Management
What is 3scale
API
Gateway
(APIcast)
Legacy
Backend
REST API
Server
Applications
(Web App,
Mobile App)
Developer
Portal(porta)
Manager
(porta)
App Developers
End Users
Authentication/
Authorization
Container Platform
• Include full functions of API management (not only API GW)
• Cloud native : Works on OpenShift or okd
• OAuth2, OIDC in combination with Keycloak
OSS for API Management, community is led by Red Hat: https://github.com/3scale
13
© Hitachi, Ltd. 2019. All rights reserved.
What is Keycloak
Identity Management
Authentication
Social Login
(Identity Brokering)
Identity Federation
OpenID Connect, OAuth 2.0, SAML
OSS for Identity Management, community is led by Red Hat: https://www.keycloak.org
LDAP
Active Directory
RDB
© Hitachi, Ltd. 2019. All rights reserved.
Contents
14
1. Introduction: background and requirements
2. Usage of OSS to meet requirements
• Which OSS should be used?
• Security requirements
• Availability requirements
15
© Hitachi, Ltd. 2019. All rights reserved.
<Recap> Requirements for Authentication/Authorization for banking API
# Category Description
1 Authentication • Can support various (customized) authentication in
OAuth flow
• Compliance to OpenID Connect on top of OAuth
2 Access control • Deny/Allow accesses based on claims in token
• Can be combined with rate limit to protect backend
3 Manage tokens • Revoke tokens triggered by users, administrators
• Revoke tokens based on policy
4 Compliance to the
latest standards
• Financial-grade API (FAPI) of OpenID Foundation
Implemented these requirements using 3scale + Keycloak,
collaborating with OSS community
16
© Hitachi, Ltd. 2019. All rights reserved.
Authentication : Registering Apps
Authentication within OAuth/OIDC flow works well, basically
Keycloak
Dev/Admin
portal
(system)
Developer/Administrator
(1) Generate client ID/secret
via Web console,
and register app
zync
MySQL
3scale
(2) Register client ID/secret
to manage from 3scale
(3) Sync client ID/secret to
Keycloak
* OAuth 2.0 Dynamic Client Registration Protocol (RFC 7591)
17
© Hitachi, Ltd. 2019. All rights reserved.
Authentication : Authentication / Issue token
(1) Redirect to login screen
User data
store
(2) Authenticates user using
user data storage
(3) Authorization code
(4) Token request with client secret
(5) Access token and ID token
Authentication within OAuth/OIDC flow works well, basically
e.g.) Authorization code grant
End user
Keycloak
Application
18
© Hitachi, Ltd. 2019. All rights reserved.
Authentication : Issues
1. PKCE (RFC 7636) is required to protect code
(1) Redirect to login screen
User data
store
(2) Authenticates user using
user data storage
(3) Authorization code
(4) Token request with client secret
(5) Access token and ID token
End user
Keycloak
Application
2. Login screen is generated by Keycloak.
However, it lacks high customizability.
19
© Hitachi, Ltd. 2019. All rights reserved.
PKCE support for Keycloak
• Keycloak did not support PKCE..
-> We submitted PR and merged.
https://github.com/keycloak/keycloak/pull/3831
• From Keycloak 3.1.0, PKCE was supported.
• Enabled by default (no switch)
• Only when PKCE is requested from a client, it works
• Included in OIDC server metadata from 4.0.0
20
© Hitachi, Ltd. 2019. All rights reserved.
Highly customized login screen
(1) Redirect to login screen
(2) Forward login
screen & result
(3) Authorization code
(4) Token request with client secret
(5) Access token and ID token
End user
Keycloak
Application
Login
Screen
AP server
1. Delegates login screen by using
Identity brokering feature
2. Login screen/logic can be coded
as customers like
Extra parameters could not be forwarded
Besides the template, login screen can be generated by delegated server
We submitted a patch to enable forward parameters from Keycloak.
https://github.com/keycloak/keycloak/pull/5163
21
© Hitachi, Ltd. 2019. All rights reserved.
Access Control
Keycloak only issues tokens. Access control is out of scope.
API
Gateway
(APIcast)
REST API
Server
Applications
(Web App,
Mobile App)
Access control has to be implemented in
APIcast or REST API server
APIcast did not support access control using tokens -> We submitted PRs.
API Request with
access token
More convenient, to reduce development in REST API server
22
© Hitachi, Ltd. 2019. All rights reserved.
How to access control using tokens
{
"jti": "c26a32c4-4b48-4c2f-a7da-3b9b8ecad652",
"exp": 1535424101,
"nbf": 0,
"iat": 1535423801,
"iss": "http://localhost:8080/auth/realms/provider",
"aud": "broker",
"sub": "e4b11e2e-9136-409b-8720-57463c627c10",
"typ": "Bearer",
"azp": "broker",
"auth_time": 0,
"session_state": "ac1767e2-2e30-4d44-b6f3-b77935a7a0bc",
"acr": "1",
"allowed-origins": [],
"realm_access": {
"roles": [
"read",
"additional",
"write"
]
},
"name": "Takashi Mogi",
"preferred_username": "mogi",
"given_name": "Takashi",
"family_name": "Mogi",
"email": "mogi@example.com"
}
• The format of access token is not
standardized neither RFC nor OIDC.
-> It depends on implementation.
• In Keycloak, the format is similar to
ID token of OIDC (JWT, claims).
-> We targeted the Keycloak access token,
and developed 2 policies(*).
(*) plugin to extend functions of APIcast
23
© Hitachi, Ltd. 2019. All rights reserved.
Keycloak Role Check policy
• Checks “role” claims of access token and URL.
• We submitted a patch and included from 3scale 2.3.
https://github.com/3scale/apicast/pull/773
{
"jti": "c26a32c4-4b48-4c2f-a7da-3b9b8ecad652",
"exp": 1535424101,
…
"allowed-origins": [],
"realm_access": {
"roles": [
"role1"
]
},
End User
Client
Application
Keycloak
APIcast API Backend
Resources:
/resource1
Role Check:
Require “role1” to access to “/resource1”
1.
Request
“role1”
4.
Issue
access
token
including
“role1”
5. “GET /resource1”
with access token
6. Allow to access
to “/resouce1”
Use
Access Token
24
© Hitachi, Ltd. 2019. All rights reserved.
Edge Limiting policy
Rate limiting: A kind of access control, to control the upper limit of traffics.
APIcast did not support STRICT rate limiting to protect backend.
-> We implemented patches and “Edge limiting policy” was included in 3scale 2.3.
API
Gateway
(APIcast)
REST API
Server
Applications
(Web App,
Mobile App)
API Request with
access token
Any values can be extracted as a key to control access
- header
- body parameter
- JWT claim
- etc.
https://github.com/3scale/apicast/pull/719
Protects backend by rate limit, types of limit:
- leaky bucket
- fixed window
- concurrent connections
https://github.com/3scale/apicast/pull/648
25
© Hitachi, Ltd. 2019. All rights reserved.
Keycloak itself has features to revoke tokens
• Revoke tokens triggered by administrator
-> Can be revoked from admin console
• Revoke tokens based on policy
-> Timeout can be configured in admin console
• Revoke tokens triggered by users
- Keycloak does not support OAuth 2.0 Token Revocation (RFC 7009)
- Instead, logout endpoint(*) is used.
(*) /auth/realms/<realm>/protocol/openid-connect/logout
Related access tokens, ID tokens, refresh tokens are revoked.
Manage tokens
26
© Hitachi, Ltd. 2019. All rights reserved.
Manage tokens : Issue
1) API Request
with token
2) Token Introspection
(Check token is alive)
API
Gateway
(APIcast)
Applications
(Web App,
Mobile App)
Keycloak
• Only authorization server knows that tokens are revoked…
API gateways couldn’t deny API requests even if tokens were revoked.
• API gateways MUST ask the authorization server whether tokens were revoked.
-> token introspection (RFC 7662)
27
© Hitachi, Ltd. 2019. All rights reserved.
Token Introspection policy
• We implemented patches and “Token Introspection policy” was included in 3scale 2.3.
https://github.com/3scale/APIcast/pull/619
• This policy can cache the result of token introspection
for reducing performance impact
https://github.com/3scale/APIcast/pull/656
1) API Request
with token
2) Token Introspection
(Check token is alive)
API
Gateway
(APIcast)
Applications
(Web App,
Mobile App)
Keycloak
28
© Hitachi, Ltd. 2019. All rights reserved.
How API is called in 3scale 2.3 + Keycloak
1) API Request
with token
2) Token Introspection
(Token Introspection policy)
3scale API
Gateway
(APIcast)
REST API
Server
Applications
(Web App,
Mobile App)
Keycloak
3) Access control
(Role Check policy, Edge Limiting policy)
4) Extract necessary information from
access token and set header
(Header policy)
5) API Request with necessary
information in header
29
© Hitachi, Ltd. 2019. All rights reserved.
Compliance to the latest standard: FAPI
OAuth
OpenID
Connect
(OIDC)
Spec to exchange access token(authorization info).
A lots are left to implementers,
insecure usage can easily happen.
In addition to OAuth,
ID token (authentication info) can be included.
Usage of OAuth is a bit hardened.
FAPI
FAPI (Financial-Grade API) is being standardized in OpenID Foundation.
Part1 (Read Only), Part2 (Read Write), JARM, CIBA
Secure usage of OAuth and OIDC
is standardized.
30
© Hitachi, Ltd. 2019. All rights reserved.
FAPI in Japan
• FAPI is still implementer’s draft as of today
• However, being strongly promoted in banking industry
Quoted from “Report of Review Committee on Open APIs: Promoting Open Innovation”, Japanese Bankers Association
https://www.zenginkyo.or.jp/fileadmin/res/news/news290713_3.pdf
• We have to prepare for FAPI in advance, because can not implement soon.
31
© Hitachi, Ltd. 2019. All rights reserved.
Issues toward FAPI in Keycloak
JIRA Description Pull
Request
Included
version
KEYCLOAK-2604 RFC 7636(PKCE) support 3831 3.1.0
KEYCLOAK-5661 shall return the list of allowed scopes with the
issued access token
4527 3.4.0
KEYCLOAK-5811 Client authentication client_secret_jwt 4835 4.0.0
KEYCLOAK-6700 Support of s_hash 5022 4.0.0
KEYCLOAK-6768 Support of Encrypted ID token 5779 Not yet
KEYCLOAK-6770 Signature algorithm (PS256 or ES256) support 5533 4.5.0
KEYCLOAK-8460 Signature algorithm (PS256 or ES256) support
(for request object)
5603 4.7.0
KEYCLOAK-6771 Support for holder of key mechanism 5083 4.0.0
Investigated implementation of Keycloak, and reported issues.
We were developing patches with community, major parts were resolved.
Our colleague @tnorimat is mainly working.
© Hitachi, Ltd. 2019. All rights reserved.
Contents
32
1. Introduction: background and requirements
2. Usage of OSS to meet requirements
• Which OSS should be used?
• Security requirements
• Availability requirements
33
© Hitachi, Ltd. 2019. All rights reserved.
<Recap> Requirements for Availability for banking API
# Category Description
1 Fault Tolerance • HA configuration
• Can recover automatically
2 Fail Soft/
Fault Avoidance
• Reduce dependencies of each component
Implemented these requirements using 3scale,
collaborating with OSS community
34
© Hitachi, Ltd. 2019. All rights reserved.
API Management
HA configuration / Automatic recovery
API
Gateway
(APIcast)
Legacy
Backend
REST API
Server
Applications
(Web App,
Mobile App)
Developer
Portal(porta)
Manager
(porta)
App Developers
End Users
Authentication/
Authorization
Container Platform
OpenShift provides:
• Automatic recovery/Automatic rerouting -> Automatic recovery
• Flexible scaling -> HA configuration
35
© Hitachi, Ltd. 2019. All rights reserved.
Reduce dependencies of each component
apicast-
[staging|production]
system-[master|provider]
/ system-developer
system-redis
system-mysql
system-memcache
system-sidekiq
system-sphinx
backend-redis
backend-cron
backend-worker
backend-listener
zync-database
zync
Keycloak
Client Application API Backend
API Gateway
Authentication / Analytics
Portals
Data sync
External components
36
© Hitachi, Ltd. 2019. All rights reserved.
Reduce dependencies of each component
apicast-
[staging|production]
system-[master|provider]
/ system-developer
system-redis
system-mysql
system-memcache
system-sidekiq
system-sphinx
backend-redis
backend-cron
backend-worker
backend-listener
zync-database
zync
Keycloak
Client Application API Backend
API Gateway
Authentication / Analytics
Portals
Data sync
External components
Level 3
37
© Hitachi, Ltd. 2019. All rights reserved.
Reduce dependencies of each component
apicast-
[staging|production]
system-[master|provider]
/ system-developer
system-redis
system-mysql
system-memcache
system-sidekiq
system-sphinx
backend-redis
backend-cron
backend-worker
backend-listener
zync-database
zync
Keycloak
Client Application API Backend
Mission Critical components
Non-critical components
External components
Execute jobs
Enqueue jobs
38
© Hitachi, Ltd. 2019. All rights reserved.
Reduce dependency (APIcast to Backend)
apicast-
[staging|production]
backend-listener
Authenticate &
Report traffics
when backend-listener is down
We have to consider:
1. how to authenticate API requests
2. how to report traffics
39
© Hitachi, Ltd. 2019. All rights reserved.
Reduce dependency (APIcast to Backend)
apicast-
[staging|production]
backend-listener
Authenticate &
Report traffics
We have to consider:
1. how to authenticate API requests
👉 cache the result of authentication and authenticate using cache
-> cannot authenticate newcomers and results to opportunity loss
👉 allow newcomers without cache authentication and with
alternative authentications
2. how to report traffics
👉 cache traffics and report them all together when backend-listener
comes back
Caching policy
Batcher policy
Keycloak Role Check policy, Edge Limiting policy, Token Introspection policy
40
© Hitachi, Ltd. 2019. All rights reserved.
How API is called in 3scale 2.3
1) API Request
with token
2) Token Introspection
(Token Introspection policy)
3scale API
Gateway
(APIcast)
REST API
Server
Applications
(Web App,
Mobile App)
Keycloak
3) Access control
(Role Check policy, Edge Limiting policy)
4) Extract necessary information
from access token and set header
(Header policy)
6) API Request with necessary
information in header
5) Reduce dependencies
(Caching policy, Batcher policy)
3scale
Backend
41
© Hitachi, Ltd. 2019. All rights reserved.
Summary
• OAuth is recognized as a key technology for banking API systems
• Requirements to be considered around OAuth
• Authentication, Access control, Token management,
Latest standard (OIDC, FAPI)
• Requirements to be considered around Availability
• HA configuration, Dependencies
• Applied OSS (3scale + Keycloak) to achieve them
• Improved with OSS community
• 3scale: enhanced rate limit, access control
• Keycloak: Features required for FAPI
-> Improvements are included in the latest version
• Let’s work with OSS community ! 3scale and Keycloak are great community.
42
© Hitachi, Ltd. 2019. All rights reserved.
Trademarks
• Red Hat is a trademark or registered trademark of Red Hat, Inc. in the United States and other
countries.
• OpenShift is a trademark or registered trademark of Red Hat, Inc. in the United States and other
countries.
• WSO2 is a trademark or registered trademark of WSO2 in the United States and other countries.
• OpenID is a trademark or registered trademark of OpenID Foundation in the United States and other
countries.
• GitHub is a trademark or registered trademark of GitHub, Inc. in the United States and other
countries.
• Twitter is a trademark or registered trademark of Twitter, Inc. in the United States and other countries.
• Facebook is a trademark or registered trademark of Facebook, Inc. in the United States and other
countries.
• Other brand names and product names used in this material are trademarks, registered trademarks,
or trade names of their respective holders.
Implementing security and availability requirements for banking API system using Open Source Software (OSS)

More Related Content

What's hot

Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and Linkerd
Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and LinkerdService Mesh with Apache Kafka, Kubernetes, Envoy, Istio and Linkerd
Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and Linkerd
Kai Wähner
 
SIngle Sign On with Keycloak
SIngle Sign On with KeycloakSIngle Sign On with Keycloak
SIngle Sign On with Keycloak
Julien Pivotto
 
Apigee Products Overview
Apigee Products OverviewApigee Products Overview
Apigee Products Overview
Apigee | Google Cloud
 
Hashicorp Vault ppt
Hashicorp Vault pptHashicorp Vault ppt
Hashicorp Vault ppt
Shrey Agarwal
 
Designing a complete ci cd pipeline using argo events, workflow and cd products
Designing a complete ci cd pipeline using argo events, workflow and cd productsDesigning a complete ci cd pipeline using argo events, workflow and cd products
Designing a complete ci cd pipeline using argo events, workflow and cd products
Julian Mazzitelli
 
Secure your app with keycloak
Secure your app with keycloakSecure your app with keycloak
Secure your app with keycloak
Guy Marom
 
API Gateway How-To: The Many Ways to Apply the Gateway Pattern
API Gateway How-To: The Many Ways to Apply the Gateway PatternAPI Gateway How-To: The Many Ways to Apply the Gateway Pattern
API Gateway How-To: The Many Ways to Apply the Gateway Pattern
VMware Tanzu
 
Integrating Apache Kafka Into Your Environment
Integrating Apache Kafka Into Your EnvironmentIntegrating Apache Kafka Into Your Environment
Integrating Apache Kafka Into Your Environment
confluent
 
Secure Spring Boot Microservices with Keycloak
Secure Spring Boot Microservices with KeycloakSecure Spring Boot Microservices with Keycloak
Secure Spring Boot Microservices with Keycloak
Red Hat Developers
 
Spring Boot on Amazon Web Services with Spring Cloud AWS
Spring Boot on Amazon Web Services with Spring Cloud AWSSpring Boot on Amazon Web Services with Spring Cloud AWS
Spring Boot on Amazon Web Services with Spring Cloud AWS
VMware Tanzu
 
Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?
confluent
 
Secret Management with Hashicorp’s Vault
Secret Management with Hashicorp’s VaultSecret Management with Hashicorp’s Vault
Secret Management with Hashicorp’s Vault
AWS Germany
 
GitOps with ArgoCD
GitOps with ArgoCDGitOps with ArgoCD
GitOps with ArgoCD
CloudOps2005
 
How Apache Kafka® Works
How Apache Kafka® WorksHow Apache Kafka® Works
How Apache Kafka® Works
confluent
 
“How to Secure Your Applications With a Keycloak?
“How to Secure Your Applications With a Keycloak?“How to Secure Your Applications With a Keycloak?
“How to Secure Your Applications With a Keycloak?
GlobalLogic Ukraine
 
Microservices, DevOps & SRE
Microservices, DevOps & SREMicroservices, DevOps & SRE
Microservices, DevOps & SRE
Araf Karsh Hamid
 
Financial Grade OAuth & OpenID Connect
Financial Grade OAuth & OpenID ConnectFinancial Grade OAuth & OpenID Connect
Financial Grade OAuth & OpenID Connect
Nat Sakimura
 
Scaling Push Messaging for Millions of Netflix Devices
Scaling Push Messaging for Millions of Netflix DevicesScaling Push Messaging for Millions of Netflix Devices
Scaling Push Messaging for Millions of Netflix Devices
Susheel Aroskar
 
Secret Management with Hashicorp Vault and Consul on Kubernetes
Secret Management with Hashicorp Vault and Consul on KubernetesSecret Management with Hashicorp Vault and Consul on Kubernetes
Secret Management with Hashicorp Vault and Consul on Kubernetes
An Nguyen
 
Service Mesh - Observability
Service Mesh - ObservabilityService Mesh - Observability
Service Mesh - Observability
Araf Karsh Hamid
 

What's hot (20)

Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and Linkerd
Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and LinkerdService Mesh with Apache Kafka, Kubernetes, Envoy, Istio and Linkerd
Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and Linkerd
 
SIngle Sign On with Keycloak
SIngle Sign On with KeycloakSIngle Sign On with Keycloak
SIngle Sign On with Keycloak
 
Apigee Products Overview
Apigee Products OverviewApigee Products Overview
Apigee Products Overview
 
Hashicorp Vault ppt
Hashicorp Vault pptHashicorp Vault ppt
Hashicorp Vault ppt
 
Designing a complete ci cd pipeline using argo events, workflow and cd products
Designing a complete ci cd pipeline using argo events, workflow and cd productsDesigning a complete ci cd pipeline using argo events, workflow and cd products
Designing a complete ci cd pipeline using argo events, workflow and cd products
 
Secure your app with keycloak
Secure your app with keycloakSecure your app with keycloak
Secure your app with keycloak
 
API Gateway How-To: The Many Ways to Apply the Gateway Pattern
API Gateway How-To: The Many Ways to Apply the Gateway PatternAPI Gateway How-To: The Many Ways to Apply the Gateway Pattern
API Gateway How-To: The Many Ways to Apply the Gateway Pattern
 
Integrating Apache Kafka Into Your Environment
Integrating Apache Kafka Into Your EnvironmentIntegrating Apache Kafka Into Your Environment
Integrating Apache Kafka Into Your Environment
 
Secure Spring Boot Microservices with Keycloak
Secure Spring Boot Microservices with KeycloakSecure Spring Boot Microservices with Keycloak
Secure Spring Boot Microservices with Keycloak
 
Spring Boot on Amazon Web Services with Spring Cloud AWS
Spring Boot on Amazon Web Services with Spring Cloud AWSSpring Boot on Amazon Web Services with Spring Cloud AWS
Spring Boot on Amazon Web Services with Spring Cloud AWS
 
Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?
 
Secret Management with Hashicorp’s Vault
Secret Management with Hashicorp’s VaultSecret Management with Hashicorp’s Vault
Secret Management with Hashicorp’s Vault
 
GitOps with ArgoCD
GitOps with ArgoCDGitOps with ArgoCD
GitOps with ArgoCD
 
How Apache Kafka® Works
How Apache Kafka® WorksHow Apache Kafka® Works
How Apache Kafka® Works
 
“How to Secure Your Applications With a Keycloak?
“How to Secure Your Applications With a Keycloak?“How to Secure Your Applications With a Keycloak?
“How to Secure Your Applications With a Keycloak?
 
Microservices, DevOps & SRE
Microservices, DevOps & SREMicroservices, DevOps & SRE
Microservices, DevOps & SRE
 
Financial Grade OAuth & OpenID Connect
Financial Grade OAuth & OpenID ConnectFinancial Grade OAuth & OpenID Connect
Financial Grade OAuth & OpenID Connect
 
Scaling Push Messaging for Millions of Netflix Devices
Scaling Push Messaging for Millions of Netflix DevicesScaling Push Messaging for Millions of Netflix Devices
Scaling Push Messaging for Millions of Netflix Devices
 
Secret Management with Hashicorp Vault and Consul on Kubernetes
Secret Management with Hashicorp Vault and Consul on KubernetesSecret Management with Hashicorp Vault and Consul on Kubernetes
Secret Management with Hashicorp Vault and Consul on Kubernetes
 
Service Mesh - Observability
Service Mesh - ObservabilityService Mesh - Observability
Service Mesh - Observability
 

Similar to Implementing security and availability requirements for banking API system using Open Source Software (OSS)

apidays LIVE LONDON - Toward certifying Financial-grade API profile with Keyc...
apidays LIVE LONDON - Toward certifying Financial-grade API profile with Keyc...apidays LIVE LONDON - Toward certifying Financial-grade API profile with Keyc...
apidays LIVE LONDON - Toward certifying Financial-grade API profile with Keyc...
apidays
 
APIdays London 2020: Toward certifying Financial-grade API security profile w...
APIdays London 2020: Toward certifying Financial-grade API security profile w...APIdays London 2020: Toward certifying Financial-grade API security profile w...
APIdays London 2020: Toward certifying Financial-grade API security profile w...
Hitachi, Ltd. OSS Solution Center.
 
KubeConRecap_nakamura.pdf
KubeConRecap_nakamura.pdfKubeConRecap_nakamura.pdf
KubeConRecap_nakamura.pdf
Hitachi, Ltd. OSS Solution Center.
 
APIdays Paris 2019 : Financial-grade API (FAPI) Security Profile
APIdays Paris 2019 : Financial-grade API (FAPI) Security ProfileAPIdays Paris 2019 : Financial-grade API (FAPI) Security Profile
APIdays Paris 2019 : Financial-grade API (FAPI) Security Profile
Hitachi, Ltd. OSS Solution Center.
 
APIdays Paris 2019 - What are protected and secured by security requirements ...
APIdays Paris 2019 - What are protected and secured by security requirements ...APIdays Paris 2019 - What are protected and secured by security requirements ...
APIdays Paris 2019 - What are protected and secured by security requirements ...
apidays
 
apidays Paris 2022 - Securing APIs in Open Banking, Takashi Norimatsu, Hitachi
apidays Paris 2022 - Securing APIs in Open Banking, Takashi Norimatsu, Hitachiapidays Paris 2022 - Securing APIs in Open Banking, Takashi Norimatsu, Hitachi
apidays Paris 2022 - Securing APIs in Open Banking, Takashi Norimatsu, Hitachi
apidays
 
Guide of authentication and authorization for cloud native applications with ...
Guide of authentication and authorization for cloud native applications with ...Guide of authentication and authorization for cloud native applications with ...
Guide of authentication and authorization for cloud native applications with ...
Hitachi, Ltd. OSS Solution Center.
 
MuleSoft Meetup Charlotte 2019
MuleSoft Meetup Charlotte  2019MuleSoft Meetup Charlotte  2019
MuleSoft Meetup Charlotte 2019
Subhash Patel
 
What API Specifications and Tools Help Engineers to Construct a High-Security...
What API Specifications and Tools Help Engineers to Construct a High-Security...What API Specifications and Tools Help Engineers to Construct a High-Security...
What API Specifications and Tools Help Engineers to Construct a High-Security...
Hitachi, Ltd. OSS Solution Center.
 
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
 
2022 APIsecure_Why Assertion-based Access Token is preferred to Handle-based ...
2022 APIsecure_Why Assertion-based Access Token is preferred to Handle-based ...2022 APIsecure_Why Assertion-based Access Token is preferred to Handle-based ...
2022 APIsecure_Why Assertion-based Access Token is preferred to Handle-based ...
APIsecure_ Official
 
Why Assertion-based Access Token is preferred to Handle-based one?
Why Assertion-based Access Token is preferred to Handle-based one?Why Assertion-based Access Token is preferred to Handle-based one?
Why Assertion-based Access Token is preferred to Handle-based one?
Hitachi, Ltd. OSS Solution Center.
 
Hitachi ID Suite 9.0 Features and Technology
Hitachi ID Suite 9.0 Features and TechnologyHitachi ID Suite 9.0 Features and Technology
Hitachi ID Suite 9.0 Features and Technology
Hitachi ID Systems, Inc.
 
WEB API Gateway
WEB API GatewayWEB API Gateway
WEB API Gateway
Kumaresh Chandra Baruri
 
Securing Microservices in Hybrid Cloud
Securing Microservices in Hybrid CloudSecuring Microservices in Hybrid Cloud
Securing Microservices in Hybrid Cloud
VMware Tanzu
 
APIConnect Security Best Practice
APIConnect Security Best PracticeAPIConnect Security Best Practice
APIConnect Security Best Practice
Shiu-Fun Poon
 
The Whys and Hows of Deploying a Secure RPA Solution
The Whys and Hows of Deploying a Secure RPA SolutionThe Whys and Hows of Deploying a Secure RPA Solution
The Whys and Hows of Deploying a Secure RPA Solution
Option3
 
Standard Based API Security, Access Control and AI Based Attack - API Days Pa...
Standard Based API Security, Access Control and AI Based Attack - API Days Pa...Standard Based API Security, Access Control and AI Based Attack - API Days Pa...
Standard Based API Security, Access Control and AI Based Attack - API Days Pa...
Ping Identity
 
What’s New With WSO2 Open Banking?
What’s New With WSO2 Open Banking?What’s New With WSO2 Open Banking?
What’s New With WSO2 Open Banking?
WSO2
 
IBM API Connect Deployment `Good Practices - IBM Think 2018
IBM API Connect Deployment `Good Practices - IBM Think 2018IBM API Connect Deployment `Good Practices - IBM Think 2018
IBM API Connect Deployment `Good Practices - IBM Think 2018
Chris Phillips
 

Similar to Implementing security and availability requirements for banking API system using Open Source Software (OSS) (20)

apidays LIVE LONDON - Toward certifying Financial-grade API profile with Keyc...
apidays LIVE LONDON - Toward certifying Financial-grade API profile with Keyc...apidays LIVE LONDON - Toward certifying Financial-grade API profile with Keyc...
apidays LIVE LONDON - Toward certifying Financial-grade API profile with Keyc...
 
APIdays London 2020: Toward certifying Financial-grade API security profile w...
APIdays London 2020: Toward certifying Financial-grade API security profile w...APIdays London 2020: Toward certifying Financial-grade API security profile w...
APIdays London 2020: Toward certifying Financial-grade API security profile w...
 
KubeConRecap_nakamura.pdf
KubeConRecap_nakamura.pdfKubeConRecap_nakamura.pdf
KubeConRecap_nakamura.pdf
 
APIdays Paris 2019 : Financial-grade API (FAPI) Security Profile
APIdays Paris 2019 : Financial-grade API (FAPI) Security ProfileAPIdays Paris 2019 : Financial-grade API (FAPI) Security Profile
APIdays Paris 2019 : Financial-grade API (FAPI) Security Profile
 
APIdays Paris 2019 - What are protected and secured by security requirements ...
APIdays Paris 2019 - What are protected and secured by security requirements ...APIdays Paris 2019 - What are protected and secured by security requirements ...
APIdays Paris 2019 - What are protected and secured by security requirements ...
 
apidays Paris 2022 - Securing APIs in Open Banking, Takashi Norimatsu, Hitachi
apidays Paris 2022 - Securing APIs in Open Banking, Takashi Norimatsu, Hitachiapidays Paris 2022 - Securing APIs in Open Banking, Takashi Norimatsu, Hitachi
apidays Paris 2022 - Securing APIs in Open Banking, Takashi Norimatsu, Hitachi
 
Guide of authentication and authorization for cloud native applications with ...
Guide of authentication and authorization for cloud native applications with ...Guide of authentication and authorization for cloud native applications with ...
Guide of authentication and authorization for cloud native applications with ...
 
MuleSoft Meetup Charlotte 2019
MuleSoft Meetup Charlotte  2019MuleSoft Meetup Charlotte  2019
MuleSoft Meetup Charlotte 2019
 
What API Specifications and Tools Help Engineers to Construct a High-Security...
What API Specifications and Tools Help Engineers to Construct a High-Security...What API Specifications and Tools Help Engineers to Construct a High-Security...
What API Specifications and Tools Help Engineers to Construct a High-Security...
 
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
 
2022 APIsecure_Why Assertion-based Access Token is preferred to Handle-based ...
2022 APIsecure_Why Assertion-based Access Token is preferred to Handle-based ...2022 APIsecure_Why Assertion-based Access Token is preferred to Handle-based ...
2022 APIsecure_Why Assertion-based Access Token is preferred to Handle-based ...
 
Why Assertion-based Access Token is preferred to Handle-based one?
Why Assertion-based Access Token is preferred to Handle-based one?Why Assertion-based Access Token is preferred to Handle-based one?
Why Assertion-based Access Token is preferred to Handle-based one?
 
Hitachi ID Suite 9.0 Features and Technology
Hitachi ID Suite 9.0 Features and TechnologyHitachi ID Suite 9.0 Features and Technology
Hitachi ID Suite 9.0 Features and Technology
 
WEB API Gateway
WEB API GatewayWEB API Gateway
WEB API Gateway
 
Securing Microservices in Hybrid Cloud
Securing Microservices in Hybrid CloudSecuring Microservices in Hybrid Cloud
Securing Microservices in Hybrid Cloud
 
APIConnect Security Best Practice
APIConnect Security Best PracticeAPIConnect Security Best Practice
APIConnect Security Best Practice
 
The Whys and Hows of Deploying a Secure RPA Solution
The Whys and Hows of Deploying a Secure RPA SolutionThe Whys and Hows of Deploying a Secure RPA Solution
The Whys and Hows of Deploying a Secure RPA Solution
 
Standard Based API Security, Access Control and AI Based Attack - API Days Pa...
Standard Based API Security, Access Control and AI Based Attack - API Days Pa...Standard Based API Security, Access Control and AI Based Attack - API Days Pa...
Standard Based API Security, Access Control and AI Based Attack - API Days Pa...
 
What’s New With WSO2 Open Banking?
What’s New With WSO2 Open Banking?What’s New With WSO2 Open Banking?
What’s New With WSO2 Open Banking?
 
IBM API Connect Deployment `Good Practices - IBM Think 2018
IBM API Connect Deployment `Good Practices - IBM Think 2018IBM API Connect Deployment `Good Practices - IBM Think 2018
IBM API Connect Deployment `Good Practices - IBM Think 2018
 

More from Hitachi, Ltd. OSS Solution Center.

Authentication and Authorization of The Latest Keycloak
Authentication and Authorization of The Latest KeycloakAuthentication and Authorization of The Latest Keycloak
Authentication and Authorization of The Latest Keycloak
Hitachi, Ltd. OSS Solution Center.
 
KeycloakのCNCF incubating project入りまでのアップストリーム活動の歩み
KeycloakのCNCF incubating project入りまでのアップストリーム活動の歩みKeycloakのCNCF incubating project入りまでのアップストリーム活動の歩み
KeycloakのCNCF incubating project入りまでのアップストリーム活動の歩み
Hitachi, Ltd. OSS Solution Center.
 
KubeCon NA 2023 Recap: Challenge to Implementing “Scalable” Authorization wit...
KubeCon NA 2023 Recap: Challenge to Implementing “Scalable” Authorization wit...KubeCon NA 2023 Recap: Challenge to Implementing “Scalable” Authorization wit...
KubeCon NA 2023 Recap: Challenge to Implementing “Scalable” Authorization wit...
Hitachi, Ltd. OSS Solution Center.
 
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
Hitachi, Ltd. OSS Solution Center.
 
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Hitachi, Ltd. OSS Solution Center.
 
Challenge to Implementing "Scalable" Authorization with Keycloak
Challenge to Implementing "Scalable" Authorization with KeycloakChallenge to Implementing "Scalable" Authorization with Keycloak
Challenge to Implementing "Scalable" Authorization with Keycloak
Hitachi, Ltd. OSS Solution Center.
 
NGINXでの認可について考える
NGINXでの認可について考えるNGINXでの認可について考える
NGINXでの認可について考える
Hitachi, Ltd. OSS Solution Center.
 
Security Considerations for API Gateway Aggregation
Security Considerations for API Gateway AggregationSecurity Considerations for API Gateway Aggregation
Security Considerations for API Gateway Aggregation
Hitachi, Ltd. OSS Solution Center.
 
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開するKeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
Hitachi, Ltd. OSS Solution Center.
 
IDガバナンス&管理の基礎
IDガバナンス&管理の基礎IDガバナンス&管理の基礎
IDガバナンス&管理の基礎
Hitachi, Ltd. OSS Solution Center.
 
Keycloakのステップアップ認証について
Keycloakのステップアップ認証についてKeycloakのステップアップ認証について
Keycloakのステップアップ認証について
Hitachi, Ltd. OSS Solution Center.
 
NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話
Hitachi, Ltd. OSS Solution Center.
 
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門するKeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
Hitachi, Ltd. OSS Solution Center.
 
Overall pictures of Identity provider mix-up attack patterns and trade-offs b...
Overall pictures of Identity provider mix-up attack patterns and trade-offs b...Overall pictures of Identity provider mix-up attack patterns and trade-offs b...
Overall pictures of Identity provider mix-up attack patterns and trade-offs b...
Hitachi, Ltd. OSS Solution Center.
 
Apache con@home 2021_sha
Apache con@home 2021_shaApache con@home 2021_sha
Apache con@home 2021_sha
Hitachi, Ltd. OSS Solution Center.
 
Node-RED Installer, Standalone Installer using Electron
Node-RED Installer, Standalone Installer using ElectronNode-RED Installer, Standalone Installer using Electron
Node-RED Installer, Standalone Installer using Electron
Hitachi, Ltd. OSS Solution Center.
 
Hacktoberfest 概要、Node-REDプロジェクト貢献手順
Hacktoberfest 概要、Node-REDプロジェクト貢献手順Hacktoberfest 概要、Node-REDプロジェクト貢献手順
Hacktoberfest 概要、Node-REDプロジェクト貢献手順
Hitachi, Ltd. OSS Solution Center.
 
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
Hitachi, Ltd. OSS Solution Center.
 
Node-RED v2.0新機能紹介
Node-RED v2.0新機能紹介Node-RED v2.0新機能紹介
Node-RED v2.0新機能紹介
Hitachi, Ltd. OSS Solution Center.
 
Node-REDからREST APIに接続
Node-REDからREST APIに接続Node-REDからREST APIに接続
Node-REDからREST APIに接続
Hitachi, Ltd. OSS Solution Center.
 

More from Hitachi, Ltd. OSS Solution Center. (20)

Authentication and Authorization of The Latest Keycloak
Authentication and Authorization of The Latest KeycloakAuthentication and Authorization of The Latest Keycloak
Authentication and Authorization of The Latest Keycloak
 
KeycloakのCNCF incubating project入りまでのアップストリーム活動の歩み
KeycloakのCNCF incubating project入りまでのアップストリーム活動の歩みKeycloakのCNCF incubating project入りまでのアップストリーム活動の歩み
KeycloakのCNCF incubating project入りまでのアップストリーム活動の歩み
 
KubeCon NA 2023 Recap: Challenge to Implementing “Scalable” Authorization wit...
KubeCon NA 2023 Recap: Challenge to Implementing “Scalable” Authorization wit...KubeCon NA 2023 Recap: Challenge to Implementing “Scalable” Authorization wit...
KubeCon NA 2023 Recap: Challenge to Implementing “Scalable” Authorization wit...
 
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
 
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
 
Challenge to Implementing "Scalable" Authorization with Keycloak
Challenge to Implementing "Scalable" Authorization with KeycloakChallenge to Implementing "Scalable" Authorization with Keycloak
Challenge to Implementing "Scalable" Authorization with Keycloak
 
NGINXでの認可について考える
NGINXでの認可について考えるNGINXでの認可について考える
NGINXでの認可について考える
 
Security Considerations for API Gateway Aggregation
Security Considerations for API Gateway AggregationSecurity Considerations for API Gateway Aggregation
Security Considerations for API Gateway Aggregation
 
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開するKeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
 
IDガバナンス&管理の基礎
IDガバナンス&管理の基礎IDガバナンス&管理の基礎
IDガバナンス&管理の基礎
 
Keycloakのステップアップ認証について
Keycloakのステップアップ認証についてKeycloakのステップアップ認証について
Keycloakのステップアップ認証について
 
NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話
 
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門するKeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
 
Overall pictures of Identity provider mix-up attack patterns and trade-offs b...
Overall pictures of Identity provider mix-up attack patterns and trade-offs b...Overall pictures of Identity provider mix-up attack patterns and trade-offs b...
Overall pictures of Identity provider mix-up attack patterns and trade-offs b...
 
Apache con@home 2021_sha
Apache con@home 2021_shaApache con@home 2021_sha
Apache con@home 2021_sha
 
Node-RED Installer, Standalone Installer using Electron
Node-RED Installer, Standalone Installer using ElectronNode-RED Installer, Standalone Installer using Electron
Node-RED Installer, Standalone Installer using Electron
 
Hacktoberfest 概要、Node-REDプロジェクト貢献手順
Hacktoberfest 概要、Node-REDプロジェクト貢献手順Hacktoberfest 概要、Node-REDプロジェクト貢献手順
Hacktoberfest 概要、Node-REDプロジェクト貢献手順
 
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
 
Node-RED v2.0新機能紹介
Node-RED v2.0新機能紹介Node-RED v2.0新機能紹介
Node-RED v2.0新機能紹介
 
Node-REDからREST APIに接続
Node-REDからREST APIに接続Node-REDからREST APIに接続
Node-REDからREST APIに接続
 

Recently uploaded

How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 

Recently uploaded (20)

How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 

Implementing security and availability requirements for banking API system using Open Source Software (OSS)

  • 1. © Hitachi, Ltd. 2019. All rights reserved. Implementing security and availability requirements for banking API system using Open Source Software (OSS) Open Source Summit Japan 2019 Hitachi, Ltd. OSS Solution Center Yoshiyuki Tabata
  • 2. 1 © Hitachi, Ltd. 2019. All rights reserved. Self introduction Yoshiyuki Tabata : OSS Solution Center, Hitachi, Ltd. @ Yokohama, Japan • Software engineer • API Management & Identity Management • 3scale, Keycloak • Contributor of 3scale • Developed “Edge Limiting policy”, “Keycloak Role Check policy”
  • 3. © Hitachi, Ltd. 2019. All rights reserved. Contents 2 1. Introduction: background and requirements 2. Usage of OSS to meet requirements
  • 4. 3 © Hitachi, Ltd. 2019. All rights reserved. Background: Banking API and its security in Japan • The revised banking act was published in Jun 2017 to promote API. • Similar to PSD2 in EU • 83% of banks (114 banks) answered they will open API by 2020/6(*). (*) Based on survey of Japanese Bankers Association as of Dec 2017 • Security : OAuth 2.0 is recognized as a key technology to secure API Quoted from Report about open API by the Japanese Bankers Association https://www.zenginkyo.or.jp/fileadmin/res/news/news290713_3.pdf
  • 5. 4 © Hitachi, Ltd. 2019. All rights reserved. Usage of OAuth 2.0: Authentication, Authorization End users Applications API Server 3. Who is allowed what? -> Access control (Authorization) Uses Apps via browsers or mobile devices Call REST API Access token * OAuth 2.0 (RFC 6749) only describes how tokens are issued. We have to use other standards or create something outside of standards. 1. Who is using API? -> User authentication 2. What is using API? -> Client authentication OAuth 2.0
  • 6. 5 © Hitachi, Ltd. 2019. All rights reserved. Requirements for Authentication/Authorization for banking API # Category Description 1 Authentication • Can support various (customized) authentication in OAuth flow • Compliance to OpenID Connect on top of OAuth 2 Access control • Deny/Allow accesses based on claims in token • Can be combined with rate limit to protect backend 3 Manage tokens • Revoke tokens triggered by users, administrators • Revoke tokens based on policy 4 Compliance to the latest standards • Financial-grade API (FAPI) of OpenID Foundation
  • 7. 6 © Hitachi, Ltd. 2019. All rights reserved. Background: Banking API and its availability Level 5 4 3 2 Operating Rate > 99.999% > 99.99% > 99.9% > 99% Total recovery time per year (MTTR) < 5.26 min < 52.6 min < 8.76 h < 87.6 h Recovery time per failure < 1 min < 10 min < 1 h < 2 h Banking API System Infrastructure Non-Functional Requirements Related Grade Table • Non-Functional Requirements 2018(*) was published in Apr 2018 to construct appropriate information systems, and enable stable provision of services. (*) Reported by Information-Technology Promotion Agency, Japan • Information systems are categorized into 5 levels according to characteristics. • In our experience, almost all banking API systems belong to over Level 3.
  • 8. 7 © Hitachi, Ltd. 2019. All rights reserved. Achieve Level 3 How to minimize MTTR ( < 8h ) and the recovery time per failure ( < 1 h ). • Generally, to construct HA configuration and failover the system when a failure has occurred. • To configure the system to be recovered automatically. -> Fault Tolerance * This takes a high cost for preparing more resources than usual. • To reduce dependencies of each component. -> Fail Soft / Fault Avoidance Level 3 Level 2 banking API system highly depends on critical critical Level 3 Level 2 banking API system not depends on critical not critical
  • 9. 8 © Hitachi, Ltd. 2019. All rights reserved. Requirements for Availability for banking API # Category Description 1 Fault Tolerance • HA configuration • Can be recovered automatically 2 Fail Soft/ Fault Avoidance • Reduce dependencies of each component
  • 10. © Hitachi, Ltd. 2019. All rights reserved. Contents 9 1. Introduction: background and requirements 2. Usage of OSS to meet requirements • Which OSS should be used? • Security requirements • Availability requirements
  • 11. 10 © Hitachi, Ltd. 2019. All rights reserved. Open API system API Gateway Legacy Backend REST API Server Applications (Web App, Mobile App) Developer Portal API Management Manager App Developers End Users Bank • API Management product is usually used for common functions to open APIs • Rate limit, dev portal, analytics etc. • It is desirable authentication/authorization are integrated into API management Authentication/ Authorization
  • 12. 11 © Hitachi, Ltd. 2019. All rights reserved. Open Source Software (OSS) for open API • There are various OSSs • We chose “3scale” and “Keycloak” • Completeness of feature • Activity and future of community OSS API Management 3scale WSO2 Kong tyk Authentication/ Authorization Keycloak OpenAM Gluu
  • 13. 12 © Hitachi, Ltd. 2019. All rights reserved. API Management What is 3scale API Gateway (APIcast) Legacy Backend REST API Server Applications (Web App, Mobile App) Developer Portal(porta) Manager (porta) App Developers End Users Authentication/ Authorization Container Platform • Include full functions of API management (not only API GW) • Cloud native : Works on OpenShift or okd • OAuth2, OIDC in combination with Keycloak OSS for API Management, community is led by Red Hat: https://github.com/3scale
  • 14. 13 © Hitachi, Ltd. 2019. All rights reserved. What is Keycloak Identity Management Authentication Social Login (Identity Brokering) Identity Federation OpenID Connect, OAuth 2.0, SAML OSS for Identity Management, community is led by Red Hat: https://www.keycloak.org LDAP Active Directory RDB
  • 15. © Hitachi, Ltd. 2019. All rights reserved. Contents 14 1. Introduction: background and requirements 2. Usage of OSS to meet requirements • Which OSS should be used? • Security requirements • Availability requirements
  • 16. 15 © Hitachi, Ltd. 2019. All rights reserved. <Recap> Requirements for Authentication/Authorization for banking API # Category Description 1 Authentication • Can support various (customized) authentication in OAuth flow • Compliance to OpenID Connect on top of OAuth 2 Access control • Deny/Allow accesses based on claims in token • Can be combined with rate limit to protect backend 3 Manage tokens • Revoke tokens triggered by users, administrators • Revoke tokens based on policy 4 Compliance to the latest standards • Financial-grade API (FAPI) of OpenID Foundation Implemented these requirements using 3scale + Keycloak, collaborating with OSS community
  • 17. 16 © Hitachi, Ltd. 2019. All rights reserved. Authentication : Registering Apps Authentication within OAuth/OIDC flow works well, basically Keycloak Dev/Admin portal (system) Developer/Administrator (1) Generate client ID/secret via Web console, and register app zync MySQL 3scale (2) Register client ID/secret to manage from 3scale (3) Sync client ID/secret to Keycloak * OAuth 2.0 Dynamic Client Registration Protocol (RFC 7591)
  • 18. 17 © Hitachi, Ltd. 2019. All rights reserved. Authentication : Authentication / Issue token (1) Redirect to login screen User data store (2) Authenticates user using user data storage (3) Authorization code (4) Token request with client secret (5) Access token and ID token Authentication within OAuth/OIDC flow works well, basically e.g.) Authorization code grant End user Keycloak Application
  • 19. 18 © Hitachi, Ltd. 2019. All rights reserved. Authentication : Issues 1. PKCE (RFC 7636) is required to protect code (1) Redirect to login screen User data store (2) Authenticates user using user data storage (3) Authorization code (4) Token request with client secret (5) Access token and ID token End user Keycloak Application 2. Login screen is generated by Keycloak. However, it lacks high customizability.
  • 20. 19 © Hitachi, Ltd. 2019. All rights reserved. PKCE support for Keycloak • Keycloak did not support PKCE.. -> We submitted PR and merged. https://github.com/keycloak/keycloak/pull/3831 • From Keycloak 3.1.0, PKCE was supported. • Enabled by default (no switch) • Only when PKCE is requested from a client, it works • Included in OIDC server metadata from 4.0.0
  • 21. 20 © Hitachi, Ltd. 2019. All rights reserved. Highly customized login screen (1) Redirect to login screen (2) Forward login screen & result (3) Authorization code (4) Token request with client secret (5) Access token and ID token End user Keycloak Application Login Screen AP server 1. Delegates login screen by using Identity brokering feature 2. Login screen/logic can be coded as customers like Extra parameters could not be forwarded Besides the template, login screen can be generated by delegated server We submitted a patch to enable forward parameters from Keycloak. https://github.com/keycloak/keycloak/pull/5163
  • 22. 21 © Hitachi, Ltd. 2019. All rights reserved. Access Control Keycloak only issues tokens. Access control is out of scope. API Gateway (APIcast) REST API Server Applications (Web App, Mobile App) Access control has to be implemented in APIcast or REST API server APIcast did not support access control using tokens -> We submitted PRs. API Request with access token More convenient, to reduce development in REST API server
  • 23. 22 © Hitachi, Ltd. 2019. All rights reserved. How to access control using tokens { "jti": "c26a32c4-4b48-4c2f-a7da-3b9b8ecad652", "exp": 1535424101, "nbf": 0, "iat": 1535423801, "iss": "http://localhost:8080/auth/realms/provider", "aud": "broker", "sub": "e4b11e2e-9136-409b-8720-57463c627c10", "typ": "Bearer", "azp": "broker", "auth_time": 0, "session_state": "ac1767e2-2e30-4d44-b6f3-b77935a7a0bc", "acr": "1", "allowed-origins": [], "realm_access": { "roles": [ "read", "additional", "write" ] }, "name": "Takashi Mogi", "preferred_username": "mogi", "given_name": "Takashi", "family_name": "Mogi", "email": "mogi@example.com" } • The format of access token is not standardized neither RFC nor OIDC. -> It depends on implementation. • In Keycloak, the format is similar to ID token of OIDC (JWT, claims). -> We targeted the Keycloak access token, and developed 2 policies(*). (*) plugin to extend functions of APIcast
  • 24. 23 © Hitachi, Ltd. 2019. All rights reserved. Keycloak Role Check policy • Checks “role” claims of access token and URL. • We submitted a patch and included from 3scale 2.3. https://github.com/3scale/apicast/pull/773 { "jti": "c26a32c4-4b48-4c2f-a7da-3b9b8ecad652", "exp": 1535424101, … "allowed-origins": [], "realm_access": { "roles": [ "role1" ] }, End User Client Application Keycloak APIcast API Backend Resources: /resource1 Role Check: Require “role1” to access to “/resource1” 1. Request “role1” 4. Issue access token including “role1” 5. “GET /resource1” with access token 6. Allow to access to “/resouce1” Use Access Token
  • 25. 24 © Hitachi, Ltd. 2019. All rights reserved. Edge Limiting policy Rate limiting: A kind of access control, to control the upper limit of traffics. APIcast did not support STRICT rate limiting to protect backend. -> We implemented patches and “Edge limiting policy” was included in 3scale 2.3. API Gateway (APIcast) REST API Server Applications (Web App, Mobile App) API Request with access token Any values can be extracted as a key to control access - header - body parameter - JWT claim - etc. https://github.com/3scale/apicast/pull/719 Protects backend by rate limit, types of limit: - leaky bucket - fixed window - concurrent connections https://github.com/3scale/apicast/pull/648
  • 26. 25 © Hitachi, Ltd. 2019. All rights reserved. Keycloak itself has features to revoke tokens • Revoke tokens triggered by administrator -> Can be revoked from admin console • Revoke tokens based on policy -> Timeout can be configured in admin console • Revoke tokens triggered by users - Keycloak does not support OAuth 2.0 Token Revocation (RFC 7009) - Instead, logout endpoint(*) is used. (*) /auth/realms/<realm>/protocol/openid-connect/logout Related access tokens, ID tokens, refresh tokens are revoked. Manage tokens
  • 27. 26 © Hitachi, Ltd. 2019. All rights reserved. Manage tokens : Issue 1) API Request with token 2) Token Introspection (Check token is alive) API Gateway (APIcast) Applications (Web App, Mobile App) Keycloak • Only authorization server knows that tokens are revoked… API gateways couldn’t deny API requests even if tokens were revoked. • API gateways MUST ask the authorization server whether tokens were revoked. -> token introspection (RFC 7662)
  • 28. 27 © Hitachi, Ltd. 2019. All rights reserved. Token Introspection policy • We implemented patches and “Token Introspection policy” was included in 3scale 2.3. https://github.com/3scale/APIcast/pull/619 • This policy can cache the result of token introspection for reducing performance impact https://github.com/3scale/APIcast/pull/656 1) API Request with token 2) Token Introspection (Check token is alive) API Gateway (APIcast) Applications (Web App, Mobile App) Keycloak
  • 29. 28 © Hitachi, Ltd. 2019. All rights reserved. How API is called in 3scale 2.3 + Keycloak 1) API Request with token 2) Token Introspection (Token Introspection policy) 3scale API Gateway (APIcast) REST API Server Applications (Web App, Mobile App) Keycloak 3) Access control (Role Check policy, Edge Limiting policy) 4) Extract necessary information from access token and set header (Header policy) 5) API Request with necessary information in header
  • 30. 29 © Hitachi, Ltd. 2019. All rights reserved. Compliance to the latest standard: FAPI OAuth OpenID Connect (OIDC) Spec to exchange access token(authorization info). A lots are left to implementers, insecure usage can easily happen. In addition to OAuth, ID token (authentication info) can be included. Usage of OAuth is a bit hardened. FAPI FAPI (Financial-Grade API) is being standardized in OpenID Foundation. Part1 (Read Only), Part2 (Read Write), JARM, CIBA Secure usage of OAuth and OIDC is standardized.
  • 31. 30 © Hitachi, Ltd. 2019. All rights reserved. FAPI in Japan • FAPI is still implementer’s draft as of today • However, being strongly promoted in banking industry Quoted from “Report of Review Committee on Open APIs: Promoting Open Innovation”, Japanese Bankers Association https://www.zenginkyo.or.jp/fileadmin/res/news/news290713_3.pdf • We have to prepare for FAPI in advance, because can not implement soon.
  • 32. 31 © Hitachi, Ltd. 2019. All rights reserved. Issues toward FAPI in Keycloak JIRA Description Pull Request Included version KEYCLOAK-2604 RFC 7636(PKCE) support 3831 3.1.0 KEYCLOAK-5661 shall return the list of allowed scopes with the issued access token 4527 3.4.0 KEYCLOAK-5811 Client authentication client_secret_jwt 4835 4.0.0 KEYCLOAK-6700 Support of s_hash 5022 4.0.0 KEYCLOAK-6768 Support of Encrypted ID token 5779 Not yet KEYCLOAK-6770 Signature algorithm (PS256 or ES256) support 5533 4.5.0 KEYCLOAK-8460 Signature algorithm (PS256 or ES256) support (for request object) 5603 4.7.0 KEYCLOAK-6771 Support for holder of key mechanism 5083 4.0.0 Investigated implementation of Keycloak, and reported issues. We were developing patches with community, major parts were resolved. Our colleague @tnorimat is mainly working.
  • 33. © Hitachi, Ltd. 2019. All rights reserved. Contents 32 1. Introduction: background and requirements 2. Usage of OSS to meet requirements • Which OSS should be used? • Security requirements • Availability requirements
  • 34. 33 © Hitachi, Ltd. 2019. All rights reserved. <Recap> Requirements for Availability for banking API # Category Description 1 Fault Tolerance • HA configuration • Can recover automatically 2 Fail Soft/ Fault Avoidance • Reduce dependencies of each component Implemented these requirements using 3scale, collaborating with OSS community
  • 35. 34 © Hitachi, Ltd. 2019. All rights reserved. API Management HA configuration / Automatic recovery API Gateway (APIcast) Legacy Backend REST API Server Applications (Web App, Mobile App) Developer Portal(porta) Manager (porta) App Developers End Users Authentication/ Authorization Container Platform OpenShift provides: • Automatic recovery/Automatic rerouting -> Automatic recovery • Flexible scaling -> HA configuration
  • 36. 35 © Hitachi, Ltd. 2019. All rights reserved. Reduce dependencies of each component apicast- [staging|production] system-[master|provider] / system-developer system-redis system-mysql system-memcache system-sidekiq system-sphinx backend-redis backend-cron backend-worker backend-listener zync-database zync Keycloak Client Application API Backend API Gateway Authentication / Analytics Portals Data sync External components
  • 37. 36 © Hitachi, Ltd. 2019. All rights reserved. Reduce dependencies of each component apicast- [staging|production] system-[master|provider] / system-developer system-redis system-mysql system-memcache system-sidekiq system-sphinx backend-redis backend-cron backend-worker backend-listener zync-database zync Keycloak Client Application API Backend API Gateway Authentication / Analytics Portals Data sync External components Level 3
  • 38. 37 © Hitachi, Ltd. 2019. All rights reserved. Reduce dependencies of each component apicast- [staging|production] system-[master|provider] / system-developer system-redis system-mysql system-memcache system-sidekiq system-sphinx backend-redis backend-cron backend-worker backend-listener zync-database zync Keycloak Client Application API Backend Mission Critical components Non-critical components External components Execute jobs Enqueue jobs
  • 39. 38 © Hitachi, Ltd. 2019. All rights reserved. Reduce dependency (APIcast to Backend) apicast- [staging|production] backend-listener Authenticate & Report traffics when backend-listener is down We have to consider: 1. how to authenticate API requests 2. how to report traffics
  • 40. 39 © Hitachi, Ltd. 2019. All rights reserved. Reduce dependency (APIcast to Backend) apicast- [staging|production] backend-listener Authenticate & Report traffics We have to consider: 1. how to authenticate API requests 👉 cache the result of authentication and authenticate using cache -> cannot authenticate newcomers and results to opportunity loss 👉 allow newcomers without cache authentication and with alternative authentications 2. how to report traffics 👉 cache traffics and report them all together when backend-listener comes back Caching policy Batcher policy Keycloak Role Check policy, Edge Limiting policy, Token Introspection policy
  • 41. 40 © Hitachi, Ltd. 2019. All rights reserved. How API is called in 3scale 2.3 1) API Request with token 2) Token Introspection (Token Introspection policy) 3scale API Gateway (APIcast) REST API Server Applications (Web App, Mobile App) Keycloak 3) Access control (Role Check policy, Edge Limiting policy) 4) Extract necessary information from access token and set header (Header policy) 6) API Request with necessary information in header 5) Reduce dependencies (Caching policy, Batcher policy) 3scale Backend
  • 42. 41 © Hitachi, Ltd. 2019. All rights reserved. Summary • OAuth is recognized as a key technology for banking API systems • Requirements to be considered around OAuth • Authentication, Access control, Token management, Latest standard (OIDC, FAPI) • Requirements to be considered around Availability • HA configuration, Dependencies • Applied OSS (3scale + Keycloak) to achieve them • Improved with OSS community • 3scale: enhanced rate limit, access control • Keycloak: Features required for FAPI -> Improvements are included in the latest version • Let’s work with OSS community ! 3scale and Keycloak are great community.
  • 43. 42 © Hitachi, Ltd. 2019. All rights reserved. Trademarks • Red Hat is a trademark or registered trademark of Red Hat, Inc. in the United States and other countries. • OpenShift is a trademark or registered trademark of Red Hat, Inc. in the United States and other countries. • WSO2 is a trademark or registered trademark of WSO2 in the United States and other countries. • OpenID is a trademark or registered trademark of OpenID Foundation in the United States and other countries. • GitHub is a trademark or registered trademark of GitHub, Inc. in the United States and other countries. • Twitter is a trademark or registered trademark of Twitter, Inc. in the United States and other countries. • Facebook is a trademark or registered trademark of Facebook, Inc. in the United States and other countries. • Other brand names and product names used in this material are trademarks, registered trademarks, or trade names of their respective holders.