1 Y a-t-il une place pour Opensocial dans l'enseignement supérieur ? David Verdin RENATER JRES - Toulouse – novembre 2011
2 Plan de l'exposé Introduction 1. Les bases : Gadgets et conteneurs 2. Usage avancé : L'API REST 3. Implémentation dans Sympa Conclusion
3 Opensocial : à quoi ça sert ? Opensocial permet l'échange de données entre applications web grâce à : ● Un ensemble d'API ● Un modèle de données ● Le protocole Oauth GadgetsRéseaux sociaux Uportal fait la même chose mais : ● Fondé sur java ● Portlets exécutés côté serveur
4 Opensocial : d'où ça sort? Opensocial est issu de développements menés par des éditeurs de réseaux sociaux ● Fin 2007 : première version publique : 0.5 ● Août 2011 : version 2.0 Principaux soutiens : ● Google ● Yahoo ● Myspace ● Viadeo
5 Plan de l'exposé Introduction 1. Les bases : Gadgets et conteneurs 2. Usage avancé : L'API REST 3. Implémentation dans Sympa Conclusion
6 Qu'est-ce qu'un gadget ? Un gadget est une application portable d'un réseau social à l'autre C'est un document XML exploité par un conteneur pour générer du HTML gadget Réseau social = conteneur
7 Qu'y a-t-il dans un gadget ? Un gadget contient du XML avec obligatoirement : ● Soit une section CDATA contenant le code source du gadget : HTML et javascript Métadonnées du gadget Contenu du gadget
8 Qu'y a-t-il dans un gadget ? Un gadget contient du XML avec obligatoirement : ● Soit une section CDATA contenant le code source du gadget : HTML et javascript ● Soit une référence vers l'URL générant ce code source. <Content href=" view="canvas"> Métadonnées du gadget Référence vers un contenu externe
9 Qu'est-ce qu'un conteneur ? Un conteneur est une application web capable d'exploiter le contenu d'un gadget, c'est-à-dire : ● Afficher son contenu ● Gérer la couche de persistance Implémentation de référence (et unique): Apache Shindig Implémenté dans deux langages : PHP et Java
10 Les données Opensocial Activity streams : relevé d'activité d'une personne Appdata : des données personnalisées créées et exploitées par les gadgets Group : un groupe possédé par un utilisateur Message : description d'un message envoyé par un utilisateur à un autre. Person : la description d'une personne. Ces données sont composites Elles peuvent être étendues
11 Plan de l'exposé Introduction 1. Les bases : Gadgets et conteneurs 2. Usage avancé : L'API REST 3. Implémentation dans Sympa Conclusion
12 Échanges réseau social / serveur Un serveur tiers peut accéder aux données d'un réseau social par le biais d'un gadget. ● Accès via REST ou XML/RPC ● Consentement de l'utilisateur lors de l'installation ● Requêtes signées Oauth Utilisateur 1. Installation du gadget 2. Acquittement du consentement 3. Accès aux données Autorisez-vous l'accès à vos données ? Ouiiiii ! non
13 Qu'est-ce qu'Oauth ? Oauth est un protocole de délégation d'autorisation. Ce n'est pas spécifique à Opensocial. Deux workflows : ● 2-legged : sans consentement de l'utilisateur ● 3-legged : avec consentement Tu peux pas test
14 2-legged Oauth et opensocial Utilisateur 1. Installation du gadget 2. Acquittement du consentement 3. Accès aux données ● 2-legged = 2 intervenants : client et fournisseur de ressources ● Pas de phase d'autorisation de l'utilisateur ● Secret partagé : identifier le client ● Requête signée avec le secret Fournisseur de ressources Client
15 Communication serveur à serveur ● Accès aux données sans installation de gadget ● Consentement demandé lors de l'accès 4. Accès aux données 2. demande de consentement 1. Requête exploitant des données du réseau social 3. Transmission de l'accord 5. Exploitation
16 3-legged Oauth Clé client Secret client Jeton temporaire Secret temporaire Vérificateu r Jeton d'accès Secret d'accès Signature Fournisseur de ressources Client Utilisateur : la danse
17 API REST : résumons Mécanisme sécurisé d'échange de données Pour des applications indépendantes : un secret partagé suffit L'aspect « social »devient secondaire : Oauth est le cœur Shindig n'est plus indispensable
18 Implémentation dans Sympa ● Cadre : le projet Geant ● Objectif : organisation virtuelle inter-fédérations ● Sympa : double rôle de gestionnaire de groupe et d'outil de listes Foodle Surfconnext Serveur de listes Gestionnaire de groupes Prise de rendez- vous
19 Implémentation dans Sympa Protocole VOOT Métadonnées des endpoints + credentials Extension du modèle de données (role_membership) Bibliothèque CPAN Oauth::Lite Développement : 3 semaines
20 Démo côté serveur
21 Démo côté client
22 Conclusion : une place ? Usage des gadgets : Intégrer dans Uportal Créer des gadgets à destination des réseaux sociaux (2-legged Oauth) API REST : Communication simple avec des applications externes
23 Merci de votre attention