SlideShare una empresa de Scribd logo
1 de 60
Descargar para leer sin conexión
OUR ROAD TO SINGLE SIGN-ON
OUR ROAD TO SINGLE SIGN-ON
Maciej Szkamruk (@ex3v)
• backend dev@activation team
• joined DP ~1.5 years ago
• huge fan of cooking, cheap memes

and code that really helps people
Tomasz Wojcik (@prgTW)
• backend dev@CRM team
• been with DP since dinosaurs
• worships Grumpy Cat, morning coffee

and code reviews in the middle of the night
WHO ARE WE?
OUR ROAD TO SINGLE SIGN-ON
We are
We help people find doctors online
WHO ARE WE?
OUR ROAD TO SINGLE SIGN-ON
A BIT OF HISTORY
OUR ROAD TO SINGLE SIGN-ON
HOW IT ALL STARTED | HISTORY
• branched off from GoldenLine
• founded to share opinions about doctors
• ads were the only source of income
• about 5 people onboard
OUR ROAD TO SINGLE SIGN-ON
CALENDAR - MVP THAT GOT SERIOUS | HISTORY
• first step: mockups only
• visitors were curious about it… therefore MVP
• first deals with doctors
• 2k visits booked during 1st quarter
OUR ROAD TO SINGLE SIGN-ON
~4 years ago
BEFORE VS. NOW | HISTORY
2k visits booked during 1st quarter
OUR ROAD TO SINGLE SIGN-ON
~4 years ago
2k visits booked every few hours!
today
BEFORE VS. NOW | HISTORY
2k visits booked during 1st quarter
OUR ROAD TO SINGLE SIGN-ON
Poland
FIRST MARKET | HISTORY
OUR ROAD TO SINGLE SIGN-ON
Poland
Colombia
Spain
HungaryPeru Argentina
Brazil
Czech Republic
Germany
Sweden
Ukraine
Austria
Bulgaria
France
India
Italy
Portugal
South Africa
CURRENT MARKETS | HISTORY
Chile
Turkey
Mexico
Russia
Slovakia
OUR ROAD TO SINGLE SIGN-ON
• over 100GB of production data
• 17M requests and 100GB of logs every day
• ~2.7M SLOC & 10k new SLOCs every week
• about 30 folks in IT & Product
LET’S TALK NUMBERS | HISTORY
OUR ROAD TO SINGLE SIGN-ON
LET’S TALK MONEY | HISTORY
• every startup needs money to grow
• few financing rounds, $34M raised
• $20M raised in last (series C) round
OUR ROAD TO SINGLE SIGN-ON
LET’S TALK MONEY | HISTORY
OUR ROAD TO SINGLE SIGN-ON
+
DOCTORALIA MERGE | HISTORY
OUR ROAD TO SINGLE SIGN-ON
+
• relational
• PHP
• monolith
• mostly non-relational
• C#
• splitted into few apps
DOCTORALIA MERGE | HISTORY
OUR ROAD TO SINGLE SIGN-ON
OK, BUT WHERE’S SSO IN IT?
OUR ROAD TO SINGLE SIGN-ON
FROM MONOLITH TO MICROSERVICES | SSO
The Ugly
Monolith
OUR ROAD TO SINGLE SIGN-ON
• DocPlanner is getting slower
• ~2.7M lines of code
• we want coherence between

DocPlanner and Doctoralia
FROM MONOLITH TO MICROSERVICES | SSO
OUR ROAD TO SINGLE SIGN-ON
CRM OpinionsAdmin tools
Search ProfileModeration
Calendar IntegrationsAPI
Questions & Answers Mobile
FROM MONOLITH TO MICROSERVICES | SSO
OUR ROAD TO SINGLE SIGN-ON
Authorization
CRM
Questions & Answers
OpinionsAdmin tools
Search ProfileModeration
Calendar IntegrationsAPI
Mobile
FROM MONOLITH TO MICROSERVICES | SSO
OUR ROAD TO SINGLE SIGN-ON
Authorization
Authentication
CRM
Questions & Answers
OpinionsAdmin tools
Search ProfileModeration
Calendar IntegrationsAPI
Mobile
FROM MONOLITH TO MICROSERVICES | SSO
OUR ROAD TO SINGLE SIGN-ON
Authorization
Authentication (Form, FB, VK, LDAP, GApps)
CRM
Questions & Answers
OpinionsAdmin tools
Search ProfileModeration
Calendar IntegrationsAPI
Mobile
FROM MONOLITH TO MICROSERVICES | SSO
OUR ROAD TO SINGLE SIGN-ON
Authentication
Is it really me?
Authorization
Am I allowed (authorized) to do that?
AUTHENTICATION VS. AUTHORIZATION | SSO
OUR ROAD TO SINGLE SIGN-ON
Calendar
Integrations
Authorization
Authentication
Q & A
Authorization
Authentication
Search
Profile
Authorization
Authentication
CRM
Authorization
Authentication
Opinions
Moderation
Authorization
Authentication
Admin tools
Authorization
Authentication
FROM MONOLITH TO MICROSERVICES | SSO
OUR ROAD TO SINGLE SIGN-ON
Calendar
Integrations
Authorization
LDAP
Q & A
Authorization
Form, FB, VK
Search
Profile
Authorization
Form, FB, VK
CRM
Authorization
LDAP, GApps
Opinions
Moderation
Authorization
Form, FB, VK
Admin tools
Authorization
LDAP, GApps
FROM MONOLITH TO MICROSERVICES | SSO
OUR ROAD TO SINGLE SIGN-ON
Search
Profile
Authorization
CRM
Authorization
Calendar
Integrations
Authorization
Opinions
Moderation
Authorization
Q & A
Authorization
Admin tools
Authorization
Authentication
Form, FB, VK
LDAP
GApps
FROM MONOLITH TO MICROSERVICES | SSO
OUR ROAD TO SINGLE SIGN-ON
A single place of login into multiple applications
(that are compatible with this Single Sign-On)
WHAT IS A SINGLE SIGN-ON | SSO
OUR ROAD TO SINGLE SIGN-ON
FROM MONOLITH TO MICROSERVICES | SSO
SRP
Single Responsibility Principle
OUR ROAD TO SINGLE SIGN-ON
FROM MONOLITH TO MICROSERVICES | SSO
SRP
Single
Responsibility
Principle
1. SSO is the only place 

that authenticates clients 

and users
2. Other apps and microservices 

shouldn’t care about

authentication
OUR ROAD TO SINGLE SIGN-ON
FROM MONOLITH TO MICROSERVICES | SSO
⧖
Multiple login
methods
SSO Auth
Domain apps
or microservices
OUR ROAD TO SINGLE SIGN-ON
FROM MONOLITH TO MICROSERVICES | SSO
MUCH
LOGIN
METHODS
WOW
OUR ROAD TO SINGLE SIGN-ON
HOW TO ACHIEVE THE GOAL
(CHALLENGE WEEK)
OUR ROAD TO SINGLE SIGN-ON
• product folks wants sth to be done
• we (devs) want sth to be done
• tech requirements
• tech debt
REASONS FOR NEW FEATURES | CHALLENGE WEEK
OUR ROAD TO SINGLE SIGN-ON
THE CONCEPT | CHALLENGE WEEK
• find something you want to do
• find a companion
• one week for planning
• one week for coding
• summary day
SSO
Me & Tomek
checked
MVP
OUR ROAD TO SINGLE SIGN-ON
IMPLEMENTATION
(FORDEC PROCEDURE)
OUR ROAD TO SINGLE SIGN-ON
FACTS | FORDEC PROCEDURE
• serious plans for building microservices
• authentication layer needs to be decoupled from monolith
• authentication must work in SPA’s
• authentication must work in API’s
• ability to login via 3rd parties (Facebook, LDAP, GApps etc.)
• keeping user data in-house is preferred
• 1-week time limit
OUR ROAD TO SINGLE SIGN-ON
OPTIONS | FORDEC PROCEDURE
• share session
• buy SaaS
• install SaaS in-house
• build custom microservice
OUR ROAD TO SINGLE SIGN-ON
RISKS & BENEFITS | FORDEC PROCEDURE
PROPRIETARY SOLUTIONSAAS / INSTALLED SAAS
• certain amount of job already done
• learning curve
• possible limitations
• latency
• possible cost-inefficiency
• end-of-life problems (f.ex. xpect.io)
• known technologies
• full control over data
• build from scratch
• security benefits
• maintenance time
OUR ROAD TO SINGLE SIGN-ON
DECIDE | FORDEC PROCEDURE
We decided to build our own solution after all
(there’s always a way to switch to SaaS if needed)
OUR ROAD TO SINGLE SIGN-ON
MICROSERVICE SSO 3RD PARTYCLIENT
EXECUTE | FORDEC PROCEDURE
OUR ROAD TO SINGLE SIGN-ON
LOGIN FLOW | EXECUTE | FORDEC PROCEDURE
MICROSERVICE SSO 3RD PARTYCLIENT
1
requests auth
7
returns user information
6
validates SSO token
2
requests OAuth token
3
returns OAuth token
5
requests resource w/ token
8
returns resource
4
SSO token / redirect
OUR ROAD TO SINGLE SIGN-ON
“REMEMBER ME” FLOW | EXECUTE | FORDEC PROCEDURE
MICROSERVICE SSO 3RD PARTYCLIENT
4
requests resource w/ token
3
SSO token / redirect
automatically logs user in
2
7
returns user information
6
validates SSO token
8
returns resource
1
requests auth
OUR ROAD TO SINGLE SIGN-ON
LOGOUT FLOW | EXECUTE | FORDEC PROCEDURE
MICROSERVICE SSO 3RD PARTYCLIENT
4
requests resource w/o token
3
204 no content / redirect
revokes access token(s)
2
6
returns no user information
5
validates SSO token
1
requests logout
7
403 unauthorised
OUR ROAD TO SINGLE SIGN-ON
We could use JWT
JWT | EXECUTE | FORDEC PROCEDURE
OUR ROAD TO SINGLE SIGN-ON
header
{
"alg": "HS256",
"typ": "JWT"
}
payload
{
"sub": "1234567890",
"name": "John Doe",
"admin": true
}
verify
signature
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
secret
)
ENCODEDDECODED
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXV
CJ9.eyJzdWIiOiIxMjM0NTY3ODkwIi
wibmFtZSI6IkpvaG4gRG9lIiwiYWRta
W4iOnRydWV9.TJVA95OrM7E2cBab3
0RMHrHDcEfxjoYZgeFONFh7HgQ
JWT STRUCTURE | EXECUTE | FORDEC PROCEDURE
OUR ROAD TO SINGLE SIGN-ON
CONSPROS
• no additional requests
• SPA friendly
• easy interchangeable w/ access token
• reuses “Authorization: Bearer [token]” header
• unaware of changes
• valid forever
• cannot be invalidated
JWT PROS & CONS | EXECUTE | FORDEC PROCEDURE
OUR ROAD TO SINGLE SIGN-ON
EXAMPLE STACK | EXECUTE | FORDEC PROCEDURE
• Symfony 3
• FOSOAuthServer - for integrating microservices with SSO
• HWIOAuthBundle - for integrating SSO with 3rd parties
• NelmioCorsBundle - for allowing SPA’s to communicate with SSO
OUR ROAD TO SINGLE SIGN-ON
HOW TO DEPLOY IT?
OUR ROAD TO SINGLE SIGN-ON
DEPLOYMENT STRATEGY | EXECUTE | FORDEC PROCEDURE
OUR ROAD TO SINGLE SIGN-ON
in-house tests
few smaller markets
big market
everywhere
DEPLOYMENT STRATEGY | EXECUTE | FORDEC PROCEDURE
feedback
feedback
feedback
adjustments
adjustments
adjustments
OUR ROAD TO SINGLE SIGN-ON
GATEKEEPER | EXECUTE | FORDEC PROCEDURE
GateKeeper
OUR ROAD TO SINGLE SIGN-ON
• manages every state of a feature
• disabled
• enabled in-house
• enabled everywhere
• separated by locale
• state switch takes seconds
• syncs with app caches
GATEKEEPER | EXECUTE | FORDEC PROCEDURE
OUR ROAD TO SINGLE SIGN-ON
GATEKEEPER - HOW TO USE IT? | EXECUTE | FORDEC PROCEDURE
OUR ROAD TO SINGLE SIGN-ON
GATEKEEPER | EXECUTE | FORDEC PROCEDURE
• Available on GitHub (ZnanyLekarz/GateKeeper)
• lightweight and cached
• integrated w/ Symfony
OUR ROAD TO SINGLE SIGN-ON
BENEFITS
OUR ROAD TO SINGLE SIGN-ON
USER EXPERIENCE | BENEFITS
• entry point for Doctoralia
• consistent flow
• process transparency
• single-click login is a time saver
• login to every microservice via 3rd parties
• users and employees happier
OUR ROAD TO SINGLE SIGN-ON
SECURITY | BENEFITS
• only 1 place where users are prompted for their passwords
• microservices are unaware of users’ credentials
• a place to manage users’ accounts and login sessions
• ability to logout from many services at once
• easy user/application banning
OUR ROAD TO SINGLE SIGN-ON
DEVELOPER EXPERIENCE | BENEFITS
• fun and satisfaction :)
• separated codebase
• easy to connect new microservices
OUR ROAD TO SINGLE SIGN-ON
REMEMBER
Sometimes a week is all it takes!
OUR ROAD TO SINGLE SIGN-ON
THANK YOU!
docplanner.com/career
Join us!

Más contenido relacionado

La actualidad más candente

OpenID Connect and Single Sign-On for Beginners
OpenID Connect and Single Sign-On for BeginnersOpenID Connect and Single Sign-On for Beginners
OpenID Connect and Single Sign-On for BeginnersSalesforce Developers
 
SSO IN/With Drupal and Identitiy Management
SSO IN/With Drupal and Identitiy ManagementSSO IN/With Drupal and Identitiy Management
SSO IN/With Drupal and Identitiy ManagementManish Harsh
 
CIS14: OAuth and OpenID Connect in Action
CIS14: OAuth and OpenID Connect in ActionCIS14: OAuth and OpenID Connect in Action
CIS14: OAuth and OpenID Connect in ActionCloudIDSummit
 
Shoot Me a Token: OpenAM as an OAuth2 Provider
Shoot Me a Token: OpenAM as an OAuth2 ProviderShoot Me a Token: OpenAM as an OAuth2 Provider
Shoot Me a Token: OpenAM as an OAuth2 ProviderForgeRock
 
Enterprise single sign on
Enterprise single sign onEnterprise single sign on
Enterprise single sign onArchit Sharma
 
SAP Single Sign-On 2.0 Overview
SAP Single Sign-On 2.0 OverviewSAP Single Sign-On 2.0 Overview
SAP Single Sign-On 2.0 OverviewSAP Technology
 
Saml vs Oauth : Which one should I use?
Saml vs Oauth : Which one should I use?Saml vs Oauth : Which one should I use?
Saml vs Oauth : Which one should I use?Anil Saldanha
 
Introduction to SAML 2.0
Introduction to SAML 2.0Introduction to SAML 2.0
Introduction to SAML 2.0Mika Koivisto
 
SSO using CAS + two-factor authentication (PyGrunn 2014 talk)
SSO using CAS + two-factor authentication (PyGrunn 2014 talk)SSO using CAS + two-factor authentication (PyGrunn 2014 talk)
SSO using CAS + two-factor authentication (PyGrunn 2014 talk)Artur Barseghyan
 
Enterprise Single Sign On
Enterprise Single Sign On Enterprise Single Sign On
Enterprise Single Sign On WSO2
 
CAS Enhancement
CAS EnhancementCAS Enhancement
CAS EnhancementGuo Albert
 
Introducing SAML 2.0 Protocol: Security and Performance
Introducing SAML 2.0 Protocol: Security and PerformanceIntroducing SAML 2.0 Protocol: Security and Performance
Introducing SAML 2.0 Protocol: Security and PerformanceAmin Saqi
 
Jasig Central Authentication Service in Ten Minutes
Jasig Central Authentication Service in Ten MinutesJasig Central Authentication Service in Ten Minutes
Jasig Central Authentication Service in Ten MinutesAndrew Petro
 
Simplifying The S's: Single Sign-On, SPNEGO and SAML
Simplifying The S's: Single Sign-On, SPNEGO and SAMLSimplifying The S's: Single Sign-On, SPNEGO and SAML
Simplifying The S's: Single Sign-On, SPNEGO and SAMLGabriella Davis
 
OpenID Connect: The new standard for connecting to your Customers, Partners, ...
OpenID Connect: The new standard for connecting to your Customers, Partners, ...OpenID Connect: The new standard for connecting to your Customers, Partners, ...
OpenID Connect: The new standard for connecting to your Customers, Partners, ...Salesforce Developers
 

La actualidad más candente (20)

Single sign on
Single sign onSingle sign on
Single sign on
 
SINGLE SIGN-ON
SINGLE SIGN-ONSINGLE SIGN-ON
SINGLE SIGN-ON
 
OpenID Connect and Single Sign-On for Beginners
OpenID Connect and Single Sign-On for BeginnersOpenID Connect and Single Sign-On for Beginners
OpenID Connect and Single Sign-On for Beginners
 
SSO IN/With Drupal and Identitiy Management
SSO IN/With Drupal and Identitiy ManagementSSO IN/With Drupal and Identitiy Management
SSO IN/With Drupal and Identitiy Management
 
CIS14: OAuth and OpenID Connect in Action
CIS14: OAuth and OpenID Connect in ActionCIS14: OAuth and OpenID Connect in Action
CIS14: OAuth and OpenID Connect in Action
 
Shoot Me a Token: OpenAM as an OAuth2 Provider
Shoot Me a Token: OpenAM as an OAuth2 ProviderShoot Me a Token: OpenAM as an OAuth2 Provider
Shoot Me a Token: OpenAM as an OAuth2 Provider
 
Enterprise single sign on
Enterprise single sign onEnterprise single sign on
Enterprise single sign on
 
Single sign on using SAML
Single sign on using SAML Single sign on using SAML
Single sign on using SAML
 
SAP Single Sign-On 2.0 Overview
SAP Single Sign-On 2.0 OverviewSAP Single Sign-On 2.0 Overview
SAP Single Sign-On 2.0 Overview
 
Saml vs Oauth : Which one should I use?
Saml vs Oauth : Which one should I use?Saml vs Oauth : Which one should I use?
Saml vs Oauth : Which one should I use?
 
Introduction to SAML 2.0
Introduction to SAML 2.0Introduction to SAML 2.0
Introduction to SAML 2.0
 
IdP, SAML, OAuth
IdP, SAML, OAuthIdP, SAML, OAuth
IdP, SAML, OAuth
 
Single Sign-On Best Practices
Single Sign-On Best PracticesSingle Sign-On Best Practices
Single Sign-On Best Practices
 
SSO using CAS + two-factor authentication (PyGrunn 2014 talk)
SSO using CAS + two-factor authentication (PyGrunn 2014 talk)SSO using CAS + two-factor authentication (PyGrunn 2014 talk)
SSO using CAS + two-factor authentication (PyGrunn 2014 talk)
 
Enterprise Single Sign On
Enterprise Single Sign On Enterprise Single Sign On
Enterprise Single Sign On
 
CAS Enhancement
CAS EnhancementCAS Enhancement
CAS Enhancement
 
Introducing SAML 2.0 Protocol: Security and Performance
Introducing SAML 2.0 Protocol: Security and PerformanceIntroducing SAML 2.0 Protocol: Security and Performance
Introducing SAML 2.0 Protocol: Security and Performance
 
Jasig Central Authentication Service in Ten Minutes
Jasig Central Authentication Service in Ten MinutesJasig Central Authentication Service in Ten Minutes
Jasig Central Authentication Service in Ten Minutes
 
Simplifying The S's: Single Sign-On, SPNEGO and SAML
Simplifying The S's: Single Sign-On, SPNEGO and SAMLSimplifying The S's: Single Sign-On, SPNEGO and SAML
Simplifying The S's: Single Sign-On, SPNEGO and SAML
 
OpenID Connect: The new standard for connecting to your Customers, Partners, ...
OpenID Connect: The new standard for connecting to your Customers, Partners, ...OpenID Connect: The new standard for connecting to your Customers, Partners, ...
OpenID Connect: The new standard for connecting to your Customers, Partners, ...
 

Destacado

Single Sign On in Ruby - Enterprise Ready!
Single Sign On in Ruby - Enterprise Ready!Single Sign On in Ruby - Enterprise Ready!
Single Sign On in Ruby - Enterprise Ready!Nikos Dimitrakopoulos
 
Single Sign-On, Two Factor & more: Advanced Authentication & Authorization at...
Single Sign-On, Two Factor & more: Advanced Authentication & Authorization at...Single Sign-On, Two Factor & more: Advanced Authentication & Authorization at...
Single Sign-On, Two Factor & more: Advanced Authentication & Authorization at...Shumon Huque
 
Road sign ppt templates
Road sign ppt templatesRoad sign ppt templates
Road sign ppt templatesSlideTeam.net
 
Weather and weather instruments (thursday)
Weather and weather instruments (thursday)Weather and weather instruments (thursday)
Weather and weather instruments (thursday)Victor F. Melitante Jr.
 
Weather instruments-Year 4 SK
Weather instruments-Year 4 SKWeather instruments-Year 4 SK
Weather instruments-Year 4 SKarni hazri
 
Automatic Road Sign Recognition From Video
Automatic Road Sign Recognition From VideoAutomatic Road Sign Recognition From Video
Automatic Road Sign Recognition From VideoDr Wei Liu
 
weather instruments and maps, no video ppt
weather instruments and maps, no video pptweather instruments and maps, no video ppt
weather instruments and maps, no video pptjdlowe78
 
Enterprise Single Sign-On - SSO
Enterprise Single Sign-On - SSOEnterprise Single Sign-On - SSO
Enterprise Single Sign-On - SSOOliver Mueller
 
Weather instruments
Weather instrumentsWeather instruments
Weather instrumentsatyler29
 
Weather and Weather Elements
Weather and Weather ElementsWeather and Weather Elements
Weather and Weather ElementsLeah Burbos
 
mga pagdiriwang na pansibiko
mga pagdiriwang na pansibiko mga pagdiriwang na pansibiko
mga pagdiriwang na pansibiko moldsky
 
Traffic signal
Traffic signalTraffic signal
Traffic signalaloknitb
 
Weather instruments
Weather instrumentsWeather instruments
Weather instrumentsSlasiter
 
Yunit iv aralin 5 kahulugan at kahalagahan ng gawaing pansibiko
Yunit iv aralin 5 kahulugan at kahalagahan   ng gawaing pansibikoYunit iv aralin 5 kahulugan at kahalagahan   ng gawaing pansibiko
Yunit iv aralin 5 kahulugan at kahalagahan ng gawaing pansibikoEDITHA HONRADEZ
 
Yunit iv aralin 5 kahulugan at kahalagahan ng gawaing pansibiko
Yunit iv aralin 5 kahulugan at kahalagahan   ng gawaing pansibikoYunit iv aralin 5 kahulugan at kahalagahan   ng gawaing pansibiko
Yunit iv aralin 5 kahulugan at kahalagahan ng gawaing pansibikoEDITHA HONRADEZ
 
Weather instruments ppt for students
Weather instruments ppt for studentsWeather instruments ppt for students
Weather instruments ppt for studentsAditya Ghosh
 

Destacado (20)

Single Sign On in Ruby - Enterprise Ready!
Single Sign On in Ruby - Enterprise Ready!Single Sign On in Ruby - Enterprise Ready!
Single Sign On in Ruby - Enterprise Ready!
 
Single Sign-On, Two Factor & more: Advanced Authentication & Authorization at...
Single Sign-On, Two Factor & more: Advanced Authentication & Authorization at...Single Sign-On, Two Factor & more: Advanced Authentication & Authorization at...
Single Sign-On, Two Factor & more: Advanced Authentication & Authorization at...
 
Road sign
Road signRoad sign
Road sign
 
Road sign ppt templates
Road sign ppt templatesRoad sign ppt templates
Road sign ppt templates
 
Weather and weather instruments (thursday)
Weather and weather instruments (thursday)Weather and weather instruments (thursday)
Weather and weather instruments (thursday)
 
Weather instruments-Year 4 SK
Weather instruments-Year 4 SKWeather instruments-Year 4 SK
Weather instruments-Year 4 SK
 
Automatic Road Sign Recognition From Video
Automatic Road Sign Recognition From VideoAutomatic Road Sign Recognition From Video
Automatic Road Sign Recognition From Video
 
Traffic signal
Traffic signalTraffic signal
Traffic signal
 
weather instruments and maps, no video ppt
weather instruments and maps, no video pptweather instruments and maps, no video ppt
weather instruments and maps, no video ppt
 
Enterprise Single Sign-On - SSO
Enterprise Single Sign-On - SSOEnterprise Single Sign-On - SSO
Enterprise Single Sign-On - SSO
 
Weather instruments
Weather instrumentsWeather instruments
Weather instruments
 
Weather instruments
Weather instrumentsWeather instruments
Weather instruments
 
Weather and Weather Elements
Weather and Weather ElementsWeather and Weather Elements
Weather and Weather Elements
 
mga pagdiriwang na pansibiko
mga pagdiriwang na pansibiko mga pagdiriwang na pansibiko
mga pagdiriwang na pansibiko
 
Traffic signal
Traffic signalTraffic signal
Traffic signal
 
Weather instruments
Weather instrumentsWeather instruments
Weather instruments
 
Traffic Signs
Traffic SignsTraffic Signs
Traffic Signs
 
Yunit iv aralin 5 kahulugan at kahalagahan ng gawaing pansibiko
Yunit iv aralin 5 kahulugan at kahalagahan   ng gawaing pansibikoYunit iv aralin 5 kahulugan at kahalagahan   ng gawaing pansibiko
Yunit iv aralin 5 kahulugan at kahalagahan ng gawaing pansibiko
 
Yunit iv aralin 5 kahulugan at kahalagahan ng gawaing pansibiko
Yunit iv aralin 5 kahulugan at kahalagahan   ng gawaing pansibikoYunit iv aralin 5 kahulugan at kahalagahan   ng gawaing pansibiko
Yunit iv aralin 5 kahulugan at kahalagahan ng gawaing pansibiko
 
Weather instruments ppt for students
Weather instruments ppt for studentsWeather instruments ppt for students
Weather instruments ppt for students
 

Similar a Our road to Single Sign-On, DocPlanner

US census Bureau - Platform Modernization
US census Bureau - Platform ModernizationUS census Bureau - Platform Modernization
US census Bureau - Platform ModernizationRam Lakshmanan
 
Optimizing IAM with Single Sign-On From the Cloud to On-Premise
Optimizing IAM with Single Sign-On From the Cloud to On-PremiseOptimizing IAM with Single Sign-On From the Cloud to On-Premise
Optimizing IAM with Single Sign-On From the Cloud to On-Premisemycroftinc
 
WSO2Con US 2013 - Connected Business - making it happen
WSO2Con US 2013 - Connected Business - making it happenWSO2Con US 2013 - Connected Business - making it happen
WSO2Con US 2013 - Connected Business - making it happenWSO2
 
Serverless Evolution during 3 years of Serverless Toronto
Serverless Evolution during 3 years of Serverless TorontoServerless Evolution during 3 years of Serverless Toronto
Serverless Evolution during 3 years of Serverless TorontoDaniel Zivkovic
 
Atlassian Executive Business Forum - LinkedIn HQ
Atlassian Executive Business Forum - LinkedIn HQAtlassian Executive Business Forum - LinkedIn HQ
Atlassian Executive Business Forum - LinkedIn HQServiceRocket
 
Microservices: Lessons from the Trenches
Microservices: Lessons from the TrenchesMicroservices: Lessons from the Trenches
Microservices: Lessons from the TrenchesGregory Beamer
 
The Business Case for OSGi Technology & Unveiling Release 4 - Susan Schwarze,...
The Business Case for OSGi Technology & Unveiling Release 4 - Susan Schwarze,...The Business Case for OSGi Technology & Unveiling Release 4 - Susan Schwarze,...
The Business Case for OSGi Technology & Unveiling Release 4 - Susan Schwarze,...mfrancis
 
WSO2Con EU 2015: Opening Keynote - Helping You Connect the World
WSO2Con EU 2015: Opening Keynote - Helping You Connect the WorldWSO2Con EU 2015: Opening Keynote - Helping You Connect the World
WSO2Con EU 2015: Opening Keynote - Helping You Connect the WorldWSO2
 
Growth Hacking with Digital Marketing
Growth Hacking with Digital MarketingGrowth Hacking with Digital Marketing
Growth Hacking with Digital MarketingNavneet Kaushal
 
Powercode Company Overview & Partnership Opportunities
Powercode Company Overview & Partnership OpportunitiesPowercode Company Overview & Partnership Opportunities
Powercode Company Overview & Partnership OpportunitiesPowercode
 
User Friendly 2013 Sharing / Better service better service design slideshare ...
User Friendly 2013 Sharing / Better service better service design slideshare ...User Friendly 2013 Sharing / Better service better service design slideshare ...
User Friendly 2013 Sharing / Better service better service design slideshare ...NTUST
 
Getting out of the monolith hell
Getting out of the monolith hellGetting out of the monolith hell
Getting out of the monolith hellmimmozzo_
 
Overboard.js - where are we going with with jsconfasia / devfestasia
Overboard.js - where are we going with with jsconfasia / devfestasiaOverboard.js - where are we going with with jsconfasia / devfestasia
Overboard.js - where are we going with with jsconfasia / devfestasiaChristian Heilmann
 
Chat Bots - ReignDesign
Chat Bots - ReignDesignChat Bots - ReignDesign
Chat Bots - ReignDesignMatt Mayer
 
What is the Siemens Open Library, and How it Decreased Development Time for E...
What is the Siemens Open Library, and How it Decreased Development Time for E...What is the Siemens Open Library, and How it Decreased Development Time for E...
What is the Siemens Open Library, and How it Decreased Development Time for E...DMC, Inc.
 
A Journey Down the Open Road - SymfonyCon Paris 2015
A Journey Down the Open Road - SymfonyCon Paris 2015A Journey Down the Open Road - SymfonyCon Paris 2015
A Journey Down the Open Road - SymfonyCon Paris 2015Yoav Kutner
 
Tuli eServices_Mobile portfolio
 Tuli eServices_Mobile portfolio Tuli eServices_Mobile portfolio
Tuli eServices_Mobile portfolioTULI eServices Inc.
 
The business case for contributing code
The business case for contributing codeThe business case for contributing code
The business case for contributing codeZivtech, LLC
 
Application Performance Monitoring from end user to Oracle Java Cloud Service...
Application Performance Monitoring from end user to Oracle Java Cloud Service...Application Performance Monitoring from end user to Oracle Java Cloud Service...
Application Performance Monitoring from end user to Oracle Java Cloud Service...Lucas Jellema
 
6 ways DevOps helped PrepSportswear move from monolith to microservices
6 ways DevOps helped PrepSportswear move from monolith to microservices6 ways DevOps helped PrepSportswear move from monolith to microservices
6 ways DevOps helped PrepSportswear move from monolith to microservicesDynatrace
 

Similar a Our road to Single Sign-On, DocPlanner (20)

US census Bureau - Platform Modernization
US census Bureau - Platform ModernizationUS census Bureau - Platform Modernization
US census Bureau - Platform Modernization
 
Optimizing IAM with Single Sign-On From the Cloud to On-Premise
Optimizing IAM with Single Sign-On From the Cloud to On-PremiseOptimizing IAM with Single Sign-On From the Cloud to On-Premise
Optimizing IAM with Single Sign-On From the Cloud to On-Premise
 
WSO2Con US 2013 - Connected Business - making it happen
WSO2Con US 2013 - Connected Business - making it happenWSO2Con US 2013 - Connected Business - making it happen
WSO2Con US 2013 - Connected Business - making it happen
 
Serverless Evolution during 3 years of Serverless Toronto
Serverless Evolution during 3 years of Serverless TorontoServerless Evolution during 3 years of Serverless Toronto
Serverless Evolution during 3 years of Serverless Toronto
 
Atlassian Executive Business Forum - LinkedIn HQ
Atlassian Executive Business Forum - LinkedIn HQAtlassian Executive Business Forum - LinkedIn HQ
Atlassian Executive Business Forum - LinkedIn HQ
 
Microservices: Lessons from the Trenches
Microservices: Lessons from the TrenchesMicroservices: Lessons from the Trenches
Microservices: Lessons from the Trenches
 
The Business Case for OSGi Technology & Unveiling Release 4 - Susan Schwarze,...
The Business Case for OSGi Technology & Unveiling Release 4 - Susan Schwarze,...The Business Case for OSGi Technology & Unveiling Release 4 - Susan Schwarze,...
The Business Case for OSGi Technology & Unveiling Release 4 - Susan Schwarze,...
 
WSO2Con EU 2015: Opening Keynote - Helping You Connect the World
WSO2Con EU 2015: Opening Keynote - Helping You Connect the WorldWSO2Con EU 2015: Opening Keynote - Helping You Connect the World
WSO2Con EU 2015: Opening Keynote - Helping You Connect the World
 
Growth Hacking with Digital Marketing
Growth Hacking with Digital MarketingGrowth Hacking with Digital Marketing
Growth Hacking with Digital Marketing
 
Powercode Company Overview & Partnership Opportunities
Powercode Company Overview & Partnership OpportunitiesPowercode Company Overview & Partnership Opportunities
Powercode Company Overview & Partnership Opportunities
 
User Friendly 2013 Sharing / Better service better service design slideshare ...
User Friendly 2013 Sharing / Better service better service design slideshare ...User Friendly 2013 Sharing / Better service better service design slideshare ...
User Friendly 2013 Sharing / Better service better service design slideshare ...
 
Getting out of the monolith hell
Getting out of the monolith hellGetting out of the monolith hell
Getting out of the monolith hell
 
Overboard.js - where are we going with with jsconfasia / devfestasia
Overboard.js - where are we going with with jsconfasia / devfestasiaOverboard.js - where are we going with with jsconfasia / devfestasia
Overboard.js - where are we going with with jsconfasia / devfestasia
 
Chat Bots - ReignDesign
Chat Bots - ReignDesignChat Bots - ReignDesign
Chat Bots - ReignDesign
 
What is the Siemens Open Library, and How it Decreased Development Time for E...
What is the Siemens Open Library, and How it Decreased Development Time for E...What is the Siemens Open Library, and How it Decreased Development Time for E...
What is the Siemens Open Library, and How it Decreased Development Time for E...
 
A Journey Down the Open Road - SymfonyCon Paris 2015
A Journey Down the Open Road - SymfonyCon Paris 2015A Journey Down the Open Road - SymfonyCon Paris 2015
A Journey Down the Open Road - SymfonyCon Paris 2015
 
Tuli eServices_Mobile portfolio
 Tuli eServices_Mobile portfolio Tuli eServices_Mobile portfolio
Tuli eServices_Mobile portfolio
 
The business case for contributing code
The business case for contributing codeThe business case for contributing code
The business case for contributing code
 
Application Performance Monitoring from end user to Oracle Java Cloud Service...
Application Performance Monitoring from end user to Oracle Java Cloud Service...Application Performance Monitoring from end user to Oracle Java Cloud Service...
Application Performance Monitoring from end user to Oracle Java Cloud Service...
 
6 ways DevOps helped PrepSportswear move from monolith to microservices
6 ways DevOps helped PrepSportswear move from monolith to microservices6 ways DevOps helped PrepSportswear move from monolith to microservices
6 ways DevOps helped PrepSportswear move from monolith to microservices
 

Último

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 

Último (20)

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 

Our road to Single Sign-On, DocPlanner

  • 1. OUR ROAD TO SINGLE SIGN-ON
  • 2. OUR ROAD TO SINGLE SIGN-ON Maciej Szkamruk (@ex3v) • backend dev@activation team • joined DP ~1.5 years ago • huge fan of cooking, cheap memes
 and code that really helps people Tomasz Wojcik (@prgTW) • backend dev@CRM team • been with DP since dinosaurs • worships Grumpy Cat, morning coffee
 and code reviews in the middle of the night WHO ARE WE?
  • 3. OUR ROAD TO SINGLE SIGN-ON We are We help people find doctors online WHO ARE WE?
  • 4. OUR ROAD TO SINGLE SIGN-ON A BIT OF HISTORY
  • 5. OUR ROAD TO SINGLE SIGN-ON HOW IT ALL STARTED | HISTORY • branched off from GoldenLine • founded to share opinions about doctors • ads were the only source of income • about 5 people onboard
  • 6. OUR ROAD TO SINGLE SIGN-ON CALENDAR - MVP THAT GOT SERIOUS | HISTORY • first step: mockups only • visitors were curious about it… therefore MVP • first deals with doctors • 2k visits booked during 1st quarter
  • 7. OUR ROAD TO SINGLE SIGN-ON ~4 years ago BEFORE VS. NOW | HISTORY 2k visits booked during 1st quarter
  • 8. OUR ROAD TO SINGLE SIGN-ON ~4 years ago 2k visits booked every few hours! today BEFORE VS. NOW | HISTORY 2k visits booked during 1st quarter
  • 9. OUR ROAD TO SINGLE SIGN-ON Poland FIRST MARKET | HISTORY
  • 10. OUR ROAD TO SINGLE SIGN-ON Poland Colombia Spain HungaryPeru Argentina Brazil Czech Republic Germany Sweden Ukraine Austria Bulgaria France India Italy Portugal South Africa CURRENT MARKETS | HISTORY Chile Turkey Mexico Russia Slovakia
  • 11. OUR ROAD TO SINGLE SIGN-ON • over 100GB of production data • 17M requests and 100GB of logs every day • ~2.7M SLOC & 10k new SLOCs every week • about 30 folks in IT & Product LET’S TALK NUMBERS | HISTORY
  • 12. OUR ROAD TO SINGLE SIGN-ON LET’S TALK MONEY | HISTORY • every startup needs money to grow • few financing rounds, $34M raised • $20M raised in last (series C) round
  • 13. OUR ROAD TO SINGLE SIGN-ON LET’S TALK MONEY | HISTORY
  • 14. OUR ROAD TO SINGLE SIGN-ON + DOCTORALIA MERGE | HISTORY
  • 15. OUR ROAD TO SINGLE SIGN-ON + • relational • PHP • monolith • mostly non-relational • C# • splitted into few apps DOCTORALIA MERGE | HISTORY
  • 16. OUR ROAD TO SINGLE SIGN-ON OK, BUT WHERE’S SSO IN IT?
  • 17. OUR ROAD TO SINGLE SIGN-ON FROM MONOLITH TO MICROSERVICES | SSO The Ugly Monolith
  • 18. OUR ROAD TO SINGLE SIGN-ON • DocPlanner is getting slower • ~2.7M lines of code • we want coherence between
 DocPlanner and Doctoralia FROM MONOLITH TO MICROSERVICES | SSO
  • 19. OUR ROAD TO SINGLE SIGN-ON CRM OpinionsAdmin tools Search ProfileModeration Calendar IntegrationsAPI Questions & Answers Mobile FROM MONOLITH TO MICROSERVICES | SSO
  • 20. OUR ROAD TO SINGLE SIGN-ON Authorization CRM Questions & Answers OpinionsAdmin tools Search ProfileModeration Calendar IntegrationsAPI Mobile FROM MONOLITH TO MICROSERVICES | SSO
  • 21. OUR ROAD TO SINGLE SIGN-ON Authorization Authentication CRM Questions & Answers OpinionsAdmin tools Search ProfileModeration Calendar IntegrationsAPI Mobile FROM MONOLITH TO MICROSERVICES | SSO
  • 22. OUR ROAD TO SINGLE SIGN-ON Authorization Authentication (Form, FB, VK, LDAP, GApps) CRM Questions & Answers OpinionsAdmin tools Search ProfileModeration Calendar IntegrationsAPI Mobile FROM MONOLITH TO MICROSERVICES | SSO
  • 23. OUR ROAD TO SINGLE SIGN-ON Authentication Is it really me? Authorization Am I allowed (authorized) to do that? AUTHENTICATION VS. AUTHORIZATION | SSO
  • 24. OUR ROAD TO SINGLE SIGN-ON Calendar Integrations Authorization Authentication Q & A Authorization Authentication Search Profile Authorization Authentication CRM Authorization Authentication Opinions Moderation Authorization Authentication Admin tools Authorization Authentication FROM MONOLITH TO MICROSERVICES | SSO
  • 25. OUR ROAD TO SINGLE SIGN-ON Calendar Integrations Authorization LDAP Q & A Authorization Form, FB, VK Search Profile Authorization Form, FB, VK CRM Authorization LDAP, GApps Opinions Moderation Authorization Form, FB, VK Admin tools Authorization LDAP, GApps FROM MONOLITH TO MICROSERVICES | SSO
  • 26. OUR ROAD TO SINGLE SIGN-ON Search Profile Authorization CRM Authorization Calendar Integrations Authorization Opinions Moderation Authorization Q & A Authorization Admin tools Authorization Authentication Form, FB, VK LDAP GApps FROM MONOLITH TO MICROSERVICES | SSO
  • 27. OUR ROAD TO SINGLE SIGN-ON A single place of login into multiple applications (that are compatible with this Single Sign-On) WHAT IS A SINGLE SIGN-ON | SSO
  • 28. OUR ROAD TO SINGLE SIGN-ON FROM MONOLITH TO MICROSERVICES | SSO SRP Single Responsibility Principle
  • 29. OUR ROAD TO SINGLE SIGN-ON FROM MONOLITH TO MICROSERVICES | SSO SRP Single Responsibility Principle 1. SSO is the only place 
 that authenticates clients 
 and users 2. Other apps and microservices 
 shouldn’t care about
 authentication
  • 30. OUR ROAD TO SINGLE SIGN-ON FROM MONOLITH TO MICROSERVICES | SSO ⧖ Multiple login methods SSO Auth Domain apps or microservices
  • 31. OUR ROAD TO SINGLE SIGN-ON FROM MONOLITH TO MICROSERVICES | SSO MUCH LOGIN METHODS WOW
  • 32. OUR ROAD TO SINGLE SIGN-ON HOW TO ACHIEVE THE GOAL (CHALLENGE WEEK)
  • 33. OUR ROAD TO SINGLE SIGN-ON • product folks wants sth to be done • we (devs) want sth to be done • tech requirements • tech debt REASONS FOR NEW FEATURES | CHALLENGE WEEK
  • 34. OUR ROAD TO SINGLE SIGN-ON THE CONCEPT | CHALLENGE WEEK • find something you want to do • find a companion • one week for planning • one week for coding • summary day SSO Me & Tomek checked MVP
  • 35. OUR ROAD TO SINGLE SIGN-ON IMPLEMENTATION (FORDEC PROCEDURE)
  • 36. OUR ROAD TO SINGLE SIGN-ON FACTS | FORDEC PROCEDURE • serious plans for building microservices • authentication layer needs to be decoupled from monolith • authentication must work in SPA’s • authentication must work in API’s • ability to login via 3rd parties (Facebook, LDAP, GApps etc.) • keeping user data in-house is preferred • 1-week time limit
  • 37. OUR ROAD TO SINGLE SIGN-ON OPTIONS | FORDEC PROCEDURE • share session • buy SaaS • install SaaS in-house • build custom microservice
  • 38. OUR ROAD TO SINGLE SIGN-ON RISKS & BENEFITS | FORDEC PROCEDURE PROPRIETARY SOLUTIONSAAS / INSTALLED SAAS • certain amount of job already done • learning curve • possible limitations • latency • possible cost-inefficiency • end-of-life problems (f.ex. xpect.io) • known technologies • full control over data • build from scratch • security benefits • maintenance time
  • 39. OUR ROAD TO SINGLE SIGN-ON DECIDE | FORDEC PROCEDURE We decided to build our own solution after all (there’s always a way to switch to SaaS if needed)
  • 40. OUR ROAD TO SINGLE SIGN-ON MICROSERVICE SSO 3RD PARTYCLIENT EXECUTE | FORDEC PROCEDURE
  • 41. OUR ROAD TO SINGLE SIGN-ON LOGIN FLOW | EXECUTE | FORDEC PROCEDURE MICROSERVICE SSO 3RD PARTYCLIENT 1 requests auth 7 returns user information 6 validates SSO token 2 requests OAuth token 3 returns OAuth token 5 requests resource w/ token 8 returns resource 4 SSO token / redirect
  • 42. OUR ROAD TO SINGLE SIGN-ON “REMEMBER ME” FLOW | EXECUTE | FORDEC PROCEDURE MICROSERVICE SSO 3RD PARTYCLIENT 4 requests resource w/ token 3 SSO token / redirect automatically logs user in 2 7 returns user information 6 validates SSO token 8 returns resource 1 requests auth
  • 43. OUR ROAD TO SINGLE SIGN-ON LOGOUT FLOW | EXECUTE | FORDEC PROCEDURE MICROSERVICE SSO 3RD PARTYCLIENT 4 requests resource w/o token 3 204 no content / redirect revokes access token(s) 2 6 returns no user information 5 validates SSO token 1 requests logout 7 403 unauthorised
  • 44. OUR ROAD TO SINGLE SIGN-ON We could use JWT JWT | EXECUTE | FORDEC PROCEDURE
  • 45. OUR ROAD TO SINGLE SIGN-ON header { "alg": "HS256", "typ": "JWT" } payload { "sub": "1234567890", "name": "John Doe", "admin": true } verify signature HMACSHA256( base64UrlEncode(header) + "." + base64UrlEncode(payload), secret ) ENCODEDDECODED eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXV CJ9.eyJzdWIiOiIxMjM0NTY3ODkwIi wibmFtZSI6IkpvaG4gRG9lIiwiYWRta W4iOnRydWV9.TJVA95OrM7E2cBab3 0RMHrHDcEfxjoYZgeFONFh7HgQ JWT STRUCTURE | EXECUTE | FORDEC PROCEDURE
  • 46. OUR ROAD TO SINGLE SIGN-ON CONSPROS • no additional requests • SPA friendly • easy interchangeable w/ access token • reuses “Authorization: Bearer [token]” header • unaware of changes • valid forever • cannot be invalidated JWT PROS & CONS | EXECUTE | FORDEC PROCEDURE
  • 47. OUR ROAD TO SINGLE SIGN-ON EXAMPLE STACK | EXECUTE | FORDEC PROCEDURE • Symfony 3 • FOSOAuthServer - for integrating microservices with SSO • HWIOAuthBundle - for integrating SSO with 3rd parties • NelmioCorsBundle - for allowing SPA’s to communicate with SSO
  • 48. OUR ROAD TO SINGLE SIGN-ON HOW TO DEPLOY IT?
  • 49. OUR ROAD TO SINGLE SIGN-ON DEPLOYMENT STRATEGY | EXECUTE | FORDEC PROCEDURE
  • 50. OUR ROAD TO SINGLE SIGN-ON in-house tests few smaller markets big market everywhere DEPLOYMENT STRATEGY | EXECUTE | FORDEC PROCEDURE feedback feedback feedback adjustments adjustments adjustments
  • 51. OUR ROAD TO SINGLE SIGN-ON GATEKEEPER | EXECUTE | FORDEC PROCEDURE GateKeeper
  • 52. OUR ROAD TO SINGLE SIGN-ON • manages every state of a feature • disabled • enabled in-house • enabled everywhere • separated by locale • state switch takes seconds • syncs with app caches GATEKEEPER | EXECUTE | FORDEC PROCEDURE
  • 53. OUR ROAD TO SINGLE SIGN-ON GATEKEEPER - HOW TO USE IT? | EXECUTE | FORDEC PROCEDURE
  • 54. OUR ROAD TO SINGLE SIGN-ON GATEKEEPER | EXECUTE | FORDEC PROCEDURE • Available on GitHub (ZnanyLekarz/GateKeeper) • lightweight and cached • integrated w/ Symfony
  • 55. OUR ROAD TO SINGLE SIGN-ON BENEFITS
  • 56. OUR ROAD TO SINGLE SIGN-ON USER EXPERIENCE | BENEFITS • entry point for Doctoralia • consistent flow • process transparency • single-click login is a time saver • login to every microservice via 3rd parties • users and employees happier
  • 57. OUR ROAD TO SINGLE SIGN-ON SECURITY | BENEFITS • only 1 place where users are prompted for their passwords • microservices are unaware of users’ credentials • a place to manage users’ accounts and login sessions • ability to logout from many services at once • easy user/application banning
  • 58. OUR ROAD TO SINGLE SIGN-ON DEVELOPER EXPERIENCE | BENEFITS • fun and satisfaction :) • separated codebase • easy to connect new microservices
  • 59. OUR ROAD TO SINGLE SIGN-ON REMEMBER Sometimes a week is all it takes!
  • 60. OUR ROAD TO SINGLE SIGN-ON THANK YOU! docplanner.com/career Join us!