SlideShare a Scribd company logo
Service to Service Authentication with OAuth
Zalando Tech Meetup Dortmund, 2016-05-12
Background: Mike Mozart / CC BY 2.0
15 countries
3 fulfillment centers
18 million active customers
3 billion € revenue 2015
135+ million visits per month
10.000+ employees in Europe
ZALANDO
RADICAL
AGILITY
AUTONOMY
ONE DATA CENTER PER TEAM
Internet
*.abc.example.org *.xyz.example.org
Team ABC Team XYZ
ISOLATED AWS ACCOUNTS
EC2EC2
ELBELB
EC2
● 1000+ in Zalando Tech
● 100+ AWS Accounts
● 300+ Applications
SOME NUMBERS..
Internet
bob.xyz.example.org
Team ABC Team XYZ
SERVICE TO SERVICE
bobEC2
ELB
alice
● HTTP Basic Auth
● SAML
● Kerberos
● OAuth 2.0
● “Notariat”
AUTHENTICATION CANDIDATES
● HTTP Basic Auth
● SAML
● Kerberos
● OAuth 2.0
● “Notariat”
AUTHENTICATION CANDIDATES
The
OAuth 2.0 authorization framework
enables a third-party application
to obtain limited access to
an HTTP service.
- oauth.net
OAUTH?
● Resource Owner
● Client
● Resource Server
● Authorization Server
OAUTH ROLES
● Resource Owner ⟺ User
● Client ⟺ Application
● Resource Server ⟺ REST API
● Authorization Server ⟺ OAuth Provider
OAUTH ROLES
OAUTH REDIRECT FLOW
Authz Server /
OAuth Provider
access
protected
resource
Resource Owner /
User
Resource Server /
REST API
Client /
Application
validate
token
https://demo.zmon.io/
EXAMPLE OAUTH REDIRECT FLOW
● One Service User per Application
● Resource Owner Password Credentials
Grant Type
● Automatic credential distribution
and rotation
OAUTH FOR SERVICE TO SERVICE
Authorization:
Bearer 123f
Team ABC Team XYZ
SERVICE TO SERVICE
bobEC2
ELB
alice
S3
Authz Server /
OAuth Provider validate token
OAUTH CREDENTIAL DISTRIBUTION VIA S3 BUCKETS
AWS
WEB UI
get access
token
store
passwords
get password
S3
rotate
passwords Authz Server /
OAuth Provider
alice
create app
● Alice reads OAuth credentials from S3
● Alice gets access token from Auth. Server
● Alice calls Bob with Bearer token
● Bob validates token against Auth. Server
OAUTH SERVICE TO SERVICE FLOW
● Install some OAuth Provider
● Set up credential distribution
● PROFIT!!!
EASY ENOUGH
Plan B: Service to Service Authentication with OAuth
● Network Latency?
● Token Storage?
● Availability?
WHAT ABOUT
bobalice
Authz Server /
OAuth Provider
Token
Storage
create
token validate
● Robustness & resilience
● Low latency for token validation
● Horizontal scalability
PLAN B: GOALS
● JWT access token
● No write operation
● Cassandra
PLAN B: APPROACH
bobalice
create
token
Token
Info validateProvider
credential storage
JSON WEB TOKENS (JWT)
$ curl -u alice-service:mypw 
-d 'grant_type=password&username=alice-service&password=123' 
https://planb-provider.example.org/oauth2/access_token?realm=/services
{
"access_token": "eyJraWQiOXN0a2V5LWVzMjU2..",
"token_type": "Bearer",
"expires_in": 28800,
"scope": "cn",
"realm": "/services"
}
PLAN B TOKEN ENDPOINT
Authorization: Bearer ↲
a8dfcf02-2d21-fe12-8791-822f48749018
Authorization: Bearer ↲
eyJraWQiOiJ0ZXN0a2V5LWVzMjU2IiwiYWxnIjoiRVMyNTYifQ.
eyJzdWIiOiJ0ZXN0MiIsInNjb3BlIjpbImNuIl0sImlzcyI6IkIiLCJyZ
WFsbSI6Ii9zZXJ2aWNlcyIsImV4cCI6MTQ1NzMxOTgxNCwiaWF0IjoxND
U3MjkxMDE0fQ.
KmDsVB09RAOYwT0Y6E9tdQpg0rAPd8SExYhcZ9tXEO6y9AWX4wBylnmNH
VoetWu7MwoexWkaKdpKk09IodMVug
36 chars vs ~300 chars
JWT AS OAUTH ACCESS TOKEN
● JWT libs exist for every major language
● De-facto standard: HTTP call to Token Info
● New OAuth RFC defines
Token Introspection Endpoint
JWT: HOW TO VALIDATE?
GET /oauth2/tokeninfo?access_token=eyJraWQiOiJ0ZXN0a2VLWVzMjU2..
{
"expires_in": 28292,
"grant_type": "password",
"realm": "/services",
"scope": ["cn", "pets.read"],
"token_type": "Bearer",
"uid": "alice-service"
}
PLAN B TOKEN INFO
● Self-contained JWT tokens
● No revocation standard
REVOKING TOKENS
● Revoke single tokens
● Revoke tokens by claims
“Revoke all tokens issued
before 1st of May for user John Doe”
REVOCATION LISTS
REVOCATION SERVICE
Token Info
Revocation Service
POST /revocations
GET /revocations?from=...
PLAN B: COMPLETE PICTURE
bobalice
create
token
Token Info
validate
Provider
credential storage
Revocation
poll
public keys
poll
revocation listsS3
call with Bearer token
● OAuth credentials in CREDENTIALS_DIR
● Token endpoint available at
OAUTH2_ACCESS_TOKEN_URL
ALICE’ PERSPECTIVE
● Validation endpoint (Token Info) available at
TOKENINFO_URL
BOB’S PERSPECTIVE
● Robustness & resilience
⇒ Cassandra, no SPOF
● Low latency for token validation
⇒ Token Info next to application
● Horizontal scalability
⇒ Cassandra, “stateless” Token Info
PLAN B: GOALS?
● >1300 active service users (last 5 days)
● 8 h JWT lifetime
● 40 rps on Token Endpoint (Provider)
● 1500 rps on Token Info (caching!)
● 0.5 ms JWT validation (99%)
● 11 ms Token Info latency (99%)
PLAN B IN PRODUCTION
Plan B: Service to Service Authentication with OAuth
Created for Service2Service, but also supports:
● Authorization Code Grant Type
● Implicit Grant Type
● User Consent
PLAN B PROVIDER
● 3rd party Mobile App
● OAuth Implicit Flow
PLAN B FOR CUSTOMERS
● Consent Screen
● Consent stored
in Cassandra
PLAN B FOR CUSTOMERS
Questions?
Plan B Docs
planb.readthedocs.org
STUPS Homepage
stups.io
tech.zalando.com
@try_except_

More Related Content

PDF
Kubernetes on AWS @Zalando - Berlin AWS User Group 2017-05-09
PDF
Kubernetes on AWS at Europe's Leading Online Fashion Platform
PDF
STUPS by Zalando @WHD.local Frankfurt: STUPS.io - an Open Source Cloud Framew...
PDF
From AWS/STUPS to Kubernetes on AWS @Zalando - Berlin Kubernetes Meetup
PDF
Kubernetes at Zalando - CNCF End User Committee Presentation
PDF
Large Scale Kubernetes on AWS at Europe's Leading Online Fashion Platform - C...
PDF
Docker Berlin Meetup Nov 2015: Zalando Intro
PDF
Universal JavaScript - Frontend United Athens 2017
Kubernetes on AWS @Zalando - Berlin AWS User Group 2017-05-09
Kubernetes on AWS at Europe's Leading Online Fashion Platform
STUPS by Zalando @WHD.local Frankfurt: STUPS.io - an Open Source Cloud Framew...
From AWS/STUPS to Kubernetes on AWS @Zalando - Berlin Kubernetes Meetup
Kubernetes at Zalando - CNCF End User Committee Presentation
Large Scale Kubernetes on AWS at Europe's Leading Online Fashion Platform - C...
Docker Berlin Meetup Nov 2015: Zalando Intro
Universal JavaScript - Frontend United Athens 2017

What's hot (20)

PDF
STUPS by Zalando @ AWS User Group Ireland Meet Up September 2015
PDF
Python at Zalando Technology @ Python Users Berlin Meetup September 2015
PDF
Building a Serverless company with Node.js, React and the Serverless Framewor...
PDF
GOTO Amsterdam 2015: A Cloud Infrastructure for Scaling Innovation Across Aut...
PDF
Spring Cloud Into Production
PDF
DevOps Con 2015: Radical Agility with Autonomous Teams and Microservices in t...
PDF
Serverless computing in Azure: Functions, Logic Apps and more!
PDF
Chalice microframework 101 (eng)
PPTX
Docker in der AWS Cloud
PPTX
Docker on AWS
PDF
Yunong Xiao - The Paved PaaS to Microservices - Codemotion Milan 2017
PDF
Why NodeJS
PDF
Building a Serverless Pipeline
PDF
ELB를 활용한 Socket.IO 멀티노드 구축사례
PPTX
Experts live2016 - Karim Vaes - end-to-end automation
PDF
What can you do with lambda in 2020
PDF
Java Microservices with Netflix OSS & Spring
PPTX
Moving Viadeo to AWS (2015)
PPT
CloudStack EC2 Configuration
PPTX
Building a Reactive RESTful API with Akka Http & Slick
STUPS by Zalando @ AWS User Group Ireland Meet Up September 2015
Python at Zalando Technology @ Python Users Berlin Meetup September 2015
Building a Serverless company with Node.js, React and the Serverless Framewor...
GOTO Amsterdam 2015: A Cloud Infrastructure for Scaling Innovation Across Aut...
Spring Cloud Into Production
DevOps Con 2015: Radical Agility with Autonomous Teams and Microservices in t...
Serverless computing in Azure: Functions, Logic Apps and more!
Chalice microframework 101 (eng)
Docker in der AWS Cloud
Docker on AWS
Yunong Xiao - The Paved PaaS to Microservices - Codemotion Milan 2017
Why NodeJS
Building a Serverless Pipeline
ELB를 활용한 Socket.IO 멀티노드 구축사례
Experts live2016 - Karim Vaes - end-to-end automation
What can you do with lambda in 2020
Java Microservices with Netflix OSS & Spring
Moving Viadeo to AWS (2015)
CloudStack EC2 Configuration
Building a Reactive RESTful API with Akka Http & Slick
Ad

Similar to Plan B: Service to Service Authentication with OAuth (20)

PDF
Stateless authentication for microservices applications - JavaLand 2015
PDF
OAuth and why you should use it
PDF
OAuth Base Camp
PPTX
Microservices security - jpmc tech fest 2018
PPTX
Devteach 2017 OAuth and Open id connect demystified
PDF
CIS13: Bootcamp: Ping Identity OAuth and OpenID Connect In Action with PingFe...
PDF
Modern Security with OAuth 2.0 and JWT and Spring by Dmitry Buzdin
PDF
InterCon 2016 - Segurança de identidade digital levando em consideração uma a...
PDF
iMasters Intercon 2016 - Identity within Microservices
PPTX
Single-Page-Application & REST security
PDF
1000 ways to die in mobile oauth
PDF
ConFoo 2015 - Securing RESTful resources with OAuth2
PDF
Stateless authentication for microservices
PDF
APIsecure 2023 - OAuth, OIDC and protecting third-party credentials, Ed Olson...
PDF
What the Heck is OAuth and OpenID Connect - DOSUG 2018
PDF
2019 - Tech Talk DC - Token-based security for web applications using OAuth2 ...
PDF
AllTheTalks.Online 2020: "Basics of OAuth 2.0 and OpenID Connect"
PDF
Introduction to OAuth2.0
PDF
Stateless token-based authentication for pure front-end applications
PDF
CIS14: Working with OAuth and OpenID Connect
Stateless authentication for microservices applications - JavaLand 2015
OAuth and why you should use it
OAuth Base Camp
Microservices security - jpmc tech fest 2018
Devteach 2017 OAuth and Open id connect demystified
CIS13: Bootcamp: Ping Identity OAuth and OpenID Connect In Action with PingFe...
Modern Security with OAuth 2.0 and JWT and Spring by Dmitry Buzdin
InterCon 2016 - Segurança de identidade digital levando em consideração uma a...
iMasters Intercon 2016 - Identity within Microservices
Single-Page-Application & REST security
1000 ways to die in mobile oauth
ConFoo 2015 - Securing RESTful resources with OAuth2
Stateless authentication for microservices
APIsecure 2023 - OAuth, OIDC and protecting third-party credentials, Ed Olson...
What the Heck is OAuth and OpenID Connect - DOSUG 2018
2019 - Tech Talk DC - Token-based security for web applications using OAuth2 ...
AllTheTalks.Online 2020: "Basics of OAuth 2.0 and OpenID Connect"
Introduction to OAuth2.0
Stateless token-based authentication for pure front-end applications
CIS14: Working with OAuth and OpenID Connect
Ad

More from Henning Jacobs (20)

PDF
How Zalando runs Kubernetes clusters at scale on AWS - AWS re:Invent
PDF
Open Source at Zalando - OSB Open Source Day 2019
PDF
Why I love Kubernetes Failure Stories and you should too - GOTO Berlin
PDF
Why Kubernetes? Cloud Native and Developer Experience at Zalando - Enterprise...
PDF
Why Kubernetes? Cloud Native and Developer Experience at Zalando - OWL Tech &...
PDF
Kubernetes + Python = ❤ - Cloud Native Prague
PDF
Kubernetes Failure Stories, or: How to Crash Your Cluster - ContainerDays EU ...
PDF
Why we don’t use the Term DevOps: the Journey to a Product Mindset - DevOpsCo...
PDF
Why we don’t use the Term DevOps: the Journey to a Product Mindset - Destinat...
PDF
Kubernetes Failure Stories - KubeCon Europe Barcelona
PDF
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
PDF
Developer Experience at Zalando - CNCF End User SIG-DX
PDF
Ensuring Kubernetes Cost Efficiency across (many) Clusters - DevOps Gathering...
PDF
Let's talk about Failures with Kubernetes - Hamburg Meetup
PDF
Developer Experience at Zalando - Handelsblatt Strategisches IT-Management 2019
PDF
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - DevO...
PDF
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
PDF
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - Cont...
PDF
API First with Connexion - PyConWeb 2018
PDF
Developer Journey at Zalando - Idea to Production with Containers in the Clou...
How Zalando runs Kubernetes clusters at scale on AWS - AWS re:Invent
Open Source at Zalando - OSB Open Source Day 2019
Why I love Kubernetes Failure Stories and you should too - GOTO Berlin
Why Kubernetes? Cloud Native and Developer Experience at Zalando - Enterprise...
Why Kubernetes? Cloud Native and Developer Experience at Zalando - OWL Tech &...
Kubernetes + Python = ❤ - Cloud Native Prague
Kubernetes Failure Stories, or: How to Crash Your Cluster - ContainerDays EU ...
Why we don’t use the Term DevOps: the Journey to a Product Mindset - DevOpsCo...
Why we don’t use the Term DevOps: the Journey to a Product Mindset - Destinat...
Kubernetes Failure Stories - KubeCon Europe Barcelona
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Developer Experience at Zalando - CNCF End User SIG-DX
Ensuring Kubernetes Cost Efficiency across (many) Clusters - DevOps Gathering...
Let's talk about Failures with Kubernetes - Hamburg Meetup
Developer Experience at Zalando - Handelsblatt Strategisches IT-Management 2019
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - DevO...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - Cont...
API First with Connexion - PyConWeb 2018
Developer Journey at Zalando - Idea to Production with Containers in the Clou...

Recently uploaded (20)

PPTX
sap open course for s4hana steps from ECC to s4
PPTX
A Presentation on Artificial Intelligence
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Machine Learning_overview_presentation.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
sap open course for s4hana steps from ECC to s4
A Presentation on Artificial Intelligence
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Advanced methodologies resolving dimensionality complications for autism neur...
MYSQL Presentation for SQL database connectivity
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Reach Out and Touch Someone: Haptics and Empathic Computing
Encapsulation_ Review paper, used for researhc scholars
Assigned Numbers - 2025 - Bluetooth® Document
Diabetes mellitus diagnosis method based random forest with bat algorithm
Spectral efficient network and resource selection model in 5G networks
Mobile App Security Testing_ A Comprehensive Guide.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
NewMind AI Weekly Chronicles - August'25-Week II
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Machine Learning_overview_presentation.pptx
Unlocking AI with Model Context Protocol (MCP)
Review of recent advances in non-invasive hemoglobin estimation
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...

Plan B: Service to Service Authentication with OAuth

  • 1. Service to Service Authentication with OAuth Zalando Tech Meetup Dortmund, 2016-05-12 Background: Mike Mozart / CC BY 2.0
  • 2. 15 countries 3 fulfillment centers 18 million active customers 3 billion € revenue 2015 135+ million visits per month 10.000+ employees in Europe ZALANDO
  • 5. ONE DATA CENTER PER TEAM
  • 6. Internet *.abc.example.org *.xyz.example.org Team ABC Team XYZ ISOLATED AWS ACCOUNTS EC2EC2 ELBELB EC2
  • 7. ● 1000+ in Zalando Tech ● 100+ AWS Accounts ● 300+ Applications SOME NUMBERS..
  • 8. Internet bob.xyz.example.org Team ABC Team XYZ SERVICE TO SERVICE bobEC2 ELB alice
  • 9. ● HTTP Basic Auth ● SAML ● Kerberos ● OAuth 2.0 ● “Notariat” AUTHENTICATION CANDIDATES
  • 10. ● HTTP Basic Auth ● SAML ● Kerberos ● OAuth 2.0 ● “Notariat” AUTHENTICATION CANDIDATES
  • 11. The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service. - oauth.net OAUTH?
  • 12. ● Resource Owner ● Client ● Resource Server ● Authorization Server OAUTH ROLES
  • 13. ● Resource Owner ⟺ User ● Client ⟺ Application ● Resource Server ⟺ REST API ● Authorization Server ⟺ OAuth Provider OAUTH ROLES
  • 14. OAUTH REDIRECT FLOW Authz Server / OAuth Provider access protected resource Resource Owner / User Resource Server / REST API Client / Application validate token
  • 16. ● One Service User per Application ● Resource Owner Password Credentials Grant Type ● Automatic credential distribution and rotation OAUTH FOR SERVICE TO SERVICE
  • 17. Authorization: Bearer 123f Team ABC Team XYZ SERVICE TO SERVICE bobEC2 ELB alice S3 Authz Server / OAuth Provider validate token
  • 18. OAUTH CREDENTIAL DISTRIBUTION VIA S3 BUCKETS AWS WEB UI get access token store passwords get password S3 rotate passwords Authz Server / OAuth Provider alice create app
  • 19. ● Alice reads OAuth credentials from S3 ● Alice gets access token from Auth. Server ● Alice calls Bob with Bearer token ● Bob validates token against Auth. Server OAUTH SERVICE TO SERVICE FLOW
  • 20. ● Install some OAuth Provider ● Set up credential distribution ● PROFIT!!! EASY ENOUGH
  • 22. ● Network Latency? ● Token Storage? ● Availability? WHAT ABOUT bobalice Authz Server / OAuth Provider Token Storage create token validate
  • 23. ● Robustness & resilience ● Low latency for token validation ● Horizontal scalability PLAN B: GOALS
  • 24. ● JWT access token ● No write operation ● Cassandra PLAN B: APPROACH bobalice create token Token Info validateProvider credential storage
  • 26. $ curl -u alice-service:mypw -d 'grant_type=password&username=alice-service&password=123' https://planb-provider.example.org/oauth2/access_token?realm=/services { "access_token": "eyJraWQiOXN0a2V5LWVzMjU2..", "token_type": "Bearer", "expires_in": 28800, "scope": "cn", "realm": "/services" } PLAN B TOKEN ENDPOINT
  • 27. Authorization: Bearer ↲ a8dfcf02-2d21-fe12-8791-822f48749018 Authorization: Bearer ↲ eyJraWQiOiJ0ZXN0a2V5LWVzMjU2IiwiYWxnIjoiRVMyNTYifQ. eyJzdWIiOiJ0ZXN0MiIsInNjb3BlIjpbImNuIl0sImlzcyI6IkIiLCJyZ WFsbSI6Ii9zZXJ2aWNlcyIsImV4cCI6MTQ1NzMxOTgxNCwiaWF0IjoxND U3MjkxMDE0fQ. KmDsVB09RAOYwT0Y6E9tdQpg0rAPd8SExYhcZ9tXEO6y9AWX4wBylnmNH VoetWu7MwoexWkaKdpKk09IodMVug 36 chars vs ~300 chars JWT AS OAUTH ACCESS TOKEN
  • 28. ● JWT libs exist for every major language ● De-facto standard: HTTP call to Token Info ● New OAuth RFC defines Token Introspection Endpoint JWT: HOW TO VALIDATE?
  • 29. GET /oauth2/tokeninfo?access_token=eyJraWQiOiJ0ZXN0a2VLWVzMjU2.. { "expires_in": 28292, "grant_type": "password", "realm": "/services", "scope": ["cn", "pets.read"], "token_type": "Bearer", "uid": "alice-service" } PLAN B TOKEN INFO
  • 30. ● Self-contained JWT tokens ● No revocation standard REVOKING TOKENS
  • 31. ● Revoke single tokens ● Revoke tokens by claims “Revoke all tokens issued before 1st of May for user John Doe” REVOCATION LISTS
  • 32. REVOCATION SERVICE Token Info Revocation Service POST /revocations GET /revocations?from=...
  • 33. PLAN B: COMPLETE PICTURE bobalice create token Token Info validate Provider credential storage Revocation poll public keys poll revocation listsS3 call with Bearer token
  • 34. ● OAuth credentials in CREDENTIALS_DIR ● Token endpoint available at OAUTH2_ACCESS_TOKEN_URL ALICE’ PERSPECTIVE
  • 35. ● Validation endpoint (Token Info) available at TOKENINFO_URL BOB’S PERSPECTIVE
  • 36. ● Robustness & resilience ⇒ Cassandra, no SPOF ● Low latency for token validation ⇒ Token Info next to application ● Horizontal scalability ⇒ Cassandra, “stateless” Token Info PLAN B: GOALS?
  • 37. ● >1300 active service users (last 5 days) ● 8 h JWT lifetime ● 40 rps on Token Endpoint (Provider) ● 1500 rps on Token Info (caching!) ● 0.5 ms JWT validation (99%) ● 11 ms Token Info latency (99%) PLAN B IN PRODUCTION
  • 39. Created for Service2Service, but also supports: ● Authorization Code Grant Type ● Implicit Grant Type ● User Consent PLAN B PROVIDER
  • 40. ● 3rd party Mobile App ● OAuth Implicit Flow PLAN B FOR CUSTOMERS
  • 41. ● Consent Screen ● Consent stored in Cassandra PLAN B FOR CUSTOMERS
  • 42. Questions? Plan B Docs planb.readthedocs.org STUPS Homepage stups.io tech.zalando.com @try_except_