open banking
play

OPEN BANKING TALES FROM THE FRONTIER Anca Zaharia Jason Maude - PowerPoint PPT Presentation

OPEN BANKING TALES FROM THE FRONTIER Anca Zaharia Jason Maude @ancaleuca @jasonmaude What is open banking? The legislation and associated technology that allow customers of financial institutions greater control of data that those


  1. OPEN BANKING TALES FROM THE FRONTIER Anca Zaharia Jason Maude @ancaleuca @jasonmaude

  2. What is open banking? The legislation and associated technology that allow customers of financial institutions greater control of data that those institutions hold about them.

  3. Who are Starling Bank? • Tech start-up with a banking licence • ~100% cloud-based, mobile-only • All the features that you’d expect from a current account and more • Public APIs & developer platform

  4. Public APIs • Most actions that can be performed through the mobile apps are available • Allows individuals to connect up their bank account to their own code

  5. The Starling Bank marketplace • Allows customers to securely connect to selected partners via their Starling Bank account • Providers of mortgages, pensions, savings and investments etc

  6. LESSON 1: UNDERSTAND OAUTH 2

  7. OAuth 2 overview Auth Resource User Client server server

  8. Client authentication 1. Redirect Partner Auth web app app https://oauth.starlingbank.com ● cl client_id =$client_id ● re response_type =code ● st state =$state ● re redire rect_uri ri =$redirect_uri

  9. Client authentication 1. Redirect 2. Send QR code Starling Auth web Partner app app app

  10. Client authorisation 1. Redirect 2. Send QR code Starling Auth web Partner app app app 3. Login, review permissions

  11. Client authorisation 1. Redirect 2. Send QR code Starling Auth web Partner app app app 3. Login, review permissions Starling 4. Authorise API 5. Generate auth code

  12. Client authorisation 1. Redirect 2. Send QR code Starling Auth web Partner app app app 3. Login, review 6. Poll for permissions auth code Starling 4. Authorise API 5. Generate auth code

  13. Client authorisation 1. Redirect 2. Send QR code Starling Auth web Partner app app app 7. Redirect 3. Login, review 6. Poll for permissions auth code /redirect_uri ● st state =$state ● co code =$auth_code Starling 4. Authorise API 5. Generate auth code

  14. Exchange auth code for access token Starling API Partner API POST https://api.starlingbank.com/oauth/access-token Request Response ● code =$auth_code co ● access_token ac ● cl client_id =$client_id ● refre re resh_token ● client_secr cl cret =$client_secret ● token_type=Bearer ● grant_type=authorization_code ● ex expires_ es_in ● redirect_uri=$redirect_uri ● sc scope

  15. Use access token Starling API Partner API -H "Authorization: Bearer $ ac access_token " https://api.starlingbank.com/api/v1/accounts/balance

  16. Example screens for Wealthify using 2-way OAuth flow

  17. Additional security • Highly sensitive requests (e.g., payment instructions) must be sig igned

  18. Token storage ● Don’t forget to delete expired tokens

  19. LESSON 2: YOU CAN’T ALWAYS CONNECT

  20. Things will go wrong

  21. Losing requests and responses Request Partner Starling API API Request Response

  22. DITTO architecture The system must ensure that every instruction from a user is actioned at least once and at most once

  23. Losing requests - at least once Request Partner Starling API API

  24. Losing responses - at most once Request Partner Starling API API Response

  25. LESSON 3: MAKE TESTING EASY

  26. Personal access Developer Portal account Starling Bank account

  27. Personal access $ curl -H “Authorization: Bearer <personal access token>” https://api.starlingbank.com/api/v1/tr ansactions

  28. What if I want more?

  29. Play in the sandbox

  30. LESSON 4: WORK ON YOUR PERMISSIONS MODEL

  31. Permission model v1 Tier 5 Make payments Tier 4 Create payees Tier 2 Tier 1 Tier 3 Read personal Read financial Write financial

  32. Permission model v2 Create Delete Read Edit Payees DD Mandates Address Metadata Create Read Read Create Savings Goal Transactions Balance Local Payment

  33. Displaying permissions

  34. LESSON 5: MONITOR YOUR API

  35. Monitoring and observability stack Instana Prometheus Grafana Alertmanager Elastalert Pagerduty Elasticsearch Logstash Kibana

  36. THE FUTURE

  37. Open integration platform Open Starling API Partner integration API platform

  38. Share your identity confirmation KYC Starling API Partner API

  39. Key takeaways • Lesson 1: Understand OAuth • Lesson 2: You can’t always connect • Lesson 3: Make testing easy • Lesson 4: Work on your permissions model • Lesson 5: Monitor your API

  40. Thank you! Check out the Starling Developer Podcast! https://developer.starlingbank.com @ancaleuca @jasonmaude

Recommend


More recommend