Your SlideShare is downloading. ×
LTO Auth
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

LTO Auth

376

Published on

Présentation élaborée par Mlle. Ines dans le cadre des sessions de Lightning Talks à l'Orange Developer Center.

Présentation élaborée par Mlle. Ines dans le cadre des sessions de Lightning Talks à l'Orange Developer Center.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
376
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Oauth 2.0 28 – 11 - 2013 Zid Sonia
  • 2. Plan Contexte  Social Login  Oauth 2.0  Exemple d'utilisation  Conclusion 
  • 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.
  • 24. Conclusion Un protocole d'autorisation qui authentifie
  • 25. Merci pour votre attention
  • 26. 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

×