SlideShare a Scribd company logo
@justin__richer
FAPI/OB Test Suite
Justin Richer
July 2018
1
@justin__richer
Who am I?
•  Independent consultant in Boston, USA
•  Direct contributor to OAuth2 and OIDC
•  Editor of OAuth RFCs 7591, 7592, and 7662
•  Software architect for Authlete and Fintechlabs
•  Author of OAuth2 In Action
2
@justin__richer
Why conformance testing?
3
@justin__richer
Interoperability
4
AS	
AS	
AS	
Client	
Client	
Client	
Client
@justin__richer
Interoperability?
5
AS	
AS	
AS	
Client	
Client	
Client	
Client
@justin__richer
Conformance
6
AS	
AS	
AS	
Conformance	
Test	Suite
@justin__richer
Testing these protocols is tricky
7
@justin__richer
Resource
Owner
Authorization
Server
Protected
Resource
Client
Resource owner’s
credentials
Client’s
credentials
Authorization
code
Access token
8
@justin__richer
Resource
Owner
Authorization
Server
Protected
Resource
Client
Resource owner’s
credentials
Client’s
credentials
Authorization
code
Access token
How do we fit the test harness in here?
9
@justin__richer
End User
Session at the
Relying Party
Identity Provider
Identity Profi le APIRelying Party
(Application)
End User’s Credentials,
Authorization of the Relying Party
ID Token and
Access Token
Access Token and User Information
10
@justin__richer
Design goals
•  Multi-party protocol testing
•  Structured configuration
•  Structured logging and results
•  Deterministic, modular execution units
•  Protect sensitive configuration and results data
•  Transparent process
11
@justin__richer
We need to handle special cases
•  Front-channel requests that may never return
•  How things react to intentionally bad requests
– Testing only the happy path leads to a false sense of
security
12
@justin__richer
What we test
•  UK Open Banking
•  FAPI
•  HEART
•  AS, Client, and RS
13
@justin__richer
Architecture
14
Condition	
Configuration	Environment	 Event	Log	
Module	Plan
@justin__richer
Code structure
15
Plan	
Module	
Condition
@justin__richer
Runtime structure
16
Configuration	Environment	 Event	Log	
Instance
@justin__richer
Using the environment
17
Condition	1	
Environment	
Condition	2	
Write	value	“foo”	
Read	value	“foo”	
Write	value	“bar
@justin__richer
18
@justin__richer
19
@justin__richer
20
@justin__richer
21
@justin__richer
22
@justin__richer
23
@justin__richer
https://gitlab.com/fintechlabs/
fapi-conformance-suite
24
@justin__richer
Everything through an API
•  Create, start, stop tests
•  Retrieve test logs
•  Retrieve test plan information
•  Fully scriptable
25
@justin__richer
Questions?
26
@justin__richer
Backup Slides
27
@justin__richer
Condition
•  Simple
•  Reusable
•  Deterministic
•  Not built on existing OAuth/OIDC libraries
– Easily isolate functionality
– Better for testing for negative behaviors
28
@justin__richer
Module
•  String a set of conditions together in order
•  Manage the state between condition calls
•  Determine how condition results map to test results
– E.g., optional conditions can fail in some circumstances
29
@justin__richer
Plan
•  Allows you to run several related modules with the
same configuration
•  Tracks history of module run results
30
@justin__richer
Environment
•  Holds the full current state of a test run
•  Modules and conditions can read and write to it
•  Entirely in JSON
31
@justin__richer
Configuration
•  Anything the test module needs to run
–  Server locations
–  Secrets and keys
–  Certificates
•  Can’t be changed once test starts
•  Changes for different tests
•  Entirely in JSON
32
@justin__richer
Event log
•  Records results as tests run
•  Made of many individual entries
– Timestamp, source, data
•  Stored in MongoDB
•  Entirely in JSON
33
@justin__richer
Image upload
•  Stored in the event log (as JSON)
•  Capture what happens in the user’s browser
– Error pages
– User interaction
34
@justin__richer
Protecting data
•  Use OpenID Connect for all logins
•  All test instances have an “owner”
•  All log entries have an “owner”
35
@justin__richer
Open source
•  Publicly available on GitLab
•  Code can be fully audited (no black boxes)
•  Enhancements from several groups to date
•  Contributions are welcome!
36

More Related Content

PDF
Android rest client applications-services approach @Droidcon Bucharest 2012
PPTX
Server interaction with web socket protocol
PDF
Abstract
PPTX
Multiprocessing.pptx
PDF
slides-101-edu-sesse-introduction-to-oauth-20-01.pdf
PDF
Foxtrot: Real time analytics
PDF
ConFoo 2015 - Securing RESTful resources with OAuth2
PDF
JavaOne 2014 - Securing RESTful Resources with OAuth2
Android rest client applications-services approach @Droidcon Bucharest 2012
Server interaction with web socket protocol
Abstract
Multiprocessing.pptx
slides-101-edu-sesse-introduction-to-oauth-20-01.pdf
Foxtrot: Real time analytics
ConFoo 2015 - Securing RESTful resources with OAuth2
JavaOne 2014 - Securing RESTful Resources with OAuth2

Similar to FAPI / Open Banking Test Suite #fapisum - Japan/UK Open Banking and APIs Summit 2018 - July 25, 2018 (20)

PDF
Implementing Microservices Security Patterns & Protocols with Spring
PPTX
GSoC Mideterm-OAuth2 Module
PDF
Level 2 Certification: Using Sumo Logic - Oct 2018
PDF
Observability with Spring-based distributed systems
PPT
Performance testing jmeter
PPTX
Sumo Logic Cert Jam - Fundamentals
PPTX
Sumo Logic Cert Jam - Metrics Mastery
PDF
Observability with Spring-based distributed systems
PDF
KoprowskiT_SQLRelayBirmingham_SQLSecurityInTheClouds
PDF
KoprowskiT_SQLRelayCaerdydd_SQLSecurityInTheClouds
PPTX
Sitecore with Azure AD and Multifactor Authentication
PDF
Oracle Database Performance Tuning Advanced Features and Best Practices for DBAs
PDF
OAuth and why you should use it
PDF
RESTful web
PDF
[WSO2 API Manager Community Call] Mastering JWTs with WSO2 API Manager
PDF
IT Camp 19: Top Azure security fails and how to avoid them
PDF
Eradicate Flaky Tests - AppiumConf 2021
PPT
Performance testing with Jmeter
PDF
Productivity Acceleration Tools for SOA Testers
PDF
OpenSocial and Mixi platform
Implementing Microservices Security Patterns & Protocols with Spring
GSoC Mideterm-OAuth2 Module
Level 2 Certification: Using Sumo Logic - Oct 2018
Observability with Spring-based distributed systems
Performance testing jmeter
Sumo Logic Cert Jam - Fundamentals
Sumo Logic Cert Jam - Metrics Mastery
Observability with Spring-based distributed systems
KoprowskiT_SQLRelayBirmingham_SQLSecurityInTheClouds
KoprowskiT_SQLRelayCaerdydd_SQLSecurityInTheClouds
Sitecore with Azure AD and Multifactor Authentication
Oracle Database Performance Tuning Advanced Features and Best Practices for DBAs
OAuth and why you should use it
RESTful web
[WSO2 API Manager Community Call] Mastering JWTs with WSO2 API Manager
IT Camp 19: Top Azure security fails and how to avoid them
Eradicate Flaky Tests - AppiumConf 2021
Performance testing with Jmeter
Productivity Acceleration Tools for SOA Testers
OpenSocial and Mixi platform
Ad

More from FinTechLabs.io (13)

PDF
Open Banking: The View from a Japanese Startup (Authlete) #fapisum - Japan/UK...
PDF
Trust Frameworks and Open Banking #fapisum - Japan/UK Open Banking and APIs S...
PDF
Issues towards Open Banking ecosystem and how OpenID Foundation tackles them ...
PDF
Banking API Trends in Japan #fapisum - Japan/UK Open Banking and APIs Summit ...
PDF
Open Banking: Lessons from the UK #fapisum - Japan/UK Open Banking and APIs S...
PDF
FAPI / Open Banking Conformance #fapisum - Japan/UK Open Banking and APIs Sum...
PDF
The Great British API Client Bake Off #fapisum - Japan/UK Open Banking and AP...
PDF
Authlete FAPI Implementation Part 1 #fapisum - Japan/UK Open Banking and APIs...
PDF
Open Banking UK “Identity Product” Internals #fapisum - Japan/UK Open Banking...
PDF
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...
PDF
Basics: OAuth and OpenID Connect #fapisum - Japan/UK Open Banking and APIs Su...
PDF
Trends in Banking APIs #fapisum - Japan/UK Open Banking and APIs Summit 2018 ...
PDF
Open Banking for Developers #fapisum - Japan/UK Open Banking and APIs Summit ...
Open Banking: The View from a Japanese Startup (Authlete) #fapisum - Japan/UK...
Trust Frameworks and Open Banking #fapisum - Japan/UK Open Banking and APIs S...
Issues towards Open Banking ecosystem and how OpenID Foundation tackles them ...
Banking API Trends in Japan #fapisum - Japan/UK Open Banking and APIs Summit ...
Open Banking: Lessons from the UK #fapisum - Japan/UK Open Banking and APIs S...
FAPI / Open Banking Conformance #fapisum - Japan/UK Open Banking and APIs Sum...
The Great British API Client Bake Off #fapisum - Japan/UK Open Banking and AP...
Authlete FAPI Implementation Part 1 #fapisum - Japan/UK Open Banking and APIs...
Open Banking UK “Identity Product” Internals #fapisum - Japan/UK Open Banking...
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...
Basics: OAuth and OpenID Connect #fapisum - Japan/UK Open Banking and APIs Su...
Trends in Banking APIs #fapisum - Japan/UK Open Banking and APIs Summit 2018 ...
Open Banking for Developers #fapisum - Japan/UK Open Banking and APIs Summit ...
Ad

Recently uploaded (20)

PPT
tcp ip networks nd ip layering assotred slides
PPTX
introduction about ICD -10 & ICD-11 ppt.pptx
PPTX
Module 1 - Cyber Law and Ethics 101.pptx
PDF
Introduction to the IoT system, how the IoT system works
PDF
SASE Traffic Flow - ZTNA Connector-1.pdf
PDF
The New Creative Director: How AI Tools for Social Media Content Creation Are...
PPTX
PptxGenJS_Demo_Chart_20250317130215833.pptx
PPTX
E -tech empowerment technologies PowerPoint
PDF
APNIC Update, presented at PHNOG 2025 by Shane Hermoso
PDF
WebRTC in SignalWire - troubleshooting media negotiation
PDF
RPKI Status Update, presented by Makito Lay at IDNOG 10
PPTX
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
PPTX
522797556-Unit-2-Temperature-measurement-1-1.pptx
PPTX
SAP Ariba Sourcing PPT for learning material
PDF
How to Ensure Data Integrity During Shopify Migration_ Best Practices for Sec...
PDF
Unit-1 introduction to cyber security discuss about how to secure a system
PPTX
Power Point - Lesson 3_2.pptx grad school presentation
PPTX
artificial intelligence overview of it and more
PPTX
INTERNET------BASICS-------UPDATED PPT PRESENTATION
DOCX
Unit-3 cyber security network security of internet system
tcp ip networks nd ip layering assotred slides
introduction about ICD -10 & ICD-11 ppt.pptx
Module 1 - Cyber Law and Ethics 101.pptx
Introduction to the IoT system, how the IoT system works
SASE Traffic Flow - ZTNA Connector-1.pdf
The New Creative Director: How AI Tools for Social Media Content Creation Are...
PptxGenJS_Demo_Chart_20250317130215833.pptx
E -tech empowerment technologies PowerPoint
APNIC Update, presented at PHNOG 2025 by Shane Hermoso
WebRTC in SignalWire - troubleshooting media negotiation
RPKI Status Update, presented by Makito Lay at IDNOG 10
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
522797556-Unit-2-Temperature-measurement-1-1.pptx
SAP Ariba Sourcing PPT for learning material
How to Ensure Data Integrity During Shopify Migration_ Best Practices for Sec...
Unit-1 introduction to cyber security discuss about how to secure a system
Power Point - Lesson 3_2.pptx grad school presentation
artificial intelligence overview of it and more
INTERNET------BASICS-------UPDATED PPT PRESENTATION
Unit-3 cyber security network security of internet system

FAPI / Open Banking Test Suite #fapisum - Japan/UK Open Banking and APIs Summit 2018 - July 25, 2018