SlideShare une entreprise Scribd logo
1  sur  27
RÉALISÉ PAR :
FAGROUD FATIMA ZAHRA
NABILA MORCHID
Encadré par:
DR. BENLAHMAR El Habib
Plan:
Introduction
Comment les API sont sécurisés ?
Spring Social
Créer des applications connectées avec Spring Social
Problématique
 La gestion de l'enregistrement et de l'authentification des utilisateurs sur un site
Web est difficile :
 les utilisateurs doivent se souvenir d'une autre paire de nom d'utilisateur / mot de
passe
 les développeurs doivent implémenter une gestion sécurisée des informations
d'identification utilisateur
Réseaux sociaux
 Les réseaux sociaux sont désormais incontournables pour toute diffusion de
contenu
 On distingue:
 réseaux professionnels
 réseaux de partage
 réseaux personnels
 réseaux sociaux d’entreprise
Statistiques d’utilisation des réseaux
sociaux
Login Social
 les sites Web ont commencé à utiliser le login social
 Les utilisateurs peuvent se connecter au site Web à l'aide de leurs comptes de
réseaux sociaux
OAUTH
 Open Authorization
 protocole libre qui permet d’autoriser une application client à utiliser
l’API sécurisée d’une autre application pour le compte d’un utilisateur
 Dernière version est : OAUTH2
OAUTH
OAUTH
Rien de tout cela n'est votre problème…
... si vous utilisez Spring Social
Spring Social
 Extension de Spring Framework
 But : permettre et faciliter la connectivité avec d’autres systèmes fournisseurs de
services (les réseaux sociaux) via leurs API
Famille du projet Spring Social
Principales composantes du Spring
Social
 ConnectController :
 Exécute OAuth "danse
 Gère les requêtes pour "/ connect / {providerId}
 Redirige le navigateur vers la page d'autorisation de l'API.
 Echange le code d'autorisation d'un jeton d'accès.
 Recherche un ConnectionFactory pour un fournisseur d'API donné et l'utilise pour créer une connexion.
 Stocke la connexion dans la base de données via un ConnectionRepository.
Principales composantes du Spring
Social
 Connection Factory Locator :
 Recherche un ConnectionFactory par l'ID du fournisseur d'API
 Connection Factories :
 Crée des connexions.
 Connaît également les spécificités relatives à la mise en œuvre OAuth d'un fournisseur d'API.
 Connection Repository :
 Stockages Connexions dans une base de données pour une utilisation future
 Connaît également les spécificités relatives à la mise en œuvre OAuth d'un fournisseur d'API.
 API Bindings :
 Faire des demandes à une API pour le compte de l'application, en s'assurant que l'en-tête Autorisation est
sur chaque demande
Composantes de connexion du Spring
Social
 ProviderSignInController :
 un contrôleur Spring MVC qui effectue un flux similaire à celui de ConnectController, sauf
qu'il entraîne finalement une authentification au lieu d'une nouvelle connexion.
 SocialAuthenticationFilter :
 un filtre de sécurité de spring qui se branche dans la chaîne de filtrage de Spring Security
pour la connexion du fournisseur(avec les applications qui utilise spring security)
Étapes de connexion avec
Spring Social
 Création d’un projet source pour le code client fournisseur.
 Développement ou intégration d’une liaison Java à l'API du fournisseur.
 Création d’un modèle ServiceProvider.
 Création d’un ApiAdapter qui mappe l'API native du fournisseur sur le modèle de
connexion uniforme.
 Création d’un ConnectionFactory
Création d'un projet source pour le code
client fournisseur
 Un module client Spring Social est un projet Java standard qui construit des jars
uniques, par ex. Spring-social-twitter.jar.
 Il est recommandé que le code d'un nouveau module client Spring Social réside
dans le package de base org.springframework.social.
 {ProviderId}, où {providerId} est un identifiant unique qui doit être attribué au
fournisseur de services auquel on doit ajouter le support.
 quelques exemples des fournisseurs déjà pris en charge par le cadre :
Provider ID Artifact Name Base Package
Facebook spring-social-facebook org.springframework.social.facebook
Twitter spring-social-twitter org.springframework.social.twitter
Développement d'une liaison Java avec
l'API du fournisseur
 le type d'API de service central, Twitter, se trouve dans le paquet api ainsi que ses
types d'opérations de support et les types d'objets de transfert de données.
 La première implémentation de cette interface, TwitterTemplate, se trouve dans le
paquetage api.impl.
 le paquet de connexion contient les implémentations de différents SPI de connexion
Création d’un modèle ServiceProvider
 Un client se liant à une API sécurisée telle que Facebook ou Twitter nécessite des
informations d'autorisation d'utilisateur valides pour fonctionner
 Ces lettres de créance sont généralement obtenues en demandant à votre demande
d'autoriser une «danse» avec le fournisseur de services.
 Spring Social fournit l'abstraction <A> ServiceProvider pour gérer cette "danse
d'autorisation".
Configuration Spring Social (XML)
Rien de tout cela n'est votre problème…
... si vous utilisez Spring Boot
Spécifications des informations
d’identification de l’application
 On ajoute les informations d’indentification de l ’application dans le fichier
application.properties
Exemple:
spring.social.auto_connection_views=true
spring.social.facebook.appId=PUT_YOUR_FACEBOOK_APP_ID
spring.social.facebook.appSecret=PUT_YOUR_FACEBOOK_SECRET_CODE
Spring social

Contenu connexe

Similaire à Spring social

Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web servicesLilia Sfaxi
 
Développement d’extensions WordPress
Développement d’extensions WordPressDéveloppement d’extensions WordPress
Développement d’extensions WordPressChi Nacim
 
Vous avez dit protocoles Web d’authentification et d’autorisation ! De quoi p...
Vous avez dit protocoles Web d’authentification et d’autorisation ! De quoi p...Vous avez dit protocoles Web d’authentification et d’autorisation ! De quoi p...
Vous avez dit protocoles Web d’authentification et d’autorisation ! De quoi p...Microsoft
 
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
 
Vous avez dit protocoles Web d'authentification et d'autorisation ! De quoi p...
Vous avez dit protocoles Web d'authentification et d'autorisation ! De quoi p...Vous avez dit protocoles Web d'authentification et d'autorisation ! De quoi p...
Vous avez dit protocoles Web d'authentification et d'autorisation ! De quoi p...Philippe Beraud
 
A la découverte d'Azure Logic App
A la découverte d'Azure Logic AppA la découverte d'Azure Logic App
A la découverte d'Azure Logic AppRadoine Douhou
 
Acegi Security
Acegi SecurityAcegi Security
Acegi Securitytarkaus
 
MSDays - AppFabric, le middleware disponible aussi en nuage
MSDays - AppFabric, le middleware disponible aussi en nuageMSDays - AppFabric, le middleware disponible aussi en nuage
MSDays - AppFabric, le middleware disponible aussi en nuageMicrosoft Technet France
 
Asp.net Tutorials de L'application "Organizer"
Asp.net Tutorials de L'application "Organizer"Asp.net Tutorials de L'application "Organizer"
Asp.net Tutorials de L'application "Organizer"Nazih Heni
 
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
 
Asp Au Service Des Mv Ps
Asp Au Service Des Mv PsAsp Au Service Des Mv Ps
Asp Au Service Des Mv PsGregory Renard
 
NodeJS for Mobile App
NodeJS for Mobile AppNodeJS for Mobile App
NodeJS for Mobile AppHabib MAALEM
 
APIs dans Azure : serverless ou pas serverless?
APIs dans Azure : serverless ou pas serverless?APIs dans Azure : serverless ou pas serverless?
APIs dans Azure : serverless ou pas serverless?Marius Zaharia
 
Delegation d'authentification
Delegation d'authentificationDelegation d'authentification
Delegation d'authentificationSébastien Brault
 

Similaire à Spring social (20)

Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web services
 
Développement d’extensions WordPress
Développement d’extensions WordPressDéveloppement d’extensions WordPress
Développement d’extensions WordPress
 
Vous avez dit protocoles Web d’authentification et d’autorisation ! De quoi p...
Vous avez dit protocoles Web d’authentification et d’autorisation ! De quoi p...Vous avez dit protocoles Web d’authentification et d’autorisation ! De quoi p...
Vous avez dit protocoles Web d’authentification et d’autorisation ! De quoi p...
 
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
 
Sdk facebook android
Sdk facebook androidSdk facebook android
Sdk facebook android
 
Vous avez dit protocoles Web d'authentification et d'autorisation ! De quoi p...
Vous avez dit protocoles Web d'authentification et d'autorisation ! De quoi p...Vous avez dit protocoles Web d'authentification et d'autorisation ! De quoi p...
Vous avez dit protocoles Web d'authentification et d'autorisation ! De quoi p...
 
A la découverte d'Azure Logic App
A la découverte d'Azure Logic AppA la découverte d'Azure Logic App
A la découverte d'Azure Logic App
 
Acegi Security
Acegi SecurityAcegi Security
Acegi Security
 
Spring Boot RestApi.pptx
Spring Boot RestApi.pptxSpring Boot RestApi.pptx
Spring Boot RestApi.pptx
 
cours-gratuit.com--id-4422.pdf
cours-gratuit.com--id-4422.pdfcours-gratuit.com--id-4422.pdf
cours-gratuit.com--id-4422.pdf
 
MSDays - AppFabric, le middleware disponible aussi en nuage
MSDays - AppFabric, le middleware disponible aussi en nuageMSDays - AppFabric, le middleware disponible aussi en nuage
MSDays - AppFabric, le middleware disponible aussi en nuage
 
Asp.net Tutorials de L'application "Organizer"
Asp.net Tutorials de L'application "Organizer"Asp.net Tutorials de L'application "Organizer"
Asp.net Tutorials de L'application "Organizer"
 
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
 
Silverlight 4
Silverlight 4Silverlight 4
Silverlight 4
 
Asp Au Service Des Mv Ps
Asp Au Service Des Mv PsAsp Au Service Des Mv Ps
Asp Au Service Des Mv Ps
 
Api&sdk
Api&sdkApi&sdk
Api&sdk
 
NodeJS for Mobile App
NodeJS for Mobile AppNodeJS for Mobile App
NodeJS for Mobile App
 
APIs dans Azure : serverless ou pas serverless?
APIs dans Azure : serverless ou pas serverless?APIs dans Azure : serverless ou pas serverless?
APIs dans Azure : serverless ou pas serverless?
 
Delegation d'authentification
Delegation d'authentificationDelegation d'authentification
Delegation d'authentification
 
spring-api-rest.pdf
spring-api-rest.pdfspring-api-rest.pdf
spring-api-rest.pdf
 

Plus de Fatima Zahra Fagroud

Introduction générale au Framework Flutter
Introduction générale au Framework FlutterIntroduction générale au Framework Flutter
Introduction générale au Framework FlutterFatima Zahra Fagroud
 
Cours Algorithmique (Echange de valeurs, Expressions, structure de choix et s...
Cours Algorithmique (Echange de valeurs, Expressions, structure de choix et s...Cours Algorithmique (Echange de valeurs, Expressions, structure de choix et s...
Cours Algorithmique (Echange de valeurs, Expressions, structure de choix et s...Fatima Zahra Fagroud
 
Cours Algorithmique : Tableaux (Déclaration , Saisie, Affichage et Tri )
Cours Algorithmique : Tableaux (Déclaration , Saisie, Affichage et Tri )Cours Algorithmique : Tableaux (Déclaration , Saisie, Affichage et Tri )
Cours Algorithmique : Tableaux (Déclaration , Saisie, Affichage et Tri )Fatima Zahra Fagroud
 
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))Fatima Zahra Fagroud
 
Ateliers protypage d objets connectes via arduino
Ateliers protypage d objets connectes via arduinoAteliers protypage d objets connectes via arduino
Ateliers protypage d objets connectes via arduinoFatima Zahra Fagroud
 
Etude comparative des fournisseurs de service BI
Etude comparative des fournisseurs de service BIEtude comparative des fournisseurs de service BI
Etude comparative des fournisseurs de service BIFatima Zahra Fagroud
 
Récupération d’une Base De Données & Flashback Database
Récupération d’une Base De Données  & Flashback DatabaseRécupération d’une Base De Données  & Flashback Database
Récupération d’une Base De Données & Flashback DatabaseFatima Zahra Fagroud
 
Cycle de vie et méthodes de construction des ontologies
Cycle de vie et méthodes de construction des ontologiesCycle de vie et méthodes de construction des ontologies
Cycle de vie et méthodes de construction des ontologiesFatima Zahra Fagroud
 

Plus de Fatima Zahra Fagroud (20)

Introduction générale au Framework Flutter
Introduction générale au Framework FlutterIntroduction générale au Framework Flutter
Introduction générale au Framework Flutter
 
Cours Algorithmique (Echange de valeurs, Expressions, structure de choix et s...
Cours Algorithmique (Echange de valeurs, Expressions, structure de choix et s...Cours Algorithmique (Echange de valeurs, Expressions, structure de choix et s...
Cours Algorithmique (Echange de valeurs, Expressions, structure de choix et s...
 
Cours Algorithmique : Tableaux (Déclaration , Saisie, Affichage et Tri )
Cours Algorithmique : Tableaux (Déclaration , Saisie, Affichage et Tri )Cours Algorithmique : Tableaux (Déclaration , Saisie, Affichage et Tri )
Cours Algorithmique : Tableaux (Déclaration , Saisie, Affichage et Tri )
 
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))
 
Algorithmique
AlgorithmiqueAlgorithmique
Algorithmique
 
Ateliers protypage d objets connectes via arduino
Ateliers protypage d objets connectes via arduinoAteliers protypage d objets connectes via arduino
Ateliers protypage d objets connectes via arduino
 
Feu tricolore tuto
Feu tricolore tutoFeu tricolore tuto
Feu tricolore tuto
 
Etude comparative des fournisseurs de service BI
Etude comparative des fournisseurs de service BIEtude comparative des fournisseurs de service BI
Etude comparative des fournisseurs de service BI
 
Récupération d’une Base De Données & Flashback Database
Récupération d’une Base De Données  & Flashback DatabaseRécupération d’une Base De Données  & Flashback Database
Récupération d’une Base De Données & Flashback Database
 
Rapid miner
Rapid miner Rapid miner
Rapid miner
 
Ibm bigsheets
Ibm bigsheetsIbm bigsheets
Ibm bigsheets
 
Angular
AngularAngular
Angular
 
Cycle de vie et méthodes de construction des ontologies
Cycle de vie et méthodes de construction des ontologiesCycle de vie et méthodes de construction des ontologies
Cycle de vie et méthodes de construction des ontologies
 
Processus d’indexation
Processus d’indexationProcessus d’indexation
Processus d’indexation
 
Rapport TP Corrélation
Rapport TP CorrélationRapport TP Corrélation
Rapport TP Corrélation
 
Ionic
Ionic Ionic
Ionic
 
Ibm bluemix
Ibm bluemixIbm bluemix
Ibm bluemix
 
ATL et SVG
ATL et SVGATL et SVG
ATL et SVG
 
Rapport Projet Module Complexité
Rapport Projet Module ComplexitéRapport Projet Module Complexité
Rapport Projet Module Complexité
 
Rapport pfe licence
Rapport pfe licenceRapport pfe licence
Rapport pfe licence
 

Spring social

  • 1. RÉALISÉ PAR : FAGROUD FATIMA ZAHRA NABILA MORCHID Encadré par: DR. BENLAHMAR El Habib
  • 2. Plan: Introduction Comment les API sont sécurisés ? Spring Social Créer des applications connectées avec Spring Social
  • 3.
  • 4. Problématique  La gestion de l'enregistrement et de l'authentification des utilisateurs sur un site Web est difficile :  les utilisateurs doivent se souvenir d'une autre paire de nom d'utilisateur / mot de passe  les développeurs doivent implémenter une gestion sécurisée des informations d'identification utilisateur
  • 5. Réseaux sociaux  Les réseaux sociaux sont désormais incontournables pour toute diffusion de contenu  On distingue:  réseaux professionnels  réseaux de partage  réseaux personnels  réseaux sociaux d’entreprise
  • 7. Login Social  les sites Web ont commencé à utiliser le login social  Les utilisateurs peuvent se connecter au site Web à l'aide de leurs comptes de réseaux sociaux
  • 8.
  • 9. OAUTH  Open Authorization  protocole libre qui permet d’autoriser une application client à utiliser l’API sécurisée d’une autre application pour le compte d’un utilisateur  Dernière version est : OAUTH2
  • 10. OAUTH
  • 11. OAUTH
  • 12. Rien de tout cela n'est votre problème… ... si vous utilisez Spring Social
  • 13.
  • 14. Spring Social  Extension de Spring Framework  But : permettre et faciliter la connectivité avec d’autres systèmes fournisseurs de services (les réseaux sociaux) via leurs API
  • 15. Famille du projet Spring Social
  • 16. Principales composantes du Spring Social  ConnectController :  Exécute OAuth "danse  Gère les requêtes pour "/ connect / {providerId}  Redirige le navigateur vers la page d'autorisation de l'API.  Echange le code d'autorisation d'un jeton d'accès.  Recherche un ConnectionFactory pour un fournisseur d'API donné et l'utilise pour créer une connexion.  Stocke la connexion dans la base de données via un ConnectionRepository.
  • 17. Principales composantes du Spring Social  Connection Factory Locator :  Recherche un ConnectionFactory par l'ID du fournisseur d'API  Connection Factories :  Crée des connexions.  Connaît également les spécificités relatives à la mise en œuvre OAuth d'un fournisseur d'API.  Connection Repository :  Stockages Connexions dans une base de données pour une utilisation future  Connaît également les spécificités relatives à la mise en œuvre OAuth d'un fournisseur d'API.  API Bindings :  Faire des demandes à une API pour le compte de l'application, en s'assurant que l'en-tête Autorisation est sur chaque demande
  • 18. Composantes de connexion du Spring Social  ProviderSignInController :  un contrôleur Spring MVC qui effectue un flux similaire à celui de ConnectController, sauf qu'il entraîne finalement une authentification au lieu d'une nouvelle connexion.  SocialAuthenticationFilter :  un filtre de sécurité de spring qui se branche dans la chaîne de filtrage de Spring Security pour la connexion du fournisseur(avec les applications qui utilise spring security)
  • 19. Étapes de connexion avec Spring Social  Création d’un projet source pour le code client fournisseur.  Développement ou intégration d’une liaison Java à l'API du fournisseur.  Création d’un modèle ServiceProvider.  Création d’un ApiAdapter qui mappe l'API native du fournisseur sur le modèle de connexion uniforme.  Création d’un ConnectionFactory
  • 20. Création d'un projet source pour le code client fournisseur  Un module client Spring Social est un projet Java standard qui construit des jars uniques, par ex. Spring-social-twitter.jar.  Il est recommandé que le code d'un nouveau module client Spring Social réside dans le package de base org.springframework.social.  {ProviderId}, où {providerId} est un identifiant unique qui doit être attribué au fournisseur de services auquel on doit ajouter le support.  quelques exemples des fournisseurs déjà pris en charge par le cadre : Provider ID Artifact Name Base Package Facebook spring-social-facebook org.springframework.social.facebook Twitter spring-social-twitter org.springframework.social.twitter
  • 21. Développement d'une liaison Java avec l'API du fournisseur  le type d'API de service central, Twitter, se trouve dans le paquet api ainsi que ses types d'opérations de support et les types d'objets de transfert de données.  La première implémentation de cette interface, TwitterTemplate, se trouve dans le paquetage api.impl.  le paquet de connexion contient les implémentations de différents SPI de connexion
  • 22. Création d’un modèle ServiceProvider  Un client se liant à une API sécurisée telle que Facebook ou Twitter nécessite des informations d'autorisation d'utilisateur valides pour fonctionner  Ces lettres de créance sont généralement obtenues en demandant à votre demande d'autoriser une «danse» avec le fournisseur de services.  Spring Social fournit l'abstraction <A> ServiceProvider pour gérer cette "danse d'autorisation".
  • 23.
  • 25. Rien de tout cela n'est votre problème… ... si vous utilisez Spring Boot
  • 26. Spécifications des informations d’identification de l’application  On ajoute les informations d’indentification de l ’application dans le fichier application.properties Exemple: spring.social.auto_connection_views=true spring.social.facebook.appId=PUT_YOUR_FACEBOOK_APP_ID spring.social.facebook.appSecret=PUT_YOUR_FACEBOOK_SECRET_CODE