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
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
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".
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