SlideShare uma empresa Scribd logo
1 de 35
Vous avez dit protocoles Web
d’authentification et
d’autorisation! De quoi parlezvous ?
Philippe Beraud
Jean-Yves Grasset
Direction Technique | Microsoft France
philippe.beraud@microsoft.com, @philberd
jyvesg@microsoft.com,

Sécurité
Donnez votre avis !
Depuis votre smartphone sur :
http://notes.mstechdays.fr
De nombreux lots à gagner toute les heures !!!
Claviers, souris et jeux Microsoft…
Merci de nous aider à améliorer les Techdays !

#mstechdays

Sécurité
Anatomie d’une application moderne
AUTHENTIFICATION BASIQUE HTTP
Pour commencer par le début…

#mstechdays

Sécurité
Vue d’ensemble de l’authentification
basique

• Protocole d’authentification défini dans le RFC 2617
• Fondé sur un Challenge / Réponse
• Utilise le protocole HTTP pour l’échange des messages

#mstechdays

Sécurité
Authentification basique
Le navigateur envoie une
requête
Entête WWW-Authenticate
Renvoyée avec un 401
Listes sur les méthodes d'authentification prises
en charge

Entête Authorization

Méthode d’authentification: Basic
Informations d’identification: encodes en Base64

#mstechdays

Sécurité
Echanges pour l’authentification

WWW-Authenticate: Basic

Authorization: Basic <Cred>

Authorization: Basic <Cred>

#mstechdays

Sécurité
OASIS SAML 2.0

#mstechdays

Sécurité
SAML 2.0 - Assertions
Paquet d’information sur une
identité
Synonyme de "jeton (de
sécurité)"
Fondé sur XML

Se compose de déclarations
:
Déclarations d’authentification
Déclarations d’attribut
Déclarations de décision d’autorisation
#mstechdays

Sécurité
SAML 2.0 - Protocoles
Concerne le format des
éléments de requête et de
réponse
Sur la base de Requête /
Réponse
Définis dans la spécification
SAML Core

#mstechdays

Sécurité

Protocoles SAML 2.0
Authentication Request
Artifact Resolution
Single Logout
Assertion Query and Request
Name Identifier Management
Name Identifier Mapping
SAML 2.0 - Liaisons
Associent un message de
protocole avec un protocole
de transport
Exemples
La liaison POST HTTP spécifie comment un
message de protocole SAML est envoyé par les
méthode POST HTTP
La liaison SOAP SAML spécifie comment un
message de protocole SAML est envoyé avec
SOAP 1.1

#mstechdays

Sécurité

Liaisons SAML 2.0
HTTP Redirect
HTTP POST
HTTP Artifact
SAML SOAP
Reverse SOAP
SAML URI
SAML 2.0 - Profils
Décrit comment les
assertions, les protocoles et
les liaisons se combinent
pour former un scénario

Exemple : Profil Web SSO
Authentication Request Protocol
Liaison Redirection HTTP au niveau fournisseur
d’identité (IdP)
Liaison POST HTTP au niveau fournisseur de
service (SP)
#mstechdays

Sécurité

Profils SAML 2.0
Profils SSO
•
•
•
•
•

Web Browser SSO Profile
Enhanced Client or Proxy (ECP) Profile
Identity Provider Discovery Profile
Single Logout Profile
Name Identifier Management Profile

Artifact Resolution Profile
Assertion Query/Request Profile
Name Identifier Mapping Profile
SAML Attribute Profiles
•
•
•
•
•

Basic Attribute Profile
X.500/LDAP Attribute Profile
UUID Attribute Profile
DCE PAC Attribute Profile
XACML Attribute Profile
Profil SAML Web SSO
Une relation de confiance est établie entre
l'application Web et l’émetteur SAML
L'utilisateur accède à l'application Web
L’application Web détecte que l'utilisateur n'est
pas authentifié et le redirige vers l'émetteur
SAML
L’utilisateur accède automatiquement à
l'émetteur SAML
L’utilisateur s'authentifie auprès de l’émetteur
SAML
L’émetteur SAML construit le jeton et le renvoie
à l'utilisateur

L’utilisateur POSTe le jeton à l’application Web

#mstechdays

Sécurité
OASIS WS-FEDERATION

#mstechdays

Sécurité
WS-Federation – Profil de demandeur
passif
Relation avec SAML-P

Similaire au profil SAML Web SSO mais
non compatible
•
•
•

Messages de requête et de réponse différents
Pas de cas d’utilisation IdP-initiated
Pas de profil Assertion Query

#mstechdays

Sécurité
IETF OAUTH 2.0

#mstechdays

Sécurité
L’objectif d’OAuth 2.0
Permettre aux utilisateurs de fournir à une application un
accès limité à leurs données de manière fiable
Résoudre la problématique de stockage des informations
d’identification :
Vous n'avez pas assez confiance en l'application pour lui donner votre mot de passe
Vous voulez contrôler ce que l'application peut faire
Vous souhaitez révoquer les autorisations d’accès aux données d'une application plus tard
Vous souhaitez modifier votre mot de passe sans avoir à le mettre à jour dans toutes les applications

#mstechdays

Sécurité
Les différents rôles
Le serveur de ressources

Le client

Héberge la ressource
Typiquement un fournisseur d'API

L’application invoquant des API pour
effectuer des actions sur la ressource

Le propriétaire de la
ressource

Le serveur d’autorisation

Possède la ressource
Typiquement un utilisateur de l’application

#mstechdays

Sécurité

Emet le jeton d'accès utilisé par le client pour
accéder à la ressource
Authentifie le propriétaire de la ressource
Obtient du propriétaire de la ressource un
consentement d’accès
Les 4 flux officiels
Flux Code d’autorisation
Applications Web côté Serveur (par ex. Amazon accédant à Facebook en votre nom)

Flux implicite
Utilisé pour des applications Web côté client s’exécutant dans le navigateur (JavaScript)

Flux Mot de passe du propriétaire de la ressource
Clients (dignes) de confiance, tels que les applications mobiles client obtenus à partir du
serveur de ressources (par ex. le client officiel Facebook)

Flux Informations d’identification du client
Les clients qui peuvent utiliser des ressources indépendamment de l'autorisation du
propriétaire de la ressource
#mstechdays

Sécurité
Flux Code d’autorisation
Scénario
Le client OAuth 2.0 est une application serveur Web
Un accès à long terme est nécessaire pour la ressource
Le jeton d'accès ne doit pas être divulgué au navigateur

Exemple
Jacques veut partager un achat sur ​Amazon sur son journal Facebook
Rôle OAuth 2.0 :
•
•
•
•

Propriétaire de la ressource : Jacques
Client : Amazon
Serveur de ressources : Facebook
Ressource : journal Facebook de Jacques

#mstechdays

Sécurité
Résumé du flux Code d’autorisation
1.

2.

3.

4.
5.

Le client redirige le propriétaire
de la ressource vers le serveur
d'autorisation
Le propriétaire de la ressource
s’authentifie et donne son
consentement
Le serveur d’autorisation redirige
le propriétaire de la ressource
vers le client avec le code
d’autorisation
Le client demande un jeton
d'accès au serveur d'autorisation
Le serveur d’autorisation renvoie
un jeton d’accès au Client

#mstechdays

Sécurité
Flux implicite
Scénario
Le client OAuth 2.0 est un composant client du navigateur (c.à.d. JavaScript ou Flash)
Le navigateur est (fortement) digne de confiance
L’accès à la ressource n'est que temporaire…

Exemple
Jacques utilise une application Web utilisant JavaScript dans le navigateur, et qui souhaite accéder à
ses photos sur Facebook
Rôles OAuth 2.0 :
•
•
•
•

Propriétaire de la ressource : Jacques
Client : Application Web (Serveur et composants JavaScript)
Serveur de ressources : Facebook
Ressource : Photos Facebook de Jacques

#mstechdays

Sécurité
Résumé du flux implicite
1.

2.

3.

4.

Le client redirige le propriétaire
de la ressource vers le serveur
d'autorisation
Le propriétaire de la ressource
s’authentifie et donne son
consentement
Le serveur d’autorisation redirige
le propriétaire de la ressource
vers le composant serveur du
client avec le jeton d’accès dans
un fragment URL
Le composant serveur sur le
client renvoie un script qui
permet d’extraire le jeton
d’accès à partir du fragment
URL

#mstechdays

Sécurité
Flux Mot de passe du propriétaire de la
ressource
Scénario
L’application client est digne d’une grande confiance

Exemple
Jacques utilise l’application officielle Facebook pour son smartphone
Rôles OAuth 2.0 :
•
•
•
•

Propriétaire de la ressource : Jacques
Client : Application officielle Facebook
Serveur de ressources : Facebook
Ressource : Contenu Facebook de Jacques

#mstechdays

Sécurité
Résumé du flux Mot de passe du propriétaire de
la ressource
1.

2.

3.

Le propriétaire de la ressource donne
ses informations d’identification au
Client
Le client utilise les informations
d’identification pour demander un
jeton d’accès au serveur d’autorisation
Le serveur d’autorisation procède à
une authentification, valide les
informations d’identification du
propriétaire de la ressource et
retourne un jeton d’accès

#mstechdays

Sécurité
Flux Informations d’identification du client
Scénario
Le client OAuth 2.0 nécessite des données spécifiques non-utilisateur, au nom du client plutôt qu’à celui
l'utilisateur
Le client OAuth 2.0 peut stocker en toute sécurité une clé utilisée pour l'authentification du client

Exemple
Jacques utilise une application Web d'entreprise qui lit son appartenance à un groupe depuis Windows
Azure Active Directory
Rôles OAuth 2.0 :
•
•
•
•

Propriétaire de la ressource : John
Client : Application Web Métier
Serveur de ressources: Windows Azure AD
Ressource : Liste des groupes dont Jacques est membre

#mstechdays

Sécurité
Résumé du flux Informations d’identification du
client
1.

2.

Le client s’authentifie auprès du
serveur d’autorisation et demande
un jeton d’accès à partir du point de
terminaison jeton
Le serveur d’autorisation vérifie les
information d’identification du
client, et si celles-ci sont
valides, émet un jeton d’accès

#mstechdays

Sécurité
IETF OPENID CONNECT

#mstechdays

Sécurité
OpenID Connect
Standard encore à l’état de projet
OAuth 2.0 n'est pas destiné à l'authentification
Opère hors d'une hypothèse; la personne donnant l’accès pourrait ne pas être l'utilisateur
Aucun jeton d'identité est fourni

Définit une couche d'identité sur le dessus d’OAuth 2.0
Utilise deux flux OAuth 2.0 :
•
•

Flux Code d’Autorisation
Flux implicite

Ajoute un jeton d’identité dans l’échange OAuth 2.0
Ajoute la possibilité de demander des revendications à l’aide d’un jeton d’accès OAuth 2.0
#mstechdays

Sécurité
Authentification avec le flux Code d’autorisation
Un client s’enregistre avec le fournisseur OpenID
Connect (OP)
L'utilisateur accède à l'application Web et initie une
connexion
L’application Web redirige l’utilisateur vers l’OP
L’utilisateur s’authentifie auprès de l’OP et donne
son consentement afin que l’application Web
utilise son identité
L’OP construit un code d’autorisation [C]
L’OP redirige l’utilisateur vers l’application Web
avec le code d’autorisation
L’application Web envoie le code d’autorisation à
l’OP
L’OP crée le jeton d’identité [I] et le jeton d’accès et
les retourne à l’application Web
L’application Web vérifie le jeton d’identité
#mstechdays

Sécurité


"Qui parle quoi ?" (nov. 2013)
App native

OAuth 2.0, flux Code d’autorisation
OAuth 2.0, client public

AD FS 3.0

Préversion*

App Web

WS-Federation

AD FS 2.0+

Disponible

SAML 2.0

AD FS 2.0+

Disponible

OpenID Connect

Non disponible

En cours
d’implémentation

OAuth 2.0, flux Code d’autorisation,
client confidentiel

Non disponible

Préversion*

Non disponible

Disponible

Non disponible

En cours
d’implémentation

Web vers Web
API

OAuth 2.0, flux Informations
Serveur vers Web d’authentification du client
API
OAuth 2.0 "Act As"

#mstechdays

Sécurité
Livres blancs et guides Etape-par-Etape
Leverage Windows Azure AD for
modern business applications
Pour aller plus loin
activdirectory.windowsazure.com/develop
Documentation Microsoft TechNet
http://go.microsoft.com/fwlink/p/?linkid=290967

Documentation Microsoft MSDN
http://go.microsoft.com/fwlink/p/?linkid=290966

Blog d’équipe Microsoft Active Directory
http://blogs.msdn.com/b/active_directory_team_blog
Digital is
business

Mais conteúdo relacionado

Mais procurados

ASFWS 2011 : CAS, OpenID, SAML concepts, différences et exemples
ASFWS 2011 : CAS, OpenID, SAML  concepts, différences et exemplesASFWS 2011 : CAS, OpenID, SAML  concepts, différences et exemples
ASFWS 2011 : CAS, OpenID, SAML concepts, différences et exemplesCyber Security Alliance
 
Sécuriser ses ap is avec oauth2 jug montpellier 16 avril 2014
Sécuriser ses ap is avec oauth2   jug montpellier 16 avril 2014Sécuriser ses ap is avec oauth2   jug montpellier 16 avril 2014
Sécuriser ses ap is avec oauth2 jug montpellier 16 avril 2014Damien Boissin
 
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemplesCAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemplesClément OUDOT
 
14.4 tout ce que vous voulez savoir sur l'authentification par revendications
14.4   tout ce que vous voulez savoir sur l'authentification par revendications14.4   tout ce que vous voulez savoir sur l'authentification par revendications
14.4 tout ce que vous voulez savoir sur l'authentification par revendicationsNicolas Georgeault
 
CAS, OpenID, SAML : concepts, différences et exemples
CAS, OpenID, SAML : concepts, différences et exemplesCAS, OpenID, SAML : concepts, différences et exemples
CAS, OpenID, SAML : concepts, différences et exemplesClément OUDOT
 
Gérer facilement les identités dans le cloud
Gérer facilement les identités dans le cloudGérer facilement les identités dans le cloud
Gérer facilement les identités dans le cloudAymeric Weinbach
 
LemonLDAP::NG, un WebSSO libre
LemonLDAP::NG, un WebSSO libreLemonLDAP::NG, un WebSSO libre
LemonLDAP::NG, un WebSSO libreClément OUDOT
 
Oauth et open id connect (oidc)
Oauth et open id connect (oidc)Oauth et open id connect (oidc)
Oauth et open id connect (oidc)Pascal Flamand
 
ASFWS 2013 - Quels sont les défis de la fédération d’identité dans le Cloud ?...
ASFWS 2013 - Quels sont les défis de la fédération d’identité dans le Cloud ?...ASFWS 2013 - Quels sont les défis de la fédération d’identité dans le Cloud ?...
ASFWS 2013 - Quels sont les défis de la fédération d’identité dans le Cloud ?...Cyber Security Alliance
 
SAML, Open ID et CAS dans un seul WebSSO : LemonLDAP::NG
SAML, Open ID et CAS dans un seul WebSSO : LemonLDAP::NGSAML, Open ID et CAS dans un seul WebSSO : LemonLDAP::NG
SAML, Open ID et CAS dans un seul WebSSO : LemonLDAP::NGClément OUDOT
 
Introduction oauth 2.0 et openid connect 1.0
Introduction oauth 2.0 et openid connect 1.0Introduction oauth 2.0 et openid connect 1.0
Introduction oauth 2.0 et openid connect 1.0Marc-André Tousignant
 
Identification sur Internet - Login social - Thierry Brisset
Identification sur Internet - Login social - Thierry BrissetIdentification sur Internet - Login social - Thierry Brisset
Identification sur Internet - Login social - Thierry BrissetISACA Chapitre de Québec
 
Présentation Oauth OpenID
Présentation Oauth OpenIDPrésentation Oauth OpenID
Présentation Oauth OpenIDPascal Flamand
 
[JDLL 2016] OpenID Connect et FranceConnect
[JDLL 2016] OpenID Connect et FranceConnect[JDLL 2016] OpenID Connect et FranceConnect
[JDLL 2016] OpenID Connect et FranceConnectClément OUDOT
 
Oauth2 & OpenID Connect
Oauth2 & OpenID ConnectOauth2 & OpenID Connect
Oauth2 & OpenID ConnectPascal Flamand
 
S2LQ - Authentification unique sur le Web avec le logiciel libre LemonLDAP::NG
S2LQ - Authentification unique sur le Web avec le logiciel libre LemonLDAP::NGS2LQ - Authentification unique sur le Web avec le logiciel libre LemonLDAP::NG
S2LQ - Authentification unique sur le Web avec le logiciel libre LemonLDAP::NGClément OUDOT
 
File manager authentification
File manager authentificationFile manager authentification
File manager authentificationBabacar Ndoye
 
Certifs x509
Certifs x509Certifs x509
Certifs x509hamduvski
 
Acegi Security
Acegi SecurityAcegi Security
Acegi Securitytarkaus
 
LemonLDAP::NG et le support SAML2 (RMLL 2010)
LemonLDAP::NG et le support SAML2 (RMLL 2010)LemonLDAP::NG et le support SAML2 (RMLL 2010)
LemonLDAP::NG et le support SAML2 (RMLL 2010)Clément OUDOT
 

Mais procurados (20)

ASFWS 2011 : CAS, OpenID, SAML concepts, différences et exemples
ASFWS 2011 : CAS, OpenID, SAML  concepts, différences et exemplesASFWS 2011 : CAS, OpenID, SAML  concepts, différences et exemples
ASFWS 2011 : CAS, OpenID, SAML concepts, différences et exemples
 
Sécuriser ses ap is avec oauth2 jug montpellier 16 avril 2014
Sécuriser ses ap is avec oauth2   jug montpellier 16 avril 2014Sécuriser ses ap is avec oauth2   jug montpellier 16 avril 2014
Sécuriser ses ap is avec oauth2 jug montpellier 16 avril 2014
 
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemplesCAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
 
14.4 tout ce que vous voulez savoir sur l'authentification par revendications
14.4   tout ce que vous voulez savoir sur l'authentification par revendications14.4   tout ce que vous voulez savoir sur l'authentification par revendications
14.4 tout ce que vous voulez savoir sur l'authentification par revendications
 
CAS, OpenID, SAML : concepts, différences et exemples
CAS, OpenID, SAML : concepts, différences et exemplesCAS, OpenID, SAML : concepts, différences et exemples
CAS, OpenID, SAML : concepts, différences et exemples
 
Gérer facilement les identités dans le cloud
Gérer facilement les identités dans le cloudGérer facilement les identités dans le cloud
Gérer facilement les identités dans le cloud
 
LemonLDAP::NG, un WebSSO libre
LemonLDAP::NG, un WebSSO libreLemonLDAP::NG, un WebSSO libre
LemonLDAP::NG, un WebSSO libre
 
Oauth et open id connect (oidc)
Oauth et open id connect (oidc)Oauth et open id connect (oidc)
Oauth et open id connect (oidc)
 
ASFWS 2013 - Quels sont les défis de la fédération d’identité dans le Cloud ?...
ASFWS 2013 - Quels sont les défis de la fédération d’identité dans le Cloud ?...ASFWS 2013 - Quels sont les défis de la fédération d’identité dans le Cloud ?...
ASFWS 2013 - Quels sont les défis de la fédération d’identité dans le Cloud ?...
 
SAML, Open ID et CAS dans un seul WebSSO : LemonLDAP::NG
SAML, Open ID et CAS dans un seul WebSSO : LemonLDAP::NGSAML, Open ID et CAS dans un seul WebSSO : LemonLDAP::NG
SAML, Open ID et CAS dans un seul WebSSO : LemonLDAP::NG
 
Introduction oauth 2.0 et openid connect 1.0
Introduction oauth 2.0 et openid connect 1.0Introduction oauth 2.0 et openid connect 1.0
Introduction oauth 2.0 et openid connect 1.0
 
Identification sur Internet - Login social - Thierry Brisset
Identification sur Internet - Login social - Thierry BrissetIdentification sur Internet - Login social - Thierry Brisset
Identification sur Internet - Login social - Thierry Brisset
 
Présentation Oauth OpenID
Présentation Oauth OpenIDPrésentation Oauth OpenID
Présentation Oauth OpenID
 
[JDLL 2016] OpenID Connect et FranceConnect
[JDLL 2016] OpenID Connect et FranceConnect[JDLL 2016] OpenID Connect et FranceConnect
[JDLL 2016] OpenID Connect et FranceConnect
 
Oauth2 & OpenID Connect
Oauth2 & OpenID ConnectOauth2 & OpenID Connect
Oauth2 & OpenID Connect
 
S2LQ - Authentification unique sur le Web avec le logiciel libre LemonLDAP::NG
S2LQ - Authentification unique sur le Web avec le logiciel libre LemonLDAP::NGS2LQ - Authentification unique sur le Web avec le logiciel libre LemonLDAP::NG
S2LQ - Authentification unique sur le Web avec le logiciel libre LemonLDAP::NG
 
File manager authentification
File manager authentificationFile manager authentification
File manager authentification
 
Certifs x509
Certifs x509Certifs x509
Certifs x509
 
Acegi Security
Acegi SecurityAcegi Security
Acegi Security
 
LemonLDAP::NG et le support SAML2 (RMLL 2010)
LemonLDAP::NG et le support SAML2 (RMLL 2010)LemonLDAP::NG et le support SAML2 (RMLL 2010)
LemonLDAP::NG et le support SAML2 (RMLL 2010)
 

Destaque

Django pour les développeurs Symfony (et réciproquement)
Django pour les développeurs Symfony (et réciproquement)Django pour les développeurs Symfony (et réciproquement)
Django pour les développeurs Symfony (et réciproquement)Nicolas Perriault
 
Open Data Decentralisation
Open Data DecentralisationOpen Data Decentralisation
Open Data DecentralisationStefan Urbanek
 
Exposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend FrameworkExposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend FrameworkHugo Hamon
 
Cubes - Lightweight OLAP Framework
Cubes - Lightweight OLAP FrameworkCubes - Lightweight OLAP Framework
Cubes - Lightweight OLAP FrameworkStefan Urbanek
 
Symfony with angular.pptx
Symfony with angular.pptxSymfony with angular.pptx
Symfony with angular.pptxEsokia
 
RESTful avec symfony 1 et Symfony2
RESTful avec symfony 1 et Symfony2RESTful avec symfony 1 et Symfony2
RESTful avec symfony 1 et Symfony2Xavier Lacot
 

Destaque (6)

Django pour les développeurs Symfony (et réciproquement)
Django pour les développeurs Symfony (et réciproquement)Django pour les développeurs Symfony (et réciproquement)
Django pour les développeurs Symfony (et réciproquement)
 
Open Data Decentralisation
Open Data DecentralisationOpen Data Decentralisation
Open Data Decentralisation
 
Exposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend FrameworkExposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
 
Cubes - Lightweight OLAP Framework
Cubes - Lightweight OLAP FrameworkCubes - Lightweight OLAP Framework
Cubes - Lightweight OLAP Framework
 
Symfony with angular.pptx
Symfony with angular.pptxSymfony with angular.pptx
Symfony with angular.pptx
 
RESTful avec symfony 1 et Symfony2
RESTful avec symfony 1 et Symfony2RESTful avec symfony 1 et Symfony2
RESTful avec symfony 1 et Symfony2
 

Semelhante a Vous avez dit protocoles Web d’authentification et d’autorisation ! De quoi parlez-vous ?

Secure a REST API for external public access
Secure a REST API for external public accessSecure a REST API for external public access
Secure a REST API for external public accessThierry Gayet
 
Chp5 - Sécurité des Services
Chp5 - Sécurité des ServicesChp5 - Sécurité des Services
Chp5 - Sécurité des ServicesLilia Sfaxi
 
Sayeh hiba-karaa-eya-ferjani-maroua-hamzaoui-balkiss-sys-complexes
Sayeh hiba-karaa-eya-ferjani-maroua-hamzaoui-balkiss-sys-complexesSayeh hiba-karaa-eya-ferjani-maroua-hamzaoui-balkiss-sys-complexes
Sayeh hiba-karaa-eya-ferjani-maroua-hamzaoui-balkiss-sys-complexesSayehHiba1
 
Présentation de Microsoft Office 365 et des briques de sécurité Fédération, P...
Présentation de Microsoft Office 365 et des briques de sécurité Fédération, P...Présentation de Microsoft Office 365 et des briques de sécurité Fédération, P...
Présentation de Microsoft Office 365 et des briques de sécurité Fédération, P...Microsoft Technet France
 
TechDays 2010 (CLO305) : Windows Azure App Fabric
TechDays 2010 (CLO305) : Windows Azure App FabricTechDays 2010 (CLO305) : Windows Azure App Fabric
TechDays 2010 (CLO305) : Windows Azure App FabricGeoffrey DANIEL
 
Presentation 18 06 2007
Presentation 18 06 2007Presentation 18 06 2007
Presentation 18 06 2007Walibi
 
Sécurisation d'accès à un CRM pour appareils Nomade
Sécurisation d'accès à un CRM pour appareils NomadeSécurisation d'accès à un CRM pour appareils Nomade
Sécurisation d'accès à un CRM pour appareils NomadePRONETIS
 
Webinar SSL Français
Webinar SSL FrançaisWebinar SSL Français
Webinar SSL FrançaisSSL247®
 
LemonLDAP::NG et le support SAML2
LemonLDAP::NG et le support SAML2LemonLDAP::NG et le support SAML2
LemonLDAP::NG et le support SAML2Clément OUDOT
 
Provider Hosted app… Quel intérêt pour l’entreprise
Provider Hosted app…Quel intérêt pour l’entrepriseProvider Hosted app…Quel intérêt pour l’entreprise
Provider Hosted app… Quel intérêt pour l’entrepriseWalid Hadjadj
 
Securité des applications web
Securité des applications webSecurité des applications web
Securité des applications webMarcel TCHOULEGHEU
 
chap 4 Sécurité des accès.pdf
chap 4 Sécurité des accès.pdfchap 4 Sécurité des accès.pdf
chap 4 Sécurité des accès.pdfdepinfo
 
Nouvelles expériences d'authentification avec Windows 8.1 pour vos applicatio...
Nouvelles expériences d'authentification avec Windows 8.1 pour vos applicatio...Nouvelles expériences d'authentification avec Windows 8.1 pour vos applicatio...
Nouvelles expériences d'authentification avec Windows 8.1 pour vos applicatio...Microsoft
 
Implémenter de l’authentification forte pour vos environnements Cloud
Implémenter de l’authentification forte pour vos environnements CloudImplémenter de l’authentification forte pour vos environnements Cloud
Implémenter de l’authentification forte pour vos environnements CloudMicrosoft Décideurs IT
 
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)Microsoft Décideurs IT
 
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)Microsoft Technet France
 
Sécurité des Applications WEB -LEVEL1
 Sécurité des Applications WEB-LEVEL1 Sécurité des Applications WEB-LEVEL1
Sécurité des Applications WEB -LEVEL1Tarek MOHAMED
 

Semelhante a Vous avez dit protocoles Web d’authentification et d’autorisation ! De quoi parlez-vous ? (20)

OpenSSO Aquarium Paris
OpenSSO Aquarium ParisOpenSSO Aquarium Paris
OpenSSO Aquarium Paris
 
Secure a REST API for external public access
Secure a REST API for external public accessSecure a REST API for external public access
Secure a REST API for external public access
 
Chp5 - Sécurité des Services
Chp5 - Sécurité des ServicesChp5 - Sécurité des Services
Chp5 - Sécurité des Services
 
Sayeh hiba-karaa-eya-ferjani-maroua-hamzaoui-balkiss-sys-complexes
Sayeh hiba-karaa-eya-ferjani-maroua-hamzaoui-balkiss-sys-complexesSayeh hiba-karaa-eya-ferjani-maroua-hamzaoui-balkiss-sys-complexes
Sayeh hiba-karaa-eya-ferjani-maroua-hamzaoui-balkiss-sys-complexes
 
Présentation de Microsoft Office 365 et des briques de sécurité Fédération, P...
Présentation de Microsoft Office 365 et des briques de sécurité Fédération, P...Présentation de Microsoft Office 365 et des briques de sécurité Fédération, P...
Présentation de Microsoft Office 365 et des briques de sécurité Fédération, P...
 
TechDays 2010 (CLO305) : Windows Azure App Fabric
TechDays 2010 (CLO305) : Windows Azure App FabricTechDays 2010 (CLO305) : Windows Azure App Fabric
TechDays 2010 (CLO305) : Windows Azure App Fabric
 
Presentation 18 06 2007
Presentation 18 06 2007Presentation 18 06 2007
Presentation 18 06 2007
 
Sécurisation d'accès à un CRM pour appareils Nomade
Sécurisation d'accès à un CRM pour appareils NomadeSécurisation d'accès à un CRM pour appareils Nomade
Sécurisation d'accès à un CRM pour appareils Nomade
 
Webinar SSL Français
Webinar SSL FrançaisWebinar SSL Français
Webinar SSL Français
 
Spring security
Spring securitySpring security
Spring security
 
LemonLDAP::NG et le support SAML2
LemonLDAP::NG et le support SAML2LemonLDAP::NG et le support SAML2
LemonLDAP::NG et le support SAML2
 
Provider Hosted app… Quel intérêt pour l’entreprise
Provider Hosted app…Quel intérêt pour l’entrepriseProvider Hosted app…Quel intérêt pour l’entreprise
Provider Hosted app… Quel intérêt pour l’entreprise
 
Securité des applications web
Securité des applications webSecurité des applications web
Securité des applications web
 
chap 4 Sécurité des accès.pdf
chap 4 Sécurité des accès.pdfchap 4 Sécurité des accès.pdf
chap 4 Sécurité des accès.pdf
 
Nouvelles expériences d'authentification avec Windows 8.1 pour vos applicatio...
Nouvelles expériences d'authentification avec Windows 8.1 pour vos applicatio...Nouvelles expériences d'authentification avec Windows 8.1 pour vos applicatio...
Nouvelles expériences d'authentification avec Windows 8.1 pour vos applicatio...
 
Implémenter de l’authentification forte pour vos environnements Cloud
Implémenter de l’authentification forte pour vos environnements CloudImplémenter de l’authentification forte pour vos environnements Cloud
Implémenter de l’authentification forte pour vos environnements Cloud
 
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
 
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
 
Sécurité des Applications WEB -LEVEL1
 Sécurité des Applications WEB-LEVEL1 Sécurité des Applications WEB-LEVEL1
Sécurité des Applications WEB -LEVEL1
 
SSL strip
SSL stripSSL strip
SSL strip
 

Mais de Microsoft

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuMicrosoft
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaSMicrosoft
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileMicrosoft
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Microsoft
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Microsoft
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Microsoft
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à ZMicrosoft
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Microsoft
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Microsoft
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsMicrosoft
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Microsoft
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryMicrosoft
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Microsoft
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Microsoft
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Microsoft
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET CoreMicrosoft
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Microsoft
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Microsoft
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursMicrosoft
 

Mais de Microsoft (20)

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieu
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaS
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobile
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à Z
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs Analytics
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site Recovery
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET Core
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeurs
 

Vous avez dit protocoles Web d’authentification et d’autorisation ! De quoi parlez-vous ?

  • 1.
  • 2. Vous avez dit protocoles Web d’authentification et d’autorisation! De quoi parlezvous ? Philippe Beraud Jean-Yves Grasset Direction Technique | Microsoft France philippe.beraud@microsoft.com, @philberd jyvesg@microsoft.com, Sécurité
  • 3. Donnez votre avis ! Depuis votre smartphone sur : http://notes.mstechdays.fr De nombreux lots à gagner toute les heures !!! Claviers, souris et jeux Microsoft… Merci de nous aider à améliorer les Techdays ! #mstechdays Sécurité
  • 5. AUTHENTIFICATION BASIQUE HTTP Pour commencer par le début… #mstechdays Sécurité
  • 6. Vue d’ensemble de l’authentification basique • Protocole d’authentification défini dans le RFC 2617 • Fondé sur un Challenge / Réponse • Utilise le protocole HTTP pour l’échange des messages #mstechdays Sécurité
  • 7. Authentification basique Le navigateur envoie une requête Entête WWW-Authenticate Renvoyée avec un 401 Listes sur les méthodes d'authentification prises en charge Entête Authorization Méthode d’authentification: Basic Informations d’identification: encodes en Base64 #mstechdays Sécurité
  • 8. Echanges pour l’authentification WWW-Authenticate: Basic Authorization: Basic <Cred> Authorization: Basic <Cred> #mstechdays Sécurité
  • 10. SAML 2.0 - Assertions Paquet d’information sur une identité Synonyme de "jeton (de sécurité)" Fondé sur XML Se compose de déclarations : Déclarations d’authentification Déclarations d’attribut Déclarations de décision d’autorisation #mstechdays Sécurité
  • 11. SAML 2.0 - Protocoles Concerne le format des éléments de requête et de réponse Sur la base de Requête / Réponse Définis dans la spécification SAML Core #mstechdays Sécurité Protocoles SAML 2.0 Authentication Request Artifact Resolution Single Logout Assertion Query and Request Name Identifier Management Name Identifier Mapping
  • 12. SAML 2.0 - Liaisons Associent un message de protocole avec un protocole de transport Exemples La liaison POST HTTP spécifie comment un message de protocole SAML est envoyé par les méthode POST HTTP La liaison SOAP SAML spécifie comment un message de protocole SAML est envoyé avec SOAP 1.1 #mstechdays Sécurité Liaisons SAML 2.0 HTTP Redirect HTTP POST HTTP Artifact SAML SOAP Reverse SOAP SAML URI
  • 13. SAML 2.0 - Profils Décrit comment les assertions, les protocoles et les liaisons se combinent pour former un scénario Exemple : Profil Web SSO Authentication Request Protocol Liaison Redirection HTTP au niveau fournisseur d’identité (IdP) Liaison POST HTTP au niveau fournisseur de service (SP) #mstechdays Sécurité Profils SAML 2.0 Profils SSO • • • • • Web Browser SSO Profile Enhanced Client or Proxy (ECP) Profile Identity Provider Discovery Profile Single Logout Profile Name Identifier Management Profile Artifact Resolution Profile Assertion Query/Request Profile Name Identifier Mapping Profile SAML Attribute Profiles • • • • • Basic Attribute Profile X.500/LDAP Attribute Profile UUID Attribute Profile DCE PAC Attribute Profile XACML Attribute Profile
  • 14. Profil SAML Web SSO Une relation de confiance est établie entre l'application Web et l’émetteur SAML L'utilisateur accède à l'application Web L’application Web détecte que l'utilisateur n'est pas authentifié et le redirige vers l'émetteur SAML L’utilisateur accède automatiquement à l'émetteur SAML L’utilisateur s'authentifie auprès de l’émetteur SAML L’émetteur SAML construit le jeton et le renvoie à l'utilisateur L’utilisateur POSTe le jeton à l’application Web #mstechdays Sécurité
  • 16. WS-Federation – Profil de demandeur passif Relation avec SAML-P Similaire au profil SAML Web SSO mais non compatible • • • Messages de requête et de réponse différents Pas de cas d’utilisation IdP-initiated Pas de profil Assertion Query #mstechdays Sécurité
  • 18. L’objectif d’OAuth 2.0 Permettre aux utilisateurs de fournir à une application un accès limité à leurs données de manière fiable Résoudre la problématique de stockage des informations d’identification : Vous n'avez pas assez confiance en l'application pour lui donner votre mot de passe Vous voulez contrôler ce que l'application peut faire Vous souhaitez révoquer les autorisations d’accès aux données d'une application plus tard Vous souhaitez modifier votre mot de passe sans avoir à le mettre à jour dans toutes les applications #mstechdays Sécurité
  • 19. Les différents rôles Le serveur de ressources Le client Héberge la ressource Typiquement un fournisseur d'API L’application invoquant des API pour effectuer des actions sur la ressource Le propriétaire de la ressource Le serveur d’autorisation Possède la ressource Typiquement un utilisateur de l’application #mstechdays Sécurité Emet le jeton d'accès utilisé par le client pour accéder à la ressource Authentifie le propriétaire de la ressource Obtient du propriétaire de la ressource un consentement d’accès
  • 20. Les 4 flux officiels Flux Code d’autorisation Applications Web côté Serveur (par ex. Amazon accédant à Facebook en votre nom) Flux implicite Utilisé pour des applications Web côté client s’exécutant dans le navigateur (JavaScript) Flux Mot de passe du propriétaire de la ressource Clients (dignes) de confiance, tels que les applications mobiles client obtenus à partir du serveur de ressources (par ex. le client officiel Facebook) Flux Informations d’identification du client Les clients qui peuvent utiliser des ressources indépendamment de l'autorisation du propriétaire de la ressource #mstechdays Sécurité
  • 21. Flux Code d’autorisation Scénario Le client OAuth 2.0 est une application serveur Web Un accès à long terme est nécessaire pour la ressource Le jeton d'accès ne doit pas être divulgué au navigateur Exemple Jacques veut partager un achat sur ​Amazon sur son journal Facebook Rôle OAuth 2.0 : • • • • Propriétaire de la ressource : Jacques Client : Amazon Serveur de ressources : Facebook Ressource : journal Facebook de Jacques #mstechdays Sécurité
  • 22. Résumé du flux Code d’autorisation 1. 2. 3. 4. 5. Le client redirige le propriétaire de la ressource vers le serveur d'autorisation Le propriétaire de la ressource s’authentifie et donne son consentement Le serveur d’autorisation redirige le propriétaire de la ressource vers le client avec le code d’autorisation Le client demande un jeton d'accès au serveur d'autorisation Le serveur d’autorisation renvoie un jeton d’accès au Client #mstechdays Sécurité
  • 23. Flux implicite Scénario Le client OAuth 2.0 est un composant client du navigateur (c.à.d. JavaScript ou Flash) Le navigateur est (fortement) digne de confiance L’accès à la ressource n'est que temporaire… Exemple Jacques utilise une application Web utilisant JavaScript dans le navigateur, et qui souhaite accéder à ses photos sur Facebook Rôles OAuth 2.0 : • • • • Propriétaire de la ressource : Jacques Client : Application Web (Serveur et composants JavaScript) Serveur de ressources : Facebook Ressource : Photos Facebook de Jacques #mstechdays Sécurité
  • 24. Résumé du flux implicite 1. 2. 3. 4. Le client redirige le propriétaire de la ressource vers le serveur d'autorisation Le propriétaire de la ressource s’authentifie et donne son consentement Le serveur d’autorisation redirige le propriétaire de la ressource vers le composant serveur du client avec le jeton d’accès dans un fragment URL Le composant serveur sur le client renvoie un script qui permet d’extraire le jeton d’accès à partir du fragment URL #mstechdays Sécurité
  • 25. Flux Mot de passe du propriétaire de la ressource Scénario L’application client est digne d’une grande confiance Exemple Jacques utilise l’application officielle Facebook pour son smartphone Rôles OAuth 2.0 : • • • • Propriétaire de la ressource : Jacques Client : Application officielle Facebook Serveur de ressources : Facebook Ressource : Contenu Facebook de Jacques #mstechdays Sécurité
  • 26. Résumé du flux Mot de passe du propriétaire de la ressource 1. 2. 3. Le propriétaire de la ressource donne ses informations d’identification au Client Le client utilise les informations d’identification pour demander un jeton d’accès au serveur d’autorisation Le serveur d’autorisation procède à une authentification, valide les informations d’identification du propriétaire de la ressource et retourne un jeton d’accès #mstechdays Sécurité
  • 27. Flux Informations d’identification du client Scénario Le client OAuth 2.0 nécessite des données spécifiques non-utilisateur, au nom du client plutôt qu’à celui l'utilisateur Le client OAuth 2.0 peut stocker en toute sécurité une clé utilisée pour l'authentification du client Exemple Jacques utilise une application Web d'entreprise qui lit son appartenance à un groupe depuis Windows Azure Active Directory Rôles OAuth 2.0 : • • • • Propriétaire de la ressource : John Client : Application Web Métier Serveur de ressources: Windows Azure AD Ressource : Liste des groupes dont Jacques est membre #mstechdays Sécurité
  • 28. Résumé du flux Informations d’identification du client 1. 2. Le client s’authentifie auprès du serveur d’autorisation et demande un jeton d’accès à partir du point de terminaison jeton Le serveur d’autorisation vérifie les information d’identification du client, et si celles-ci sont valides, émet un jeton d’accès #mstechdays Sécurité
  • 30. OpenID Connect Standard encore à l’état de projet OAuth 2.0 n'est pas destiné à l'authentification Opère hors d'une hypothèse; la personne donnant l’accès pourrait ne pas être l'utilisateur Aucun jeton d'identité est fourni Définit une couche d'identité sur le dessus d’OAuth 2.0 Utilise deux flux OAuth 2.0 : • • Flux Code d’Autorisation Flux implicite Ajoute un jeton d’identité dans l’échange OAuth 2.0 Ajoute la possibilité de demander des revendications à l’aide d’un jeton d’accès OAuth 2.0 #mstechdays Sécurité
  • 31. Authentification avec le flux Code d’autorisation Un client s’enregistre avec le fournisseur OpenID Connect (OP) L'utilisateur accède à l'application Web et initie une connexion L’application Web redirige l’utilisateur vers l’OP L’utilisateur s’authentifie auprès de l’OP et donne son consentement afin que l’application Web utilise son identité L’OP construit un code d’autorisation [C] L’OP redirige l’utilisateur vers l’application Web avec le code d’autorisation L’application Web envoie le code d’autorisation à l’OP L’OP crée le jeton d’identité [I] et le jeton d’accès et les retourne à l’application Web L’application Web vérifie le jeton d’identité #mstechdays Sécurité 
  • 32. "Qui parle quoi ?" (nov. 2013) App native OAuth 2.0, flux Code d’autorisation OAuth 2.0, client public AD FS 3.0 Préversion* App Web WS-Federation AD FS 2.0+ Disponible SAML 2.0 AD FS 2.0+ Disponible OpenID Connect Non disponible En cours d’implémentation OAuth 2.0, flux Code d’autorisation, client confidentiel Non disponible Préversion* Non disponible Disponible Non disponible En cours d’implémentation Web vers Web API OAuth 2.0, flux Informations Serveur vers Web d’authentification du client API OAuth 2.0 "Act As" #mstechdays Sécurité
  • 33. Livres blancs et guides Etape-par-Etape Leverage Windows Azure AD for modern business applications
  • 34. Pour aller plus loin activdirectory.windowsazure.com/develop Documentation Microsoft TechNet http://go.microsoft.com/fwlink/p/?linkid=290967 Documentation Microsoft MSDN http://go.microsoft.com/fwlink/p/?linkid=290966 Blog d’équipe Microsoft Active Directory http://blogs.msdn.com/b/active_directory_team_blog

Notas do Editor

  1. VerbsVerbs tell the server what to doGET and POST most common, but others used in various ways – i.e. REST
  2. Responses composed of:CodeHeadersBlank LineBodyResponse CodesGive clues about errors401 means not authenticated
  3. RFC 2965http://fr.wikipedia.org/wiki/Cookie_(informatique)
  4. Purpose: To describe the basics of WS-FederationSimilar to the SAML Web SSO ProfileUses different messagesSequence is pretty much the same as SAMLPurely SP-Initiated
  5. Refresh tokens add an element of security, so that the access token can have a lifetime while still giving the client a way to access the resource. The refresh token is no good without the client’s secret. Really what a refresh token does, is that it’s an authorization for a client to obtain an access token in the future without intervention of the user.
  6. http://self-issued.info/?p=1168
  7. Why have an access token? For UserInfo retrieval
  8. The above papers are available on the Microsoft Download Center:Active Directory from the on-premises to the Cloud – Windows Azure AD whitepapers: http://www.microsoft.com/en-us/download/details.aspx?id=36391