Contenu connexe Similaire à OAuth2 stands overview (20) Plus de Bertrand Carlier (6) OAuth2 stands overview1. Quels standards pour protéger les APIs ?
Bertrand CARLIER
bertrand.carlier@wavestone.com
@bertrandcarlier
2. confidentiel | © WAVESTONE 2CNIS Event | Octobre 2017
Des clients leaders
dans leur secteur
2,500 collaborateurs
sur 4 continents
Parmi les leaders du conseil
indépendant en Europe,
n°1 en France
* Partenariats
Paris | Londres | New York | Hong Kong | Singapour* | Dubaï*
Bruxelles | Luxembourg | Genève | Casablanca
Lyon | Marseille | Nantes
Dans un monde où la capacité à se transformer est la clé du succès,
nous éclairons et guidons nos clients dans leurs décisions les plus stratégiques
3. confidentiel | © WAVESTONE 3CNIS Event | Octobre 2017
Réussir sa
transformation numérique
grâce à la confiance numérique
UNE EXPERTISE EPROUVEE
/ Stratégie et Conformité
/ Transformation métier sécurisée
/ Architecture et programme sécurité
/ Identité, Fraude et Services de Confiance
/ Tests d’intrusion & Réponse à incident
/ Continuité d’Activité & Résilience
/ SI Industriel
NOS DIFFERENCIATEURS
/ Connaissance des risques métier
/ Méthodologie AMT pour les
schémas directeurs
/ Radars Innovation et Start-ups
/ CERT-W
/ Bug Bounty by Wavestone
Wavestone Cybersécurité & Confiance numérique
Nos clients
COMEX, Métier,
CDO, CIO, CISO, BCM
400+
Consultants & Experts
à Paris, Londres, New
York & Hong Kong
1,000+
Missions par an
dans plus de
20 pays
4. confidentiel | © WAVESTONE 4CNIS Event | Octobre 2017
Maslow’s hierarchy of needs
5. confidentiel | © WAVESTONE 5CNIS Event | Octobre 2017
Maslow’s hierarchy of needs - updated
6. confidentiel | © WAVESTONE 7CNIS Event | Octobre 2017
OAuth2 – Hierarchy of needs
LES BASES
/ Application client-side & server-side
/ Serveur à serveur
/ Application mobile &
Authentification longue durée
7. confidentiel | © WAVESTONE 8CNIS Event | Octobre 2017
Implicit and Client Credentials
YOU’VE GOT MAIL
Site web
comparateur
API
compagnie
aérienne
API
compagnie
aérienne
API
compagnie
aérienne
Client
Authorization
server
Resource
server
Access token
Comparateur de vols
Classe éco
Direct
2 escales
Business class
Bateau
8. confidentiel | © WAVESTONE 9CNIS Event | Octobre 2017
Authorization code
ARE YOU AUTHORIZED?
Site web
compagnie
aérienne
API compagnie
aérienne
Client
Authorization
server
Resource
server
Access token
Resource
owner
9. confidentiel | © WAVESTONE 10CNIS Event | Octobre 2017
Proof Key for Code Exchange
PIXIES
API compagnie
aérienne
Client
Authorization
server
Resource
server
Access token
Resource
owner
PKCE (RFC 7636)
10. confidentiel | © WAVESTONE 11CNIS Event | Octobre 2017
Refresh token
(RE)FRESH
Refresh token
Client
Authorization
server
Resource
server
Access token
Resource
owner
PKCE (RFC 7636)
API compagnie
aérienne
11. confidentiel | © WAVESTONE 12CNIS Event | Octobre 2017
20
17
18
76
OAuth2.0 : c’est très simple
Qui ne souhaiterait pas lire 130 pages de RFC ?
Et un petit complément de 71 pages pour aborder la sécurité :
« OAuth2 Threat Model and Security Considerations »
Refresh token
Client
Authorization
server
Resource
server
Access token
Resource
owner
Proof Key for Code Exchange
12. confidentiel | © WAVESTONE 13CNIS Event | Octobre 2017
OAuth2 – Hierarchy of needs
LES BASES
KIT DE SURVIE
/ SSO moderne
/ Authentification adaptative
/ APIs fédérées
/ Application client-side & server-side
/ Serveur à serveur
/ Application mobile &
Authentification longue durée
13. confidentiel | © WAVESTONE 14CNIS Event | Octobre 2017
OpenID Connect
FRENCH CONNECTION
Client
Authorization
server
Resource
server
Access token
Resource
owner
Refresh
token
PKCE (RFC 7636)
Site web de
la commune
API
Ministère des
finances
France
Connect
hub
ID token
14. confidentiel | © WAVESTONE 15CNIS Event | Octobre 2017
Authentication Context Reference (acr)
SMS, I KNOW…
API Banque
Authorization
server
Banque
Client
Authorization
server
Resource
server
Access token
Resource
owner
Refresh
token
ID token
OpenID
Connect
provider
PKCE (RFC 7636)
15. confidentiel | © WAVESTONE 16CNIS Event | Octobre 2017
JWT Bearer profile
ONE RING TOKEN TO RULE THEM ALL
Client
Authorization
server
Resource
server
Access token
Resource
owner
Refresh
token
ID token
OpenID
Connect
provider
PKCE (RFC 7636)
Bank
website
Bank & Insurance
discount
White label
insurance
Site web
bancaire
Authorization
server Assurance
API
Assurance
1
2
16. confidentiel | © WAVESTONE 17CNIS Event | Octobre 2017
Oauth2.0 for Native Applications
SSO ON THE GO
app app Oauth 2 for
native apps
Client
Authorization
server
Resource
server
Access token
Resource
owner
Refresh
token
ID token
PKCE (RFC 7636)
Mobile phone
Authorization
server
Banque
OpenID
Connect
provider
17. confidentiel | © WAVESTONE 18CNIS Event | Octobre 2017
OAuth2.0 : Kit de survie
Authentification adaptative
Initié par l’application (acr request)
par l’Authorization Server (authentification graduée)
ou par l’API (continuous authentication)
APIs federation
REST friendly
Scalable
Single Sign-On moderne
Au-delà du périmètre de l’entreprise
Compatible navigateur & mobile
18. confidentiel | © WAVESTONE 19CNIS Event | Octobre 2017
OAuth2 – Hierarchy of needs
CAS D’USAGE
AVANCÉS
KIT DE SURVIE
LES BASES
/ Objets connectés
/ Vol de jetons
/ Gestion du partage à maille fine
/ Propagation d’identité
19. confidentiel | © WAVESTONE 21CNIS Event | Octobre 2017
OAuth2 Device Flow
2 MINUTES TWICE A DAY
app app Oauth 2 for
native apps
Client
Authorization
server
Resource
server
Access token
Resource
owner
Refresh
token
ID token
PKCE (RFC 7636)
OpenID
Connect
provider
Brosse
connectée
Services cloud
Brosse connectée
Application
brosse
connectée
2 1 3 4
20. confidentiel | © WAVESTONE 22CNIS Event | Octobre 2017
Token Binding
LATER AGGREGATOR
API Banque
Aggrégateur
multi-bancaire
API Banque
API Banque
app app Oauth 2 for
native apps
Client
Authorization
server
Resource
server
Access token
Resource
owner
Refresh
token
ID token
PKCE (RFC 7636)
Token
Binding
& Mutual TLS profiles
The “Personal
Finance
Manager”
usecase
OpenID
Connect
provider
21. confidentiel | © WAVESTONE 23CNIS Event | Octobre 2017
User Managed Access
RUN BABY RUN
Token
Binding
& Mutual TLS profiles
app app Oauth 2 for
native apps
Client
Authorization
server
Resource
server
Access token
Resource
owner
Refresh
token
ID token
PKCE (RFC 7636)
Requesting
party
Doctor Receptionist
OpenID
Connect
provider
Réceptioniste Médecin
Logiciel
cabinet médical Données
médicales
personnelles
Moi Authorization
server
22. confidentiel | © WAVESTONE 24CNIS Event | Octobre 2017
Token Exchange
WALL STREET
( )
Service
Client
Client
API
Token
Binding
app app Oauth 2 for
native apps
Client
Authorization
server
Resource
server
Access token
Resource
owner
Refresh
token
ID token
PKCE (RFC 7636)
Requesting
party
Token
Exchange
OpenID
Connect
provider
Micro
services
23. confidentiel | © WAVESTONE 25CNIS Event | Octobre 2017
Sans oublier :
/ Dynamic Client Registration & Management
/ OIDC/Oauth Discovery
/ Signed request
/ Mobile Connect
/ OIDC Session Management
/ Token revocation
/ …
The big picture
AT LAST
Token
Binding
app app Oauth 2 for
native apps
Client
Authorization
server
Resource
server
Access token
Resource
owner
Refresh
token
ID token
PKCE (RFC 7636)Requesting
party
Token
Exchange
OpenID
Connect
provider
24. confidentiel | © WAVESTONE 26CNIS Event | Octobre 2017
Assembler correctement… sur une base saine
Bonnes pratiques de sécurisation d’applications web
Ne surtout pas oublier qu’une API est
avant tout une application web
OAuth2 représente un écosystème très riche
Choisir les bons morceaux
Les assembler avec attention
Ne pas obtenir in fine un faux sentiment de sécurité
CAS D’USAGE
AVANCÉS
KIT DE SURVIE
LES BASES
26. PARIS
LONDON
NEW YORK
HONG KONG
SINGAPORE *
DUBAI *
BRUSSELS
LUXEMBOURG
GENEVA
CASABLANCA
LYON
MARSEILLE
NANTES
* Partenaires stratégiques
PARIS
LONDRES
NEW YORK
HONG KONG
SINGAPORE *
DUBAI *
SAO PAULO *
LUXEMBOURG
MADRID *
MILAN *
BRUXELLES
GENEVE
CASABLANCA
ISTAMBUL *
LYON
MARSEILLE
NANTES
* Partenariats