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)
Ad

Recommended

Implementing WebAuthn & FAPI supports on Keycloak
Implementing WebAuthn & FAPI supports on Keycloak
Yuichi Nakamura
 
Lecture 3: Servlets - Session Management
Lecture 3: Servlets - Session Management
Fahad Golra
 
Implementing security requirements for banking API system using Open Source ...
Implementing security requirements for banking API system using Open Source ...
Yuichi Nakamura
 
Dataweave Libraries and ObjectStore
Dataweave Libraries and ObjectStore
Vikalp Bhalia
 
API Management within a Microservice Architecture
API Management within a Microservice Architecture
WSO2
 
Springboot Microservices
Springboot Microservices
NexThoughts Technologies
 
NGSI によるデータ・モデリング - FIWARE WednesdayWebinars
NGSI によるデータ・モデリング - FIWARE WednesdayWebinars
fisuda
 
Camunda BPM 7.13 Webinar
Camunda BPM 7.13 Webinar
camunda services GmbH
 
Push notification to the open web
Push notification to the open web
Ahmed Gamal
 
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
문기 박
 
Exposing services with Azure API Management
Exposing services with Azure API Management
Callon Campbell
 
Automate Cisco Switch Configuration Backups with KRON
Automate Cisco Switch Configuration Backups with KRON
Travis Kench
 
Making The Move To Java 17 (JConf 2022)
Making The Move To Java 17 (JConf 2022)
Alex Motley
 
API Basics
API Basics
Ritul Chaudhary
 
Microservice Architecture
Microservice Architecture
Nguyen Tung
 
Building APIs with Mule and Spring Boot
Building APIs with Mule and Spring Boot
Guilherme Pereira Silva
 
[네전따] 네트워크 엔지니어에게 쿠버네티스는 어떤 의미일까요
[네전따] 네트워크 엔지니어에게 쿠버네티스는 어떤 의미일까요
Jo Hoon
 
DevOps concepts, tools, and technologies v1.0
DevOps concepts, tools, and technologies v1.0
Mohamed Taman
 
Learn mulesoft from scratch
Learn mulesoft from scratch
Nikhil More
 
Orquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace Netflix
Paradigma Digital
 
MuleSoft Anypoint Platform and Three Tier Architecture
MuleSoft Anypoint Platform and Three Tier Architecture
Harish Kumar
 
API Testing Using REST Assured with TestNG
API Testing Using REST Assured with TestNG
Siddharth Sharma
 
What is SSL/TLS, 1-way and 2-way SSL?
What is SSL/TLS, 1-way and 2-way SSL?
pqrs1234
 
레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화
Jaehoon Choi
 
DataPower Restful API Security
DataPower Restful API Security
Jagadish Vemugunta
 
오래된 프로젝트에 Jenkins 적용해보기
오래된 프로젝트에 Jenkins 적용해보기
용호 최
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native Apps
Araf Karsh Hamid
 
Ansible
Ansible
Raul Leite
 
KubeConRecap_nakamura.pdf
KubeConRecap_nakamura.pdf
Hitachi, Ltd. OSS Solution Center.
 
apidays Paris 2022 - Securing APIs in Open Banking, Takashi Norimatsu, Hitachi
apidays Paris 2022 - Securing APIs in Open Banking, Takashi Norimatsu, Hitachi
apidays
 

More Related Content

What's hot (20)

Push notification to the open web
Push notification to the open web
Ahmed Gamal
 
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
문기 박
 
Exposing services with Azure API Management
Exposing services with Azure API Management
Callon Campbell
 
Automate Cisco Switch Configuration Backups with KRON
Automate Cisco Switch Configuration Backups with KRON
Travis Kench
 
Making The Move To Java 17 (JConf 2022)
Making The Move To Java 17 (JConf 2022)
Alex Motley
 
API Basics
API Basics
Ritul Chaudhary
 
Microservice Architecture
Microservice Architecture
Nguyen Tung
 
Building APIs with Mule and Spring Boot
Building APIs with Mule and Spring Boot
Guilherme Pereira Silva
 
[네전따] 네트워크 엔지니어에게 쿠버네티스는 어떤 의미일까요
[네전따] 네트워크 엔지니어에게 쿠버네티스는 어떤 의미일까요
Jo Hoon
 
DevOps concepts, tools, and technologies v1.0
DevOps concepts, tools, and technologies v1.0
Mohamed Taman
 
Learn mulesoft from scratch
Learn mulesoft from scratch
Nikhil More
 
Orquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace Netflix
Paradigma Digital
 
MuleSoft Anypoint Platform and Three Tier Architecture
MuleSoft Anypoint Platform and Three Tier Architecture
Harish Kumar
 
API Testing Using REST Assured with TestNG
API Testing Using REST Assured with TestNG
Siddharth Sharma
 
What is SSL/TLS, 1-way and 2-way SSL?
What is SSL/TLS, 1-way and 2-way SSL?
pqrs1234
 
레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화
Jaehoon Choi
 
DataPower Restful API Security
DataPower Restful API Security
Jagadish Vemugunta
 
오래된 프로젝트에 Jenkins 적용해보기
오래된 프로젝트에 Jenkins 적용해보기
용호 최
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native Apps
Araf Karsh Hamid
 
Ansible
Ansible
Raul Leite
 
Push notification to the open web
Push notification to the open web
Ahmed Gamal
 
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
문기 박
 
Exposing services with Azure API Management
Exposing services with Azure API Management
Callon Campbell
 
Automate Cisco Switch Configuration Backups with KRON
Automate Cisco Switch Configuration Backups with KRON
Travis Kench
 
Making The Move To Java 17 (JConf 2022)
Making The Move To Java 17 (JConf 2022)
Alex Motley
 
Microservice Architecture
Microservice Architecture
Nguyen Tung
 
[네전따] 네트워크 엔지니어에게 쿠버네티스는 어떤 의미일까요
[네전따] 네트워크 엔지니어에게 쿠버네티스는 어떤 의미일까요
Jo Hoon
 
DevOps concepts, tools, and technologies v1.0
DevOps concepts, tools, and technologies v1.0
Mohamed Taman
 
Learn mulesoft from scratch
Learn mulesoft from scratch
Nikhil More
 
Orquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace Netflix
Paradigma Digital
 
MuleSoft Anypoint Platform and Three Tier Architecture
MuleSoft Anypoint Platform and Three Tier Architecture
Harish Kumar
 
API Testing Using REST Assured with TestNG
API Testing Using REST Assured with TestNG
Siddharth Sharma
 
What is SSL/TLS, 1-way and 2-way SSL?
What is SSL/TLS, 1-way and 2-way SSL?
pqrs1234
 
레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화
Jaehoon Choi
 
DataPower Restful API Security
DataPower Restful API Security
Jagadish Vemugunta
 
오래된 프로젝트에 Jenkins 적용해보기
오래된 프로젝트에 Jenkins 적용해보기
용호 최
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native Apps
Araf Karsh Hamid
 

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

KubeConRecap_nakamura.pdf
KubeConRecap_nakamura.pdf
Hitachi, Ltd. OSS Solution Center.
 
apidays Paris 2022 - Securing APIs in Open Banking, Takashi Norimatsu, Hitachi
apidays Paris 2022 - Securing APIs in Open Banking, Takashi Norimatsu, Hitachi
apidays
 
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.
 
Challenge to Implementing "Scalable" Authorization with Keycloak
Challenge to Implementing "Scalable" Authorization with Keycloak
Hitachi, Ltd. OSS Solution Center.
 
apidays LIVE LONDON - Toward certifying Financial-grade API profile with Keyc...
apidays LIVE LONDON - Toward certifying Financial-grade API profile with Keyc...
apidays
 
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.
 
Security Considerations for API Gateway Aggregation
Security Considerations for API Gateway Aggregation
Hitachi, Ltd. OSS Solution Center.
 
APIsecure 2023 - Security Considerations for API Gateway Aggregation, Yoshiyu...
APIsecure 2023 - Security Considerations for API Gateway Aggregation, Yoshiyu...
apidays
 
APIdays 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
 
Open Bank Project Presentation Tel Aviv CA 4th April 2017
Open Bank Project Presentation Tel Aviv CA 4th April 2017
simonredfern
 
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.
 
OpenID Foundation FAPI WG: June 2017 Update
OpenID Foundation FAPI WG: June 2017 Update
Nat Sakimura
 
The Global Influence of Open Banking, API Security, and an Open Data Perspective
The Global Influence of Open Banking, API Security, and an Open Data Perspective
Rogue Wave Software
 
Leveraging open banking specifications for rigorous API security – What’s in...
Leveraging open banking specifications for rigorous API security – What’s in...
Rogue Wave Software
 
APIDays Paris Security Workshop
APIDays Paris Security Workshop
42Crunch
 
OpenID Foundation Workshop at EIC 2018 - Introduction to the FAPI Read & Writ...
OpenID Foundation Workshop at EIC 2018 - Introduction to the FAPI Read & Writ...
MikeLeszcz
 
Comprehensive overview FAPI 1 and 2
Comprehensive overview FAPI 1 and 2
Torsten Lodderstedt
 
Deep-Dive: API Security in the Digital Age
Deep-Dive: API Security in the Digital Age
Apigee | Google Cloud
 
API Security Best Practices & Guidelines
API Security Best Practices & Guidelines
Prabath Siriwardena
 
apidays Paris 2022 - Securing APIs in Open Banking, Takashi Norimatsu, Hitachi
apidays Paris 2022 - Securing APIs in Open Banking, Takashi Norimatsu, Hitachi
apidays
 
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.
 
Challenge to Implementing "Scalable" Authorization with Keycloak
Challenge to Implementing "Scalable" Authorization with Keycloak
Hitachi, Ltd. OSS Solution Center.
 
apidays LIVE LONDON - Toward certifying Financial-grade API profile with Keyc...
apidays LIVE LONDON - Toward certifying Financial-grade API profile with Keyc...
apidays
 
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.
 
APIsecure 2023 - Security Considerations for API Gateway Aggregation, Yoshiyu...
APIsecure 2023 - Security Considerations for API Gateway Aggregation, Yoshiyu...
apidays
 
APIdays 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
 
Open Bank Project Presentation Tel Aviv CA 4th April 2017
Open Bank Project Presentation Tel Aviv CA 4th April 2017
simonredfern
 
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.
 
OpenID Foundation FAPI WG: June 2017 Update
OpenID Foundation FAPI WG: June 2017 Update
Nat Sakimura
 
The Global Influence of Open Banking, API Security, and an Open Data Perspective
The Global Influence of Open Banking, API Security, and an Open Data Perspective
Rogue Wave Software
 
Leveraging open banking specifications for rigorous API security – What’s in...
Leveraging open banking specifications for rigorous API security – What’s in...
Rogue Wave Software
 
APIDays Paris Security Workshop
APIDays Paris Security Workshop
42Crunch
 
OpenID Foundation Workshop at EIC 2018 - Introduction to the FAPI Read & Writ...
OpenID Foundation Workshop at EIC 2018 - Introduction to the FAPI Read & Writ...
MikeLeszcz
 
Comprehensive overview FAPI 1 and 2
Comprehensive overview FAPI 1 and 2
Torsten Lodderstedt
 
Deep-Dive: API Security in the Digital Age
Deep-Dive: API Security in the Digital Age
Apigee | Google Cloud
 
API Security Best Practices & Guidelines
API Security Best Practices & Guidelines
Prabath Siriwardena
 
Ad

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

KubeCon + CloudNativeCon North America セキュリティ周りrecap
KubeCon + CloudNativeCon North America セキュリティ周りrecap
Hitachi, Ltd. OSS Solution Center.
 
Let’s Join Cloud Native Computing Foundation TAG Security APAC!
Let’s Join Cloud Native Computing Foundation TAG Security APAC!
Hitachi, Ltd. OSS Solution Center.
 
Exploring Best Practice for Implementing Authn and Authz in a Cloud-Native En...
Exploring Best Practice for Implementing Authn and Authz in a Cloud-Native En...
Hitachi, Ltd. OSS Solution Center.
 
Exploring Best Practices for Implementing Authn and Authz in a Cloud-Native E...
Exploring Best Practices for Implementing Authn and Authz in a Cloud-Native E...
Hitachi, Ltd. OSS Solution Center.
 
CloudNativeSecurityCon North America 2024 Overview
CloudNativeSecurityCon North America 2024 Overview
Hitachi, Ltd. OSS Solution Center.
 
How Does a Workload Authenticate an API Request?: Implementing Transaction To...
How Does a Workload Authenticate an API Request?: Implementing Transaction To...
Hitachi, Ltd. OSS Solution Center.
 
Authentication 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入りまでのアップストリーム活動の歩み
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...
Hitachi, Ltd. OSS Solution Center.
 
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
Hitachi, Ltd. OSS Solution Center.
 
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Hitachi, Ltd. OSS Solution Center.
 
NGINXでの認可について考える
NGINXでの認可について考える
Hitachi, Ltd. OSS Solution Center.
 
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
Hitachi, Ltd. OSS Solution Center.
 
IDガバナンス&管理の基礎
IDガバナンス&管理の基礎
Hitachi, Ltd. OSS Solution Center.
 
Keycloakのステップアップ認証について
Keycloakのステップアップ認証について
Hitachi, Ltd. OSS Solution Center.
 
NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話
Hitachi, Ltd. OSS Solution Center.
 
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.
 
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
Hitachi, Ltd. OSS Solution Center.
 
Lightweight Zero-trust Network Implementation and Transition with Keycloak an...
Lightweight Zero-trust Network Implementation and Transition with Keycloak an...
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...
Hitachi, Ltd. OSS Solution Center.
 
KubeCon + CloudNativeCon North America セキュリティ周りrecap
KubeCon + CloudNativeCon North America セキュリティ周りrecap
Hitachi, Ltd. OSS Solution Center.
 
Let’s Join Cloud Native Computing Foundation TAG Security APAC!
Let’s Join Cloud Native Computing Foundation TAG Security APAC!
Hitachi, Ltd. OSS Solution Center.
 
Exploring Best Practice for Implementing Authn and Authz in a Cloud-Native En...
Exploring Best Practice for Implementing Authn and Authz in a Cloud-Native En...
Hitachi, Ltd. OSS Solution Center.
 
Exploring Best Practices for Implementing Authn and Authz in a Cloud-Native E...
Exploring Best Practices for Implementing Authn and Authz in a Cloud-Native E...
Hitachi, Ltd. OSS Solution Center.
 
How Does a Workload Authenticate an API Request?: Implementing Transaction To...
How Does a Workload Authenticate an API Request?: Implementing Transaction To...
Hitachi, Ltd. OSS Solution Center.
 
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...
Hitachi, Ltd. OSS Solution Center.
 
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
Hitachi, Ltd. OSS Solution Center.
 
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Hitachi, Ltd. OSS Solution Center.
 
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
Hitachi, Ltd. OSS Solution Center.
 
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.
 
Lightweight Zero-trust Network Implementation and Transition with Keycloak an...
Lightweight Zero-trust Network Implementation and Transition with Keycloak an...
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...
Hitachi, Ltd. OSS Solution Center.
 
Ad

Recently uploaded (20)

Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Alliance
 
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
Edge AI and Vision Alliance
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Alliance
 
Powering Multi-Page Web Applications Using Flow Apps and FME Data Streaming
Powering Multi-Page Web Applications Using Flow Apps and FME Data Streaming
Safe Software
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Alliance
 
AI VIDEO MAGAZINE - June 2025 - r/aivideo
AI VIDEO MAGAZINE - June 2025 - r/aivideo
1pcity Studios, Inc
 
cnc-processing-centers-centateq-p-110-en.pdf
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
 
9-1-1 Addressing: End-to-End Automation Using FME
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
 
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Alliance
 
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
The Future of Technology: 2025-2125 by Saikat Basu.pdf
The Future of Technology: 2025-2125 by Saikat Basu.pdf
Saikat Basu
 
FIDO Seminar: Evolving Landscape of Post-Quantum Cryptography.pptx
FIDO Seminar: Evolving Landscape of Post-Quantum Cryptography.pptx
FIDO Alliance
 
PyCon SG 25 - Firecracker Made Easy with Python.pdf
PyCon SG 25 - Firecracker Made Easy with Python.pdf
Muhammad Yuga Nugraha
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Alliance
 
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
Edge AI and Vision Alliance
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Alliance
 
Powering Multi-Page Web Applications Using Flow Apps and FME Data Streaming
Powering Multi-Page Web Applications Using Flow Apps and FME Data Streaming
Safe Software
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Alliance
 
AI VIDEO MAGAZINE - June 2025 - r/aivideo
AI VIDEO MAGAZINE - June 2025 - r/aivideo
1pcity Studios, Inc
 
cnc-processing-centers-centateq-p-110-en.pdf
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
 
9-1-1 Addressing: End-to-End Automation Using FME
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
 
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Alliance
 
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
The Future of Technology: 2025-2125 by Saikat Basu.pdf
The Future of Technology: 2025-2125 by Saikat Basu.pdf
Saikat Basu
 
FIDO Seminar: Evolving Landscape of Post-Quantum Cryptography.pptx
FIDO Seminar: Evolving Landscape of Post-Quantum Cryptography.pptx
FIDO Alliance
 
PyCon SG 25 - Firecracker Made Easy with Python.pdf
PyCon SG 25 - Firecracker Made Easy with Python.pdf
Muhammad Yuga Nugraha
 

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": "[email protected]" } • 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.