SlideShare a Scribd company logo
2017
OAuth2, OpenID Connect
& microservices
2017
Who Am I ?
Antonin Ribeaud
React(Native) @ Inovia
2017
OAuth2 !== OpenID Connect
2017
Microservices
2017
Monolith
2017
Microservices
2017
User identity
2017
Securing a Monolith
Client
2017
Securing
Microservices
User repository
2017
Houston, we have a problem
2017
OAuth2 + OpenID Connect
(simplified)
2017
No Authentication
2017
OAuth2 is a delegation protocol
2017
OAuth2 has 4 actors
2017
Resource Owner (RO)
OAuth2 has 4 actors
2017
Resource Owner (RO) Authorization Server (AS - IDP)
OAuth2 has 4 actors
2017
Resource Owner (RO)
Resource server (RS - API)
OAuth2 has 4 actors
Authorization Server (AS - IDP)
2017
Resource Owner (RO)
Client Resource server (RS - API)
OAuth2 has 4 actors
Authorization Server (AS - IDP)
2017
Resource server (RS - API)
Client
OAuth2 has 4 actors
Authorization Server (AS - IDP)
2017
Resource server (RS - API)
Client
OAuth2 has 4 actors
Authorization Server (AS - IDP)
2017
Resource server (RS - API)
Client
OAuth2 has 4 actors
Authorization Server (AS - IDP)
2017
Resource server (RS - API)
Client
OAuth2 has 4 actors
Authorization Server (AS - IDP)
2017
Resource server (RS - API)
OAuth2 has 4 actors
Client
Authorization Server (AS - IDP)
2017
Resource server (RS - API)
OAuth2 has 4 actors
Authorization Server (AS - IDP)
Client
2017
Delegated access
2017
Tokens
(simplified)
2017
Access tokens Refresh tokens
2017
Sharing by reference
No meaning outside of the network
2017
Sharing by value
Contains all necessary information
2017
WS-Security
JWT
SAML
Macaroons
Custom...
2017
JWT
2017
header.payload.signature
2017
2017
So, is a JWT secure ?
2017
Nope.
2017
Mitigating attacks against a JWT
2017
OAuth2 + OpenID Connect
2017
OAuth2 has 4 actors
Resource Owner (RO)
Client Resource server (RS - API)
Authorization Server (AS - IDP)
2017
Resource Owner (RO)
Client Resource server (RS - API)
{
scope,
clientId,
callbackUrl
}
OAuth2 has 4 actors
Authorization Server (AS - IDP)
2017
Scope
Email, profile, etc...
2017
Resource Owner (RO)
Client Resource server (RS - API)
OAuth2 has 4 actors
Authorization Server (AS - IDP)
2017
2017
Resource Owner (RO) Authorization Server (AS - IDP)
Client Resource server (RS - API)
{authorization code}
OAuth2 has 4 actors
2017
Resource Owner (RO)
Client Resource server (RS - API)
{authorization code}
OAuth2 has 4 actors
Authorization Server (AS - IDP)
2017
Resource Owner (RO)
Client Resource server (RS - API)
{authorization code}
OAuth2 has 4 actors
2017
Resource Owner (RO)
Client Resource server (RS - API)
JWT: {
access token,
refresh token,
}
OAuth2 has 4 actors
2017
Resource Owner (RO)
Client Resource server (RS - API)
JWT: {
access token,
refresh token,
}
OAuth2 has 4 actors
Authorization Server (AS - IDP)
2017
Resource Owner (RO)
Client Resource server (RS - API)
OAuth2 has 4 actors
Authorization Server (AS - IDP)
2017
Resource Owner (RO)
Client Resource server (RS - API)
{secret}
OAuth2 has 4 actors
+ Hashmap
(Key-Value
store)
Authorization Server (AS - IDP)
2017
Resource Owner (RO)
Client Resource server (RS - API)
OAuth2 has 4 actors
Authorization Server (AS - IDP)
+ Hashmap
(Key-Value
store)
2017
Example
2017
2017
{
scope,
clientId,
callbackUrl
}
2017
2017
2017
Delegated access
No password sharing
Revocation of access
...
2017
Trust !
2017
Authorization Server (AS)
Resource server (RS - API)
Client
Resource Owner (RO)
2017
Authorization Server (AS)
Resource server (RS - API)
Client
Resource Owner (RO)
2017
User identity
in microservices
2017
Authorization Server (AS - IDP)
{accessToken}
(reference)
Client
UUID
API Gateway
Resource server (RS - API)
2017
Authorization Server (AS - IDP)
API Gateway
Resource server (RS - API)
{accessToken}
(reference)
{
UUID (Principal),
TID
}
Client
UUID
2017
Using standards
Secure
2017
Inovia.fr // @inoviateam
Ubeeqo.com
Antonin Ribeaud // github.com/Antonhansel

More Related Content

What's hot

The Next Generation of Microservices
The Next Generation of MicroservicesThe Next Generation of Microservices
The Next Generation of Microservices
Phil Calçado
 
Trading Derivatives on Hyperledger
Trading Derivatives on HyperledgerTrading Derivatives on Hyperledger
Trading Derivatives on Hyperledger
LF Events
 
Smart Contracts: From Zero to Dapp Hero | Hedera18
Smart Contracts: From Zero to Dapp Hero | Hedera18Smart Contracts: From Zero to Dapp Hero | Hedera18
Smart Contracts: From Zero to Dapp Hero | Hedera18
Hedera Hashgraph
 
Design and Evolution of APIs in Microservice Architecture
Design and Evolution of APIs in Microservice ArchitectureDesign and Evolution of APIs in Microservice Architecture
Design and Evolution of APIs in Microservice Architecture
Lohika_Odessa_TechTalks
 
APIdays Paris 2018 - API Management is Dead, Augusto Marietti, CEO and Co-Fou...
APIdays Paris 2018 - API Management is Dead, Augusto Marietti, CEO and Co-Fou...APIdays Paris 2018 - API Management is Dead, Augusto Marietti, CEO and Co-Fou...
APIdays Paris 2018 - API Management is Dead, Augusto Marietti, CEO and Co-Fou...
apidays
 
The Economics of Microservices (redux)
The Economics of Microservices (redux)The Economics of Microservices (redux)
The Economics of Microservices (redux)
Phil Calçado
 
Introduction to Istio Service Mesh
Introduction to Istio Service MeshIntroduction to Istio Service Mesh
Introduction to Istio Service Mesh
Georgios Andrianakis
 
Rabbit MQ - Tech Talk at Atlogys
Rabbit MQ - Tech Talk at Atlogys Rabbit MQ - Tech Talk at Atlogys
Rabbit MQ - Tech Talk at Atlogys
Atlogys Technical Consulting
 
Microservices:
 The phantom menace
. Istio Service Mesh: 
the new hope
Microservices:
 The phantom menace
. Istio Service Mesh: 
the new hopeMicroservices:
 The phantom menace
. Istio Service Mesh: 
the new hope
Microservices:
 The phantom menace
. Istio Service Mesh: 
the new hope
Sergii Bishyr
 
Hyperledger Lightning Talk
Hyperledger Lightning TalkHyperledger Lightning Talk
Hyperledger Lightning Talk
Andrew Kennedy
 
The Service Mesh: It's about Traffic
The Service Mesh: It's about TrafficThe Service Mesh: It's about Traffic
The Service Mesh: It's about Traffic
C4Media
 
Fabric Composer - Construct 2017
Fabric Composer - Construct 2017Fabric Composer - Construct 2017
Fabric Composer - Construct 2017
Simon Stone
 
Building Highly Sophisticated Environments for Security and Compliance on AWS
Building Highly Sophisticated Environments for Security and Compliance on AWSBuilding Highly Sophisticated Environments for Security and Compliance on AWS
Building Highly Sophisticated Environments for Security and Compliance on AWS
Boyan Dimitrov
 
Fast exchange
Fast exchangeFast exchange
Fast exchange
MaksymVasylchykov
 
FIWARE Global Summit - NGSI-LD – an Evolution from NGSIv2
FIWARE Global Summit - NGSI-LD – an Evolution from NGSIv2FIWARE Global Summit - NGSI-LD – an Evolution from NGSIv2
FIWARE Global Summit - NGSI-LD – an Evolution from NGSIv2
FIWARE
 
Microservice Secrets
Microservice SecretsMicroservice Secrets
Microservice Secrets
Justin Hart
 
SQL Connectivity in a MongoDB World
SQL Connectivity in a MongoDB WorldSQL Connectivity in a MongoDB World
SQL Connectivity in a MongoDB World
Progress
 
Microservices with Spring Cloud
Microservices with Spring CloudMicroservices with Spring Cloud
Microservices with Spring Cloud
Wilder Rodrigues
 

What's hot (18)

The Next Generation of Microservices
The Next Generation of MicroservicesThe Next Generation of Microservices
The Next Generation of Microservices
 
Trading Derivatives on Hyperledger
Trading Derivatives on HyperledgerTrading Derivatives on Hyperledger
Trading Derivatives on Hyperledger
 
Smart Contracts: From Zero to Dapp Hero | Hedera18
Smart Contracts: From Zero to Dapp Hero | Hedera18Smart Contracts: From Zero to Dapp Hero | Hedera18
Smart Contracts: From Zero to Dapp Hero | Hedera18
 
Design and Evolution of APIs in Microservice Architecture
Design and Evolution of APIs in Microservice ArchitectureDesign and Evolution of APIs in Microservice Architecture
Design and Evolution of APIs in Microservice Architecture
 
APIdays Paris 2018 - API Management is Dead, Augusto Marietti, CEO and Co-Fou...
APIdays Paris 2018 - API Management is Dead, Augusto Marietti, CEO and Co-Fou...APIdays Paris 2018 - API Management is Dead, Augusto Marietti, CEO and Co-Fou...
APIdays Paris 2018 - API Management is Dead, Augusto Marietti, CEO and Co-Fou...
 
The Economics of Microservices (redux)
The Economics of Microservices (redux)The Economics of Microservices (redux)
The Economics of Microservices (redux)
 
Introduction to Istio Service Mesh
Introduction to Istio Service MeshIntroduction to Istio Service Mesh
Introduction to Istio Service Mesh
 
Rabbit MQ - Tech Talk at Atlogys
Rabbit MQ - Tech Talk at Atlogys Rabbit MQ - Tech Talk at Atlogys
Rabbit MQ - Tech Talk at Atlogys
 
Microservices:
 The phantom menace
. Istio Service Mesh: 
the new hope
Microservices:
 The phantom menace
. Istio Service Mesh: 
the new hopeMicroservices:
 The phantom menace
. Istio Service Mesh: 
the new hope
Microservices:
 The phantom menace
. Istio Service Mesh: 
the new hope
 
Hyperledger Lightning Talk
Hyperledger Lightning TalkHyperledger Lightning Talk
Hyperledger Lightning Talk
 
The Service Mesh: It's about Traffic
The Service Mesh: It's about TrafficThe Service Mesh: It's about Traffic
The Service Mesh: It's about Traffic
 
Fabric Composer - Construct 2017
Fabric Composer - Construct 2017Fabric Composer - Construct 2017
Fabric Composer - Construct 2017
 
Building Highly Sophisticated Environments for Security and Compliance on AWS
Building Highly Sophisticated Environments for Security and Compliance on AWSBuilding Highly Sophisticated Environments for Security and Compliance on AWS
Building Highly Sophisticated Environments for Security and Compliance on AWS
 
Fast exchange
Fast exchangeFast exchange
Fast exchange
 
FIWARE Global Summit - NGSI-LD – an Evolution from NGSIv2
FIWARE Global Summit - NGSI-LD – an Evolution from NGSIv2FIWARE Global Summit - NGSI-LD – an Evolution from NGSIv2
FIWARE Global Summit - NGSI-LD – an Evolution from NGSIv2
 
Microservice Secrets
Microservice SecretsMicroservice Secrets
Microservice Secrets
 
SQL Connectivity in a MongoDB World
SQL Connectivity in a MongoDB WorldSQL Connectivity in a MongoDB World
SQL Connectivity in a MongoDB World
 
Microservices with Spring Cloud
Microservices with Spring CloudMicroservices with Spring Cloud
Microservices with Spring Cloud
 

Similar to Oauth2, open-id connect with microservices

Serverless Software Architecture - Gears 17
Serverless Software Architecture - Gears 17Serverless Software Architecture - Gears 17
Serverless Software Architecture - Gears 17
Tars Joris
 
Soup to Nuts: Identity Federation for AWS
Soup to Nuts: Identity Federation for AWSSoup to Nuts: Identity Federation for AWS
Soup to Nuts: Identity Federation for AWS
Amazon Web Services
 
SID344-Soup to Nuts Identity Federation for AWS
SID344-Soup to Nuts Identity Federation for AWSSID344-Soup to Nuts Identity Federation for AWS
SID344-Soup to Nuts Identity Federation for AWS
Amazon Web Services
 
Together Cheerfully to Walk with Hypermedia
Together Cheerfully to Walk with HypermediaTogether Cheerfully to Walk with Hypermedia
Together Cheerfully to Walk with Hypermedia
Vladimir Tsukur
 
Secure your APIs using OAuth 2 and OpenID Connect
Secure your APIs using OAuth 2 and OpenID ConnectSecure your APIs using OAuth 2 and OpenID Connect
Secure your APIs using OAuth 2 and OpenID Connect
Nordic APIs
 
Advanced Design Patterns for Amazon DynamoDB - DAT403 - re:Invent 2017
Advanced Design Patterns for Amazon DynamoDB - DAT403 - re:Invent 2017Advanced Design Patterns for Amazon DynamoDB - DAT403 - re:Invent 2017
Advanced Design Patterns for Amazon DynamoDB - DAT403 - re:Invent 2017
Amazon Web Services
 
OAuth 2.0 and the Internet of Things (IoT) (Jacob Ideskog)
OAuth 2.0 and the Internet of Things (IoT) (Jacob Ideskog)OAuth 2.0 and the Internet of Things (IoT) (Jacob Ideskog)
OAuth 2.0 and the Internet of Things (IoT) (Jacob Ideskog)
Nordic APIs
 
REST Development made Easy with ColdFusion Aether
REST Development made Easy with ColdFusion AetherREST Development made Easy with ColdFusion Aether
REST Development made Easy with ColdFusion Aether
Pavan Kumar
 
DDS-XRCE (Extremely Resource Constrained Environments)
DDS-XRCE (Extremely Resource Constrained Environments)DDS-XRCE (Extremely Resource Constrained Environments)
DDS-XRCE (Extremely Resource Constrained Environments)
Gerardo Pardo-Castellote
 
AWS reInvent Recap 線上研討會
AWS reInvent Recap 線上研討會AWS reInvent Recap 線上研討會
AWS reInvent Recap 線上研討會
Amazon Web Services
 
INTERFACE by apidays - TxAuth: the future of OAuth? by Dick Hardt
INTERFACE by apidays - TxAuth: the future of OAuth? by Dick HardtINTERFACE by apidays - TxAuth: the future of OAuth? by Dick Hardt
INTERFACE by apidays - TxAuth: the future of OAuth? by Dick Hardt
apidays
 
Back to [Jaspersoft] Basics: Rest API 101
Back to [Jaspersoft] Basics: Rest API 101Back to [Jaspersoft] Basics: Rest API 101
Back to [Jaspersoft] Basics: Rest API 101
TIBCO Jaspersoft
 
Bringing the Superpower of Bots to Your Company with a Serverless Bot Solutio...
Bringing the Superpower of Bots to Your Company with a Serverless Bot Solutio...Bringing the Superpower of Bots to Your Company with a Serverless Bot Solutio...
Bringing the Superpower of Bots to Your Company with a Serverless Bot Solutio...
Amazon Web Services
 
Using JSON API to Get Your Content Where It Needs to Be
Using JSON API to Get Your Content Where It Needs to BeUsing JSON API to Get Your Content Where It Needs to Be
Using JSON API to Get Your Content Where It Needs to Be
Acquia
 
Christian Mladenov @ Intuitics
Christian Mladenov @ IntuiticsChristian Mladenov @ Intuitics
Christian Mladenov @ Intuitics
PAPIs.io
 
DEV204_Debugging Modern Applications Introduction to AWS X-Ray
DEV204_Debugging Modern Applications Introduction to AWS X-RayDEV204_Debugging Modern Applications Introduction to AWS X-Ray
DEV204_Debugging Modern Applications Introduction to AWS X-Ray
Amazon Web Services
 
The Future is Now: What’s New in ForgeRock Directory Services
The Future is Now: What’s New in ForgeRock Directory ServicesThe Future is Now: What’s New in ForgeRock Directory Services
The Future is Now: What’s New in ForgeRock Directory Services
ForgeRock
 
Serverless OAuth: Authorizing Third-Party Applications to Your Serverless API...
Serverless OAuth: Authorizing Third-Party Applications to Your Serverless API...Serverless OAuth: Authorizing Third-Party Applications to Your Serverless API...
Serverless OAuth: Authorizing Third-Party Applications to Your Serverless API...
Amazon Web Services
 
Using Access Advisor to Strike the Balance Between Security and Usability - S...
Using Access Advisor to Strike the Balance Between Security and Usability - S...Using Access Advisor to Strike the Balance Between Security and Usability - S...
Using Access Advisor to Strike the Balance Between Security and Usability - S...
Amazon Web Services
 
UMA - An Open Standard for Consent-Driven Personal Data Sharing
UMA - An Open Standard for Consent-Driven Personal Data SharingUMA - An Open Standard for Consent-Driven Personal Data Sharing
UMA - An Open Standard for Consent-Driven Personal Data Sharing
Chris Adriaensen
 

Similar to Oauth2, open-id connect with microservices (20)

Serverless Software Architecture - Gears 17
Serverless Software Architecture - Gears 17Serverless Software Architecture - Gears 17
Serverless Software Architecture - Gears 17
 
Soup to Nuts: Identity Federation for AWS
Soup to Nuts: Identity Federation for AWSSoup to Nuts: Identity Federation for AWS
Soup to Nuts: Identity Federation for AWS
 
SID344-Soup to Nuts Identity Federation for AWS
SID344-Soup to Nuts Identity Federation for AWSSID344-Soup to Nuts Identity Federation for AWS
SID344-Soup to Nuts Identity Federation for AWS
 
Together Cheerfully to Walk with Hypermedia
Together Cheerfully to Walk with HypermediaTogether Cheerfully to Walk with Hypermedia
Together Cheerfully to Walk with Hypermedia
 
Secure your APIs using OAuth 2 and OpenID Connect
Secure your APIs using OAuth 2 and OpenID ConnectSecure your APIs using OAuth 2 and OpenID Connect
Secure your APIs using OAuth 2 and OpenID Connect
 
Advanced Design Patterns for Amazon DynamoDB - DAT403 - re:Invent 2017
Advanced Design Patterns for Amazon DynamoDB - DAT403 - re:Invent 2017Advanced Design Patterns for Amazon DynamoDB - DAT403 - re:Invent 2017
Advanced Design Patterns for Amazon DynamoDB - DAT403 - re:Invent 2017
 
OAuth 2.0 and the Internet of Things (IoT) (Jacob Ideskog)
OAuth 2.0 and the Internet of Things (IoT) (Jacob Ideskog)OAuth 2.0 and the Internet of Things (IoT) (Jacob Ideskog)
OAuth 2.0 and the Internet of Things (IoT) (Jacob Ideskog)
 
REST Development made Easy with ColdFusion Aether
REST Development made Easy with ColdFusion AetherREST Development made Easy with ColdFusion Aether
REST Development made Easy with ColdFusion Aether
 
DDS-XRCE (Extremely Resource Constrained Environments)
DDS-XRCE (Extremely Resource Constrained Environments)DDS-XRCE (Extremely Resource Constrained Environments)
DDS-XRCE (Extremely Resource Constrained Environments)
 
AWS reInvent Recap 線上研討會
AWS reInvent Recap 線上研討會AWS reInvent Recap 線上研討會
AWS reInvent Recap 線上研討會
 
INTERFACE by apidays - TxAuth: the future of OAuth? by Dick Hardt
INTERFACE by apidays - TxAuth: the future of OAuth? by Dick HardtINTERFACE by apidays - TxAuth: the future of OAuth? by Dick Hardt
INTERFACE by apidays - TxAuth: the future of OAuth? by Dick Hardt
 
Back to [Jaspersoft] Basics: Rest API 101
Back to [Jaspersoft] Basics: Rest API 101Back to [Jaspersoft] Basics: Rest API 101
Back to [Jaspersoft] Basics: Rest API 101
 
Bringing the Superpower of Bots to Your Company with a Serverless Bot Solutio...
Bringing the Superpower of Bots to Your Company with a Serverless Bot Solutio...Bringing the Superpower of Bots to Your Company with a Serverless Bot Solutio...
Bringing the Superpower of Bots to Your Company with a Serverless Bot Solutio...
 
Using JSON API to Get Your Content Where It Needs to Be
Using JSON API to Get Your Content Where It Needs to BeUsing JSON API to Get Your Content Where It Needs to Be
Using JSON API to Get Your Content Where It Needs to Be
 
Christian Mladenov @ Intuitics
Christian Mladenov @ IntuiticsChristian Mladenov @ Intuitics
Christian Mladenov @ Intuitics
 
DEV204_Debugging Modern Applications Introduction to AWS X-Ray
DEV204_Debugging Modern Applications Introduction to AWS X-RayDEV204_Debugging Modern Applications Introduction to AWS X-Ray
DEV204_Debugging Modern Applications Introduction to AWS X-Ray
 
The Future is Now: What’s New in ForgeRock Directory Services
The Future is Now: What’s New in ForgeRock Directory ServicesThe Future is Now: What’s New in ForgeRock Directory Services
The Future is Now: What’s New in ForgeRock Directory Services
 
Serverless OAuth: Authorizing Third-Party Applications to Your Serverless API...
Serverless OAuth: Authorizing Third-Party Applications to Your Serverless API...Serverless OAuth: Authorizing Third-Party Applications to Your Serverless API...
Serverless OAuth: Authorizing Third-Party Applications to Your Serverless API...
 
Using Access Advisor to Strike the Balance Between Security and Usability - S...
Using Access Advisor to Strike the Balance Between Security and Usability - S...Using Access Advisor to Strike the Balance Between Security and Usability - S...
Using Access Advisor to Strike the Balance Between Security and Usability - S...
 
UMA - An Open Standard for Consent-Driven Personal Data Sharing
UMA - An Open Standard for Consent-Driven Personal Data SharingUMA - An Open Standard for Consent-Driven Personal Data Sharing
UMA - An Open Standard for Consent-Driven Personal Data Sharing
 

More from inovia

10 tips for Redux at scale
10 tips for Redux at scale10 tips for Redux at scale
10 tips for Redux at scale
inovia
 
10 essentials steps for kafka streaming services
10 essentials steps for kafka streaming services10 essentials steps for kafka streaming services
10 essentials steps for kafka streaming services
inovia
 
Redux at scale
Redux at scaleRedux at scale
Redux at scale
inovia
 
DocuSign's Road to react
DocuSign's Road to reactDocuSign's Road to react
DocuSign's Road to react
inovia
 
API Gateway: Nginx way
API Gateway: Nginx wayAPI Gateway: Nginx way
API Gateway: Nginx way
inovia
 
Kafka: meetup microservice
Kafka: meetup microserviceKafka: meetup microservice
Kafka: meetup microservice
inovia
 
Microservice: starting point
Microservice:  starting pointMicroservice:  starting point
Microservice: starting point
inovia
 
Correlation id (tid)
Correlation id (tid)Correlation id (tid)
Correlation id (tid)
inovia
 
Meetic back end redesign - Meetup microservices
Meetic back end redesign - Meetup microservicesMeetic back end redesign - Meetup microservices
Meetic back end redesign - Meetup microservices
inovia
 
Security in microservices architectures
Security in microservices architecturesSecurity in microservices architectures
Security in microservices architectures
inovia
 
Building a Secure, Performant Network Fabric for Microservice Applications
Building a Secure, Performant Network Fabric for Microservice ApplicationsBuilding a Secure, Performant Network Fabric for Microservice Applications
Building a Secure, Performant Network Fabric for Microservice Applications
inovia
 
Microservices vs SOA
Microservices vs SOAMicroservices vs SOA
Microservices vs SOA
inovia
 
CQRS, an introduction by JC Bohin
CQRS, an introduction by JC BohinCQRS, an introduction by JC Bohin
CQRS, an introduction by JC Bohin
inovia
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
inovia
 
Steam Learn: An introduction to Redis
Steam Learn: An introduction to RedisSteam Learn: An introduction to Redis
Steam Learn: An introduction to Redis
inovia
 
Steam Learn: Speedrun et TAS
Steam Learn: Speedrun et TASSteam Learn: Speedrun et TAS
Steam Learn: Speedrun et TAS
inovia
 
Steam Learn: Asynchronous Javascript
Steam Learn: Asynchronous JavascriptSteam Learn: Asynchronous Javascript
Steam Learn: Asynchronous Javascript
inovia
 
Steam Learn: Cheat sheet for Vim
Steam Learn: Cheat sheet for VimSteam Learn: Cheat sheet for Vim
Steam Learn: Cheat sheet for Vim
inovia
 
Steam Learn: REST Good practices
Steam Learn: REST Good practicesSteam Learn: REST Good practices
Steam Learn: REST Good practices
inovia
 
Steam Learn: Faster php testing process with Atoum
Steam Learn: Faster php testing process with AtoumSteam Learn: Faster php testing process with Atoum
Steam Learn: Faster php testing process with Atoum
inovia
 

More from inovia (20)

10 tips for Redux at scale
10 tips for Redux at scale10 tips for Redux at scale
10 tips for Redux at scale
 
10 essentials steps for kafka streaming services
10 essentials steps for kafka streaming services10 essentials steps for kafka streaming services
10 essentials steps for kafka streaming services
 
Redux at scale
Redux at scaleRedux at scale
Redux at scale
 
DocuSign's Road to react
DocuSign's Road to reactDocuSign's Road to react
DocuSign's Road to react
 
API Gateway: Nginx way
API Gateway: Nginx wayAPI Gateway: Nginx way
API Gateway: Nginx way
 
Kafka: meetup microservice
Kafka: meetup microserviceKafka: meetup microservice
Kafka: meetup microservice
 
Microservice: starting point
Microservice:  starting pointMicroservice:  starting point
Microservice: starting point
 
Correlation id (tid)
Correlation id (tid)Correlation id (tid)
Correlation id (tid)
 
Meetic back end redesign - Meetup microservices
Meetic back end redesign - Meetup microservicesMeetic back end redesign - Meetup microservices
Meetic back end redesign - Meetup microservices
 
Security in microservices architectures
Security in microservices architecturesSecurity in microservices architectures
Security in microservices architectures
 
Building a Secure, Performant Network Fabric for Microservice Applications
Building a Secure, Performant Network Fabric for Microservice ApplicationsBuilding a Secure, Performant Network Fabric for Microservice Applications
Building a Secure, Performant Network Fabric for Microservice Applications
 
Microservices vs SOA
Microservices vs SOAMicroservices vs SOA
Microservices vs SOA
 
CQRS, an introduction by JC Bohin
CQRS, an introduction by JC BohinCQRS, an introduction by JC Bohin
CQRS, an introduction by JC Bohin
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Steam Learn: An introduction to Redis
Steam Learn: An introduction to RedisSteam Learn: An introduction to Redis
Steam Learn: An introduction to Redis
 
Steam Learn: Speedrun et TAS
Steam Learn: Speedrun et TASSteam Learn: Speedrun et TAS
Steam Learn: Speedrun et TAS
 
Steam Learn: Asynchronous Javascript
Steam Learn: Asynchronous JavascriptSteam Learn: Asynchronous Javascript
Steam Learn: Asynchronous Javascript
 
Steam Learn: Cheat sheet for Vim
Steam Learn: Cheat sheet for VimSteam Learn: Cheat sheet for Vim
Steam Learn: Cheat sheet for Vim
 
Steam Learn: REST Good practices
Steam Learn: REST Good practicesSteam Learn: REST Good practices
Steam Learn: REST Good practices
 
Steam Learn: Faster php testing process with Atoum
Steam Learn: Faster php testing process with AtoumSteam Learn: Faster php testing process with Atoum
Steam Learn: Faster php testing process with Atoum
 

Recently uploaded

Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 

Recently uploaded (20)

Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 

Oauth2, open-id connect with microservices

Editor's Notes

  1. Ubeeqo application de carsharing Si je suis ici aujourd’hui, c’est parce que Ubeeqo utilise une architecture en microservices
  2. Avant d’avancer sur notre sujet, je veux bien noter que OAuth2 et OpenID Connect sont deux choses différentes OAauth2 -> Delegation, autorisation -> C’est de savoir ce que vous etes autorisés à faire. Open ID Connect -> Le but c’est que l’ont soit sur que l’interlocuteur avec qui vous échangez des données est bien celui que vous croyez. C’est une couche d’identification sur OAuth2 Open ID connect permet de combler certaines faiblesses de l’OAuth2, ce sont bien deux éléments distincts mais que l’on fait fonctionner ensemble
  3. Vous avez décidé de faire des micro services. Vous transitionnez d’un monolithe vers une architecture en microservices, bravo. J’espère que vous avez suivi les précédentes présentations On va vous donner les clefs, progressivement et plus en détail pour réussir cette transition, notamment sur la gestion de l’identité de l’utilisateur
  4. Architecture avec 1 service Système traditionnel Plusieurs sous composants dans un gros Quelques inconvénients On doit toujours redéployer toute la stack Quand l’équipe et le code grossit, il devient compliqué de travailler sur un monolith
  5. Transforme le monolith en une série d’applications modulaires Deployment indépendant Code séparé
  6. Un client c’est un utilisateur qui utilise une application mobile par exemple Le client fait une requète vers le monolith Un composant au début de la requête gère l’identité de l’utilisateur Il vérifie si l’utilisateur est connecté En pratique, on va populer la session ou la requete entrante Propage cette information aux sous composants Les composants suivants utilisent cette donnée Si on prend la meme logique et qu’on l’applique aux microservices, ça donne ça [NEXT SLIDE]
  7. Chacun des microservices devrait alors avoir un composant qui gère les requêtes entrantes, qui gère les identités, qui fait appel a la base de données ou sont stockés les utilisateurs… Dans un système comme celui la on a beaucoup de redondances, c’est une mauvaise manière de régler le probleme
  8. Comment fait on pour gérer l’identité d’un utilisateur dans des micro services Pour répondre a cette question, je vais d’abord vous parler d’OAuth2
  9. No Authentication Pas de gestion d’accès ou de gestion de droit
  10. Delegation de l’accès a quelqu’un pour faire quelque chose pour moi
  11. Ressource Owner (RO) the user Client (Application mobile par exemple, parfois le backend de l’application) Authorization Server (AS) oAuth Server Resource Server (RS) Le service qu’on va appeler
  12. Ressource Owner (RO) the user Client (Application mobile par exemple, parfois le backend de l’application) Authorization Server (AS) oAuth Server Resource Server (RS) Le service qu’on va appeler
  13. Ressource Owner (RO) the user Client (Application mobile par exemple, parfois le backend de l’application) Authorization Server (AS) oAuth Server Resource Server (RS) Le service qu’on va appeler
  14. Ressource Owner (RO) the user Client (Application mobile par exemple, parfois le backend de l’application) Authorization Server (AS) oAuth Server Resource Server (RS) Le service qu’on va appeler
  15. Ressource Owner (RO) the user Client (Application mobile par exemple, parfois le backend de l’application) Authorization Server (AS) oAuth Server Resource Server (RS) Le service qu’on va appeler
  16. Ressource Owner (RO) the user Client (Application mobile par exemple, parfois le backend de l’application) Authorization Server (AS) oAuth Server Resource Server (RS) Le service qu’on va appeler
  17. Le client appelle l’Authorization Server L’Authorization Server demande alors au Ressource Owner de s’identifier
  18. L’autorisation server fournit au client une preuve d’identité
  19. Le client fait des requêtes auprès du resource server
  20. Le ressource serveur demande a l'authorization server si le token est valide
  21. Le ressource server répond au client la data demandée
  22. Le Ressource Owner a délégué l’accés de ses données au client L’Authorization Server a fourni une preuve d’identité que le client a pu utiliser pour requeter le Ressource Server ou l’API Qu’est-ce que cette “preuve d’identité”
  23. Les différents tokens que l’on trouve en OAauth2
  24. Access token c’est une session On se log sur un site, ça ouvre une session et pendant une période donnée, on n’a pas besoin de se re-logguer Au bout d’un certain temps, cette session expire et l’access token deviens invalide Le refresh token ça peut s’apparenter a un mot de passe, ce n’est évidement pas votre mot de passe. C’est un secret. On s’en sert pour créer une nouvelle session, avoir un nouveau access token Aussi, l’intéret de ce systeme c’est que si l’utilisateur souhaite révoquer l’accès du client, on a simplement a invalider son refresh token, l’access token sera invalidé rapidement de manière automatique et le client ne pourra plus en générer On peut ranger ces tokens dans une catégorie
  25. Access token, c’est du partage par référence
  26. Passé au client sous forme d’un header ou d’une query string compact
  27. Cout de calcul faible
  28. Élément stocké coté client -> Vulnérable Partir du principe que ça pourrait être compromis
  29. Élément stocké côté client -> Vulnérable Toujours vérifier la signature du JWT HTTPS Ne pas stocker de données sensibles. Si vous avez besoin de transmettre des données sensibles, d’autres systèmes permettent de le faire. Un JWT qu’on signe, que l’on transmet en HTTPS, on met rien de sensible dedans, il n’est pas critique
  30. Ressource Owner (RO) the user Client (Application mobile par exemple, parfois le backend de l’application) Authorization Server (AS) oAuth Server Resource Server (RS) Le service qu’on va appeler
  31. Que se passe-til quand le client veut accéder a des ressources qui se trouvent sur le resource server ? ClientID -> Identifiant de l’application qui veut accéder a mes données Callback URL -> L’URL qui sera utilisée pour rediriger l’utilisateur a la fin du processus d’authentification
  32. Comme des permissions Decrivent les autorisations que donnent le Ressource Owner (l’utilisateur) au Client L’utilisateur peut modifier les autorisations données au client L’utilisateur ne se login pas sur le client ou l’application, mais bien sur l’authorization server
  33. Le RO est identifié sur le AS Le AS renvoie au client sur l’url de callback spécifiée plus tôt un code Ce code n’est pas compréhensible par le client
  34. Code a usage unique Durée de vie extremement limitée
  35. Le ressource server contacte l’autorization serverAuthorization Server (AS)
  36. Le client stock le JWT
  37. Authorization: Bearer AccessToken
  38. L’authorization server c’est une brique technique assez complexe. Vous pouvez décider de passer par un service tiers, comme Facebook par exemple pour faire office d’authorization server
  39. Vous l’avez surement déjà fait, peut être sans le savoir, mais vous pouvez utiliser l’Authorization Server d’un autre service vous pouvez également déléguer une partie de la logique OAuth2 a un tiers. comme facebook par exemple
  40. Pour mon exemple j’ai choisi Deezer Tout le monde connaît Deezer, on écoute de la musique avec, je vais pas vous faire une review de l’application
  41. L’application Deezer envoie a Facebook: Un clientID Un scope ( a quoi deezer veur acceder) Une callback URI
  42. Facebook redirige l’utilisateur sur sa page d’autorisation On est bien chez Facebook (voir la barre url) Je me log chez facebook J’approuve les permissions demandées, le scope Facebook redirige alors le navigateur de mon téléphone sur l'adresse de callback de deezer avec un code dans l’URL L’application Deezer communique ce code au backend Deezer, le backend deeezer contact facebook pour vérifier l’authenticité de la preuve d’identé, le code, fourni A partir de la, Deezer doit stocker mon access et mon refresh, renvoie un token a l’application
  43. Pas de formulaire Pas besoin d'être garant de l’identité de l’utilisateur Pas besoin de faire un processus de vérification de l’identité de l’utilisateur
  44. Un élément très important aussi, c’est qu’on a crée des relations de confiance
  45. Le ressource owner fait confiance a Authorization Server
  46. Le ressource server fait confiance également a l’Authorization Server qui se porte garant de l’identité du Resource Owner
  47. Maintenant que vous connaissez tous ces éléments, on va parler de la manière dont on les mets en oeuvre a Ubeeqo pour gérer l’identité de nos utilisateurs a travers les microservices Je me permets de préciser que c’est l’implémentation que nous avons choisi de mettre en place Ca ne veut pas dire que c’est la seule, ou que les autres sont mauvaises
  48. UUID -> Universally Unique IDentifier Chaine de caractère, répond a RFC Identifiant de l’utilisateur
  49. UUID -> Universally Unique IDentifier Chaine de caractère, répond a RFC Principal sert à identifier un acteur au travers de l’application Contexte de la requète TID: Transaction ID Microservices sur un réseau fermé Shared secret entre les microservices
  50. Vous avez pris connaissance des problématiques liées à une architecture en microservice Notamment celles qui concernent l’authentification et la délégation d’accès
  51. Merci de votre attention