SlideShare a Scribd company logo
1 of 26
Oauth 2.0

28 – 11 - 2013

Zid Sonia
Plan
Contexte

Social Login

Oauth 2.0

Exemple d'utilisation

Conclusion

Contexte


Une complexité croissante
La complexité est au cœur des systèmes
d'information (SI) d'aujourd'hui


Une décentralisation nécessaire

Une identité multiple
Emergence du Social Login

Utiliser les services d'authentification des
réseaux sociaux
Social Login - C'est quoi ?
Social Login - Tendance
Social Login - Statistiques
Social Login – Pourquoi ?


Pour l'utilisateur
- Moins de login et mots de passe
- Meilleure gestion de nos identités
- Meilleure controle



Pour le fournisseur de service
- Enregistrement assez simple
- Information plus fiable
- Plus d'information!
Social Login – Les standards
Autorisation
Délégation de l'autorisation

Oauth 2.0
Authentification SSO

SAML 2.0

OpenID

Service d'identité
Social Login – Les standards
OpenID

SAML

Systéme d'autentification qui permet l'autentification unique
Ne gère pas les autorisations

Accès à des informations trop confidentielles
Oauth 2.0 – Emergence
OAuth est un protocole qui permet l’accès à des
données de manière sécurisée et en fonction de ce
que l’utilisateur souhaite autoriser d’accès.

OAuth est né de la volonté d’offrir une solution simple et
sécurisée aux mécanismes d’autorisation 3 parties.
–

D’une part le client qui représente l’application qui
veut utiliser mes données,

–

D’autre part le serveur qui possède les données en
question

–

L'utilisateur qui valide ou non l’accès à ses données.
Oauth 2.0 – Emergence
Oauth 2.0 – Comment ça marche
Bonjour Blog, j'aimerai aussi que tu
Publies mes « posts » sur Facebook

Pas de probléme, donne moi ton login
Et ton mot de passe Facebook, je m'y
connecterai en ton nom pour mettre à jour
ton profil
Oauth 2.0 – Comment ça marche
Tu m'excuses, mais j'ai moyennement
Confiance en toi Blog, tu ne peut pas
Faire autrement que avoir mes
Informations confidentielles
Oauth 2.0 - framework d'autorisation

Permettre à des applications et des fournisseurs de services
d'accéder à des données d'un utilisateur en lui demandant sa
permission tout en protégeant le pseudonyme et le mot de passe
des utilisateurs.
Oauth 2.0 – Les roles
Resource
Owner

Un internaute

Client

Utilise un blog

Authorization
Server

Resource
Server

En s'authentifiant via Facebook
Et pour également publier mes
Posts sur son profil
Oauth 2.0 - Le principe d'autorisation
2- S'authentifie et autorise l'application cliente

3- Délivre le token d'accés
1- Accéde au
Service

Client

Authorization
Server

Délégue
l'autorisation

4- Accéde à la ressource protégée

Resource Server
Oauth 2.0 - Le principe d'authentification

Moi

1- Blog me demande l'autorisation d'aller récupérer chez Facebook les données
relatives à mon identité pour m'authentifier
2- Je m'authentifie chez Facebook et autorise Blog à lire mes données d'identité
Exemple d'utilisation avec Google
API en PHP
L'utilisation de OAuth se décompose en plusieurs étapes:
On redirige l'utilisateur vers une page de Google demandant à
l'utilisateur s'il accepte de fournir certaines de ses informations
personnelles à notre site web.
Google redirige l'utilisateur vers une page de retour, spécifiée
dans la requête précédente avec un code de retour.
Le site demande à Google une clé d'accès aux APIs Google
avec le code de retour que celui-ci nous à retourné
précédemment.
Le site utilise la clé d'accès fournie par Google pour obtenir
des informations en effectuant des requêtes vers l'API Google
souhaitée.
Rediriger l'utilisateur vers une page Google
demandant l'autorisation à celui-ci de fournir
des informations à notre site
//Dans une page du site, insérer un bouton pour rediriger vers Google
<source lang="html5">
<button>Autoriser ce site à utiliser mes informations personnelles sur Google</button>
</source>
<br/>
//Et définir une redirection vers la page de Google qui effectuera la demande d'autorisation:
<br/><br/>
<source lang="javascript">
$("button").click(function() {
window.location = "https://accounts.google.com/o/oauth2/auth?" +
"scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile&"+
"state=%2Fprofile&"+
"redirect_uri=http://localhost/oauth2callback.php&"+
"response_type=code&"+
"client_id=1049956440006.apps.googleusercontent.com";
Récupérer le code de validation envoyé
par Google et demander une clé
d'accès aux APIs Google
Comme précisé dans la requête envoyée précédemment, Google
renvoie vers la page de callback (ici
http://localhost/oauth2callback.php) avec deux paramètres
HTTP :
le paramètre state fourni dans l'URL ainsi que le code de
validation. Pour récupérer le code de validation, il suffit
d'utiliser la variable $_GET['code']

L'étape suivante consiste à envoyer une autre requête HTTP
vers une URL de Google pour demander à celui-ci de
retourner une clé d'accès (Access Token) aux APIs Google.
Récupérer le code de validation envoyé
par Google et demander une clé
d'accès aux APIs Google
$r = new HttpRequest('https://accounts.google.com/o/oauth2/token', HttpRequest::METH_POST);
$fields = array(

'code'=> urlencode($codeGoogle),

'client_id'=>urlencode("1049956440006.apps.googleusercontent.com"),
'client_secret'=>urlencode("BpOaC4VbUZC7qgUqO8K4bF9D"),
'redirect_uri'=>"http://localhost/oauth2callback.php",
'grant_type'=>'authorization_code'
);
$r->addPostFields($fields);

try {
$r->send();
$bodyresponse = $r->getResponseBody();

// Ici il suffit d'effectuer une requête sur une API Google avec la clé d'accès retournée dans la réponse JSON $bodyresponse

} catch (HttpException $ex) {
echo $ex;
}
Exemple d'utilisation avec Google
API en PHP

Cet exemple permet uniquement d'avoir accès à
certaines informations provenant de Google :
l'adresse de courriel de l'utilisateur et les informations
du profil (photo, nom, etc.). Pour ajouter, modifier ou
supprimer des informations, il faut modifier la variable
scope dans la première requête envoyée à Google.
Conclusion

Un protocole d'autorisation qui
authentifie
Merci pour votre attention
Références

http://fr.wikipedia.org/wiki/OAuth?veaction=edit
https://developers.google.com/appengine/docs/java/oauth/overview?hl=it
https://developer.linkedin.com/documents/authentication
http://developer.mixi.co.jp/appli/ns/mob/2-legged-oauth/
https://github.com/reddit/reddit/wiki/OAuth2
http://dev.viadeo.com/documentation/authentication/oauth-authentication/
https://dev.xing.com/docs/authentication
http://www.slideshare.net/ASF-WS/asfws-2021-oauth-un-protocoledautorisation-qui-authentifie-par-maxime-feroulcolequiauthentifie

More Related Content

What's hot

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
 
Présentation Oauth OpenID
Présentation Oauth OpenIDPrésentation Oauth OpenID
Présentation Oauth OpenIDPascal Flamand
 
LemonLDAP::NG, un WebSSO libre
LemonLDAP::NG, un WebSSO libreLemonLDAP::NG, un WebSSO libre
LemonLDAP::NG, un WebSSO libreClément OUDOT
 
Matinée Pour Comprendre LinID - Mise en place de la fédération des identités...
Matinée Pour Comprendre LinID -  Mise en place de la fédération des identités...Matinée Pour Comprendre LinID -  Mise en place de la fédération des identités...
Matinée Pour Comprendre LinID - Mise en place de la fédération des identités...Clément OUDOT
 
Oauth2 & OpenID Connect
Oauth2 & OpenID ConnectOauth2 & OpenID Connect
Oauth2 & OpenID ConnectPascal Flamand
 
Oauth2 et OpenID Connect
Oauth2 et OpenID ConnectOauth2 et OpenID Connect
Oauth2 et OpenID ConnectPascal Flamand
 
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
 
[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
 
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
 
Paris Web 2015 - France Connect et OpenId Connect
Paris Web 2015 - France Connect et OpenId ConnectParis Web 2015 - France Connect et OpenId Connect
Paris Web 2015 - France Connect et OpenId ConnectFrançois Petitit
 
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 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
 
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
 
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
 
La gestion des identités pour qui, pourquoi ?
La gestion des identités pour qui, pourquoi ?La gestion des identités pour qui, pourquoi ?
La gestion des identités pour qui, pourquoi ?Benoit Mortier
 
LemonLDAP::NG, un WebSSO libre‎ en Perl !
LemonLDAP::NG, un WebSSO libre‎ en Perl !LemonLDAP::NG, un WebSSO libre‎ en Perl !
LemonLDAP::NG, un WebSSO libre‎ en Perl !Clément OUDOT
 

What's hot (20)

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
 
Sso fédération
Sso fédérationSso fédération
Sso fédération
 
Drupal sso
Drupal ssoDrupal sso
Drupal sso
 
Présentation Oauth OpenID
Présentation Oauth OpenIDPrésentation Oauth OpenID
Présentation Oauth OpenID
 
LemonLDAP::NG, un WebSSO libre
LemonLDAP::NG, un WebSSO libreLemonLDAP::NG, un WebSSO libre
LemonLDAP::NG, un WebSSO libre
 
La Grande Famille OAuth 2.0
La Grande Famille OAuth 2.0La Grande Famille OAuth 2.0
La Grande Famille OAuth 2.0
 
Matinée Pour Comprendre LinID - Mise en place de la fédération des identités...
Matinée Pour Comprendre LinID -  Mise en place de la fédération des identités...Matinée Pour Comprendre LinID -  Mise en place de la fédération des identités...
Matinée Pour Comprendre LinID - Mise en place de la fédération des identités...
 
Oauth2 & OpenID Connect
Oauth2 & OpenID ConnectOauth2 & OpenID Connect
Oauth2 & OpenID Connect
 
Oauth2 et OpenID Connect
Oauth2 et OpenID ConnectOauth2 et OpenID Connect
Oauth2 et OpenID Connect
 
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
 
[JDLL 2016] OpenID Connect et FranceConnect
[JDLL 2016] OpenID Connect et FranceConnect[JDLL 2016] OpenID Connect et FranceConnect
[JDLL 2016] OpenID Connect et FranceConnect
 
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
 
Paris Web 2015 - France Connect et OpenId Connect
Paris Web 2015 - France Connect et OpenId ConnectParis Web 2015 - France Connect et OpenId Connect
Paris Web 2015 - France Connect et OpenId Connect
 
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 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)
 
OpenSSO Aquarium Paris
OpenSSO Aquarium ParisOpenSSO Aquarium Paris
OpenSSO Aquarium Paris
 
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 ?...
 
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
 
La gestion des identités pour qui, pourquoi ?
La gestion des identités pour qui, pourquoi ?La gestion des identités pour qui, pourquoi ?
La gestion des identités pour qui, pourquoi ?
 
LemonLDAP::NG, un WebSSO libre‎ en Perl !
LemonLDAP::NG, un WebSSO libre‎ en Perl !LemonLDAP::NG, un WebSSO libre‎ en Perl !
LemonLDAP::NG, un WebSSO libre‎ en Perl !
 

Similar to LTO Auth

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
 
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
 
Guide d’architecture pour le support de la fédération d’identité dans une app...
Guide d’architecture pour le support de la fédération d’identité dans une app...Guide d’architecture pour le support de la fédération d’identité dans une app...
Guide d’architecture pour le support de la fédération d’identité dans une app...Gregory Haik
 
iut 2012-2. Où est l'identité numérique 1 ? Côté plateforme
iut 2012-2. Où est l'identité numérique 1 ? Côté plateformeiut 2012-2. Où est l'identité numérique 1 ? Côté plateforme
iut 2012-2. Où est l'identité numérique 1 ? Côté plateformerichard peirano
 
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
 
File manager authentification
File manager authentificationFile manager authentification
File manager authentificationBabacar Ndoye
 
BYOD demo Extravaganza : un exemple de mise en œuvre de bout-en-bout avec les...
BYOD demo Extravaganza : un exemple de mise en œuvre de bout-en-bout avec les...BYOD demo Extravaganza : un exemple de mise en œuvre de bout-en-bout avec les...
BYOD demo Extravaganza : un exemple de mise en œuvre de bout-en-bout avec les...Microsoft
 
Confidentialité des données privées et RGPD avec WordPress
Confidentialité des données privées et RGPD avec WordPressConfidentialité des données privées et RGPD avec WordPress
Confidentialité des données privées et RGPD avec WordPressSylvie Clément
 
Alphorm.com Formation Microsoft Azure (AZ-500) : Sécurité
Alphorm.com Formation Microsoft Azure (AZ-500) : SécuritéAlphorm.com Formation Microsoft Azure (AZ-500) : Sécurité
Alphorm.com Formation Microsoft Azure (AZ-500) : SécuritéAlphorm
 
Authentification sociale en angular 1.pptx
Authentification sociale en angular 1.pptxAuthentification sociale en angular 1.pptx
Authentification sociale en angular 1.pptxMickael ROLO
 
Presentation 18 06 2007
Presentation 18 06 2007Presentation 18 06 2007
Presentation 18 06 2007Walibi
 
OIDC jusque dans les applications mobiles
OIDC jusque dans les applications mobilesOIDC jusque dans les applications mobiles
OIDC jusque dans les applications mobilesxavierguimard
 
Comment intégrer windows azure dans mon système d'information
Comment intégrer windows azure dans mon système d'informationComment intégrer windows azure dans mon système d'information
Comment intégrer windows azure dans mon système d'informationMicrosoft Technet France
 
Présentation d'OpenID
Présentation d'OpenIDPrésentation d'OpenID
Présentation d'OpenIDmmti2008
 
Le futur de l'authentification webAuthn
Le futur de l'authentification webAuthnLe futur de l'authentification webAuthn
Le futur de l'authentification webAuthnChristophe Villeneuve
 
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
 
Administrer son site web - Formation voZed - Mai 2015
Administrer son site web - Formation voZed - Mai 2015Administrer son site web - Formation voZed - Mai 2015
Administrer son site web - Formation voZed - Mai 2015SylvainBis
 

Similar to LTO Auth (20)

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
 
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
 
Guide d’architecture pour le support de la fédération d’identité dans une app...
Guide d’architecture pour le support de la fédération d’identité dans une app...Guide d’architecture pour le support de la fédération d’identité dans une app...
Guide d’architecture pour le support de la fédération d’identité dans une app...
 
iut 2012-2. Où est l'identité numérique 1 ? Côté plateforme
iut 2012-2. Où est l'identité numérique 1 ? Côté plateformeiut 2012-2. Où est l'identité numérique 1 ? Côté plateforme
iut 2012-2. Où est l'identité numérique 1 ? Côté plateforme
 
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
 
File manager authentification
File manager authentificationFile manager authentification
File manager authentification
 
BYOD demo Extravaganza : un exemple de mise en œuvre de bout-en-bout avec les...
BYOD demo Extravaganza : un exemple de mise en œuvre de bout-en-bout avec les...BYOD demo Extravaganza : un exemple de mise en œuvre de bout-en-bout avec les...
BYOD demo Extravaganza : un exemple de mise en œuvre de bout-en-bout avec les...
 
Confidentialité des données privées et RGPD avec WordPress
Confidentialité des données privées et RGPD avec WordPressConfidentialité des données privées et RGPD avec WordPress
Confidentialité des données privées et RGPD avec WordPress
 
Alphorm.com Formation Microsoft Azure (AZ-500) : Sécurité
Alphorm.com Formation Microsoft Azure (AZ-500) : SécuritéAlphorm.com Formation Microsoft Azure (AZ-500) : Sécurité
Alphorm.com Formation Microsoft Azure (AZ-500) : Sécurité
 
Authentification sociale en angular 1.pptx
Authentification sociale en angular 1.pptxAuthentification sociale en angular 1.pptx
Authentification sociale en angular 1.pptx
 
Drupal 7 et les SSO
Drupal 7 et les SSODrupal 7 et les SSO
Drupal 7 et les SSO
 
Presentation 18 06 2007
Presentation 18 06 2007Presentation 18 06 2007
Presentation 18 06 2007
 
OIDC jusque dans les applications mobiles
OIDC jusque dans les applications mobilesOIDC jusque dans les applications mobiles
OIDC jusque dans les applications mobiles
 
Comment intégrer windows azure dans mon système d'information
Comment intégrer windows azure dans mon système d'informationComment intégrer windows azure dans mon système d'information
Comment intégrer windows azure dans mon système d'information
 
Présentation d'OpenID
Présentation d'OpenIDPrésentation d'OpenID
Présentation d'OpenID
 
OpenID Presentation
OpenID PresentationOpenID Presentation
OpenID Presentation
 
SSL strip
SSL stripSSL strip
SSL strip
 
Le futur de l'authentification webAuthn
Le futur de l'authentification webAuthnLe futur de l'authentification webAuthn
Le futur de l'authentification webAuthn
 
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
 
Administrer son site web - Formation voZed - Mai 2015
Administrer son site web - Formation voZed - Mai 2015Administrer son site web - Formation voZed - Mai 2015
Administrer son site web - Formation voZed - Mai 2015
 

More from ODC Orange Developer Center

Tendances des applications mobiles en 2014 de Noha Jaafar
Tendances des applications mobiles en 2014 de Noha JaafarTendances des applications mobiles en 2014 de Noha Jaafar
Tendances des applications mobiles en 2014 de Noha JaafarODC Orange Developer Center
 

More from ODC Orange Developer Center (20)

Lightning Talks Réalité Augmentée
 Lightning Talks Réalité Augmentée Lightning Talks Réalité Augmentée
Lightning Talks Réalité Augmentée
 
Graphiste vs dévelopeur de Noha Jaafar
Graphiste vs dévelopeur de Noha JaafarGraphiste vs dévelopeur de Noha Jaafar
Graphiste vs dévelopeur de Noha Jaafar
 
Tendances des applications mobiles en 2014 de Noha Jaafar
Tendances des applications mobiles en 2014 de Noha JaafarTendances des applications mobiles en 2014 de Noha Jaafar
Tendances des applications mobiles en 2014 de Noha Jaafar
 
Countly
CountlyCountly
Countly
 
Owasp
OwaspOwasp
Owasp
 
Frameworks de développement Mobile
Frameworks de développement MobileFrameworks de développement Mobile
Frameworks de développement Mobile
 
Les bibliothèques sous Android
Les bibliothèques sous AndroidLes bibliothèques sous Android
Les bibliothèques sous Android
 
Les Fragments
Les FragmentsLes Fragments
Les Fragments
 
Sencha Touch
Sencha TouchSencha Touch
Sencha Touch
 
Personnalisation bouton et animations Android
Personnalisation bouton et animations AndroidPersonnalisation bouton et animations Android
Personnalisation bouton et animations Android
 
Android Device Monitor
Android Device MonitorAndroid Device Monitor
Android Device Monitor
 
Monkey & Monkey Runner
Monkey & Monkey RunnerMonkey & Monkey Runner
Monkey & Monkey Runner
 
Itinéraire sur Google Maps
Itinéraire sur Google MapsItinéraire sur Google Maps
Itinéraire sur Google Maps
 
Partage sur les réseaux sociaux
Partage sur les réseaux sociauxPartage sur les réseaux sociaux
Partage sur les réseaux sociaux
 
Shared Preferences
Shared PreferencesShared Preferences
Shared Preferences
 
Action Bar - AB & ActionBarSherlock - ABS
Action Bar - AB & ActionBarSherlock - ABSAction Bar - AB & ActionBarSherlock - ABS
Action Bar - AB & ActionBarSherlock - ABS
 
Upload - Download
Upload - DownloadUpload - Download
Upload - Download
 
Upload - Download
Upload - DownloadUpload - Download
Upload - Download
 
Sensors
SensorsSensors
Sensors
 
Framework php « Codeignitor »
Framework php « Codeignitor » Framework php « Codeignitor »
Framework php « Codeignitor »
 

LTO Auth

  • 1. Oauth 2.0 28 – 11 - 2013 Zid Sonia
  • 3. Contexte  Une complexité croissante La complexité est au cœur des systèmes d'information (SI) d'aujourd'hui  Une décentralisation nécessaire Une identité multiple
  • 4. Emergence du Social Login Utiliser les services d'authentification des réseaux sociaux
  • 5. Social Login - C'est quoi ?
  • 6. Social Login - Tendance
  • 7. Social Login - Statistiques
  • 8. Social Login – Pourquoi ?  Pour l'utilisateur - Moins de login et mots de passe - Meilleure gestion de nos identités - Meilleure controle  Pour le fournisseur de service - Enregistrement assez simple - Information plus fiable - Plus d'information!
  • 9. Social Login – Les standards Autorisation Délégation de l'autorisation Oauth 2.0 Authentification SSO SAML 2.0 OpenID Service d'identité
  • 10. Social Login – Les standards OpenID SAML Systéme d'autentification qui permet l'autentification unique Ne gère pas les autorisations Accès à des informations trop confidentielles
  • 11. Oauth 2.0 – Emergence OAuth est un protocole qui permet l’accès à des données de manière sécurisée et en fonction de ce que l’utilisateur souhaite autoriser d’accès. OAuth est né de la volonté d’offrir une solution simple et sécurisée aux mécanismes d’autorisation 3 parties. – D’une part le client qui représente l’application qui veut utiliser mes données, – D’autre part le serveur qui possède les données en question – L'utilisateur qui valide ou non l’accès à ses données.
  • 12. Oauth 2.0 – Emergence
  • 13. Oauth 2.0 – Comment ça marche Bonjour Blog, j'aimerai aussi que tu Publies mes « posts » sur Facebook Pas de probléme, donne moi ton login Et ton mot de passe Facebook, je m'y connecterai en ton nom pour mettre à jour ton profil
  • 14. Oauth 2.0 – Comment ça marche Tu m'excuses, mais j'ai moyennement Confiance en toi Blog, tu ne peut pas Faire autrement que avoir mes Informations confidentielles
  • 15. Oauth 2.0 - framework d'autorisation Permettre à des applications et des fournisseurs de services d'accéder à des données d'un utilisateur en lui demandant sa permission tout en protégeant le pseudonyme et le mot de passe des utilisateurs.
  • 16. Oauth 2.0 – Les roles Resource Owner Un internaute Client Utilise un blog Authorization Server Resource Server En s'authentifiant via Facebook Et pour également publier mes Posts sur son profil
  • 17. Oauth 2.0 - Le principe d'autorisation 2- S'authentifie et autorise l'application cliente 3- Délivre le token d'accés 1- Accéde au Service Client Authorization Server Délégue l'autorisation 4- Accéde à la ressource protégée Resource Server
  • 18. Oauth 2.0 - Le principe d'authentification Moi 1- Blog me demande l'autorisation d'aller récupérer chez Facebook les données relatives à mon identité pour m'authentifier 2- Je m'authentifie chez Facebook et autorise Blog à lire mes données d'identité
  • 19. Exemple d'utilisation avec Google API en PHP L'utilisation de OAuth se décompose en plusieurs étapes: On redirige l'utilisateur vers une page de Google demandant à l'utilisateur s'il accepte de fournir certaines de ses informations personnelles à notre site web. Google redirige l'utilisateur vers une page de retour, spécifiée dans la requête précédente avec un code de retour. Le site demande à Google une clé d'accès aux APIs Google avec le code de retour que celui-ci nous à retourné précédemment. Le site utilise la clé d'accès fournie par Google pour obtenir des informations en effectuant des requêtes vers l'API Google souhaitée.
  • 20. Rediriger l'utilisateur vers une page Google demandant l'autorisation à celui-ci de fournir des informations à notre site //Dans une page du site, insérer un bouton pour rediriger vers Google <source lang="html5"> <button>Autoriser ce site à utiliser mes informations personnelles sur Google</button> </source> <br/> //Et définir une redirection vers la page de Google qui effectuera la demande d'autorisation: <br/><br/> <source lang="javascript"> $("button").click(function() { window.location = "https://accounts.google.com/o/oauth2/auth?" + "scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile&"+ "state=%2Fprofile&"+ "redirect_uri=http://localhost/oauth2callback.php&"+ "response_type=code&"+ "client_id=1049956440006.apps.googleusercontent.com";
  • 21. Récupérer le code de validation envoyé par Google et demander une clé d'accès aux APIs Google Comme précisé dans la requête envoyée précédemment, Google renvoie vers la page de callback (ici http://localhost/oauth2callback.php) avec deux paramètres HTTP : le paramètre state fourni dans l'URL ainsi que le code de validation. Pour récupérer le code de validation, il suffit d'utiliser la variable $_GET['code'] L'étape suivante consiste à envoyer une autre requête HTTP vers une URL de Google pour demander à celui-ci de retourner une clé d'accès (Access Token) aux APIs Google.
  • 22. Récupérer le code de validation envoyé par Google et demander une clé d'accès aux APIs Google $r = new HttpRequest('https://accounts.google.com/o/oauth2/token', HttpRequest::METH_POST); $fields = array( 'code'=> urlencode($codeGoogle), 'client_id'=>urlencode("1049956440006.apps.googleusercontent.com"), 'client_secret'=>urlencode("BpOaC4VbUZC7qgUqO8K4bF9D"), 'redirect_uri'=>"http://localhost/oauth2callback.php", 'grant_type'=>'authorization_code' ); $r->addPostFields($fields); try { $r->send(); $bodyresponse = $r->getResponseBody(); // Ici il suffit d'effectuer une requête sur une API Google avec la clé d'accès retournée dans la réponse JSON $bodyresponse } catch (HttpException $ex) { echo $ex; }
  • 23. Exemple d'utilisation avec Google API en PHP Cet exemple permet uniquement d'avoir accès à certaines informations provenant de Google : l'adresse de courriel de l'utilisateur et les informations du profil (photo, nom, etc.). Pour ajouter, modifier ou supprimer des informations, il faut modifier la variable scope dans la première requête envoyée à Google.
  • 25. Merci pour votre attention