CYOU -‐ Installation
Transcription
CYOU -‐ Installation
Inmediats / CYOU / Installation Type de document : Document technique Auteurs Julien BRETEAU Stéphane ETHEVE Installation CYOU CYOU -‐ I nstallation Document technique d’installation et d’exploitation de CYOU 1 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation TABLE DES MATIERES 1 1.1 1.1.2 1.1.3 1.2.2 1.4 1.5 2 2.1 2.2 3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 4 4.1 4.3 - IHM SERVEUR IHM MOBILIER ACCUEIL ARCHITECTURE PLAN ARCHITECTURE RESEAU 2- SCHEMA DE L'INFORMATION 2.2.3 2.2.1 CAS 1 : ACCUEIL NUMERIQUE / EXPOSITION IN SITU 2.2.2 CAS 2 : MOBILE CAS 3 : INTERNET INSTALLATION OS INSTALLATION DES PAQUETS CONFIGURER LE SYSTEME 3.3.3 3.3.4 3.3.5 3.3.6 3.3.1 HOST 3.3.2 LES SOURCES DU PROJET APACHE PHP REDEMARRER APACHE MYSQL CONFIGURER LE PROJET 3.4.3 3.4.4 3.4.1 ACCES A LA BDD 3.4.2 PROTEGER L'API AVEC UN LOGIN/MOT DE PASSE LES DROITS SUR LE REPERTOIRE LES CRON 5- INITIALISATION DU PROJET 3.5.3 3.5.1 VARIABLES ENVIRONNEMENT 3.5.2 EXECUTION DES TACHES CREATION DES REPERTOIRES VISITEUR ET INTERACTIF TESTER LE BON FONCTIONNEMENT DU PROJET API JS 3.7.2 INSTALLATION TESTS FONCTIONNELS WEBSERVICES 3.8.3 3.8.1 CONFIGURATION DU SERVEUR POUR LES NOTIFICATIONS WEBSOCKETS 3.8.2 INSTALLATION WEBSERVICES SYNCHRONISATION DES FICHIERS EXPLOITATION BACK OFFICE FONCTIONS DU BACK OFFICE CREATION D’UN MULTIMEDIA REGLES NOTIFICATION 4.3.1 4.3.2 2 de 45 4 CONSOMMABLES 4.1.1 4.2 4 5 5 5 6 6 7 8 8 9 9 10 11 13 13 13 13 13 13 14 15 15 16 16 16 16 17 17 18 18 19 19 19 20 20 20 21 21 23 29 30 30 30 33 33 33 33 4 - SERVEUR LOCAL RESEAU 3.7.1 3.8 - SERVEUR GENERAL SOFTWARE 1.2.1 1.3 4 HARDWARE 1.1.1 1.2 4 PREREQUIS GETENTITY SENDNOTIFICATION Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation 4.3.5 4.3.6 4.3.7 4.3.8 4.3.9 4.3.3 CREATEVISITEURMEDAILLE 4.3.4 SENDMAIL 4.3.11 4.3.10 4.4 4.5 4.6 4.7 5 5.1 5.2 3 de 45 35 DATE VARDUMP ISBESTSCOREINTERACTIF ISVISITEURBESTSCOREINTERACTIF NBLOGVISITEEXPOSITION GETTOTALSCORE GETTOTALSCOREBYTYPOLOGIEANDVISITEUR PREPARATION DE NAVINUM PROFIL CYOU SUR LE WEB : SSO CONFIGURER DRUPAL POUR SE CONNECTER AU SSO 4.6.3 4.6.4 4.6.5 35 35 35 35 35 35 36 36 36 37 37 37 42 42 43 44 45 45 45 34 4.6.1 INSTALLATION DU PLUGIN DRUPAL 4.6.2 PARAMETRAGE DU PLUGIN DANS LE BO CONFIGURER LES DROITS OBTENIR SES CLES D'AUTHENTIFICATION (EXEMPLE DRUPAL) FONCTIONNEMENT AJOUT D'UN CLIENT SSO DANS LE BACKOFFICE SERVEUR MAINTENANCE CORRECTIVE REMONTE ET TRAITEMENTS DES ERREURS Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation 1 PREREQUIS 1.1 HARDWARE L'infrastructure CYOU est composée d’un ensemble de matériels indispensables à son bon fonctionnement. 1.1.1 - SERVEUR GENERAL Un serveur est requis pour exécuter l’ensemble des fonctionnalités de CYOU sur internet, ainsi que pour stocker l’ensemble des informations des visiteurs. Ce serveur doit être accessible de l’extérieur, afin de permettre toutes interfaçages éventuels avec d’autres outils (sites internet, système d’informations…). Il est le coeur du dispositif, le master de la synchronisation. Configuration minimale à prévoir : - 2 CPU 2Ghz - 16Go de ram - Contrôleur RAID - 2 x Disque Dur de 500Go (pour permettre la redondance) A titre informatif, un serveur dédié chez OVH à configuration supérieur, coûte environ 50€ HT/mois. 1.1.2 - SERVEUR LOCAL Un serveur “local” est requis pour exécuter l’ensemble des fonctionnalités de CYOU au travers des différentes expositions, ainsi que pour stocker l’ensemble des informations des visiteurs. De plus, ce serveur peut également être utilisé comme serveur DHCP/DNS, et doit avoir une connexion internet pour permettre la synchronisation bi-directionnelle de la base de données avec le serveur général. Il est “esclave” dans le protocole de synchronisation. Configuration minimale à prévoir : - 2 CPU 2Ghz - 16Go de ram - Contrôleur RAID - 2 x Disque Dur de 500Go (pour permettre la redondance) - 2 x Carte Gigabit Ethernet (Lan et Wan) A titre informatif, un serveur rackable chez DELL à configuration supérieur, coûte environ 1400€ HT. 1.1.3 - IHM CYou permet à ses utilisateurs, d’intéragir avec des interfaces multimédia au travers des cartes RFID. Tous matériels reliés à CYOU doit donc être munis : - d’un lecteur RFID (type 13,56Hz) - d’une carte réseau (ethernet ou wifi) 4 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation Cap Sciences a fait le choix d’utiliser pour ses expositions, des tablettes numériques de type Nexus 10. Cette dernière regroupe l’ensemble des prérequis pour la communication avec CYou sans ajout de matériel/développement supplémentaire (lecteur NFC natif + wifi). A titre informatif, une Nexus 10 coûte à ce jour, dans sa version 16Go, 399€ TTC, hors frais de livraison, sur Google Play exclusivement. 1.2 SOFTWARE L’ensemble des solutions software utilisées pour mettre en place CYOU est de type Open Source. Aucun coût de licence n’est à prévoir (sauf pour Surelock, qui est un parti pris par Cap Sciences). 1.2.1 SERVEUR Pour l'installation de CYou, deux possibilités pour le choix de l’OS des serveurs : - Debian (noyau v3.2) - Ubuntu (noyau v3.5) CYOU fonctionne avec le Framework Symfony 2. Aussi, plusieurs packets sont à installer : apache2 mysql-server phpmyadmin php5-cli php5-curl php5-gd php5-mcrypt php5-memcache php5-mysql memcached subversion pv ntp curl libapache2-mod-php5 php5-dev gcc patch make diff libreadline-dev libncurses5-dev php-pear git pkg-config php5-dev php-pear make php5-curl php5-suhosin redis-server libevent-dev openssh unison La version php doit être en php5.3 1.2.2 IHM Concernant les tablettes, nous utilisons actuellement l’OS Android en version 4.2. L’ensemble des développements actuellement réalisés pour le centre est basé sur cette version stable de l’OS. Cap Sciences à intégrer des logiciels supplémentaires afin de faciliter la maintenance du parc des tablettes. 5 de 45 - SSHDroid : Utilisation du protocole SSH afin de se connecter à distance aux différents périphériques (facilitation de la maintenance) de manière sécurisée. - SURELOCK : Logiciel de paramétrage de la tablette permettant de donner des droits particuliers d’utilisation (bridage de l’environnement utilisateur). Ce logiciel nécessite le root de la tablette. A titre informatif, 50 licences coutent environ 999$. Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation 1.3 RESEAU Afin de relier les différentes bornes interactives à CYOU, un LAN doit être mis en place. Ce LAN doit être accessible via Ethernet (filaire) et wifi. En fonction de l’espace à couvrir, du nombre de bornes interactives, et du nombre de visiteurs, le centre de culture devra adapter ou mettre en place des bornes wifi permettant la connexion de la totalité des bornes, sur l’ensemble de l’espace disponible au public. A titre informatif, un point d’accès répondant aux attentes coutent entre 350€ HT et 600€ HT (à multiplier en fonction de la couverture réseau). Un serveur DNS, DHCP et NTP, dédié à la solution CYOU, facilitera au maximum la maintenance de la solution et la régularisation de l’horodatage des données. Une connexion internet est nécessaire pour la synchronisation des serveurs. La bande passante utilisée varie en fonction de la taille de la base de données et de la fréquence des synchronisations. Il est cependant conseillé d’avoir une connexion symétrique (SDSL) pour faciliter le transfert des dumps par le net. Le serveur CYOU a besoin également de cinq sous domaines : ● navinum2.yourdomain.net ● api2.yourdomain.net ● navinum-sync.yourdomain.net ● websocket.yourdomain.net ● sso.yourdomain.net /!\ Remplacer yourdomain.net par votre nom de domaine 1.4 CONSOMMABLES La relation entre les multimédias et les données du visiteur se fait grâce à l’utilisation de puces RFID. Une puce est délivrée à chaque visiteur lors de sa venue. Ainsi, prévoir au minimum, une flotte de badges correspondant à deux fois la fréquentation journalière. Une puce RFID : - Est la carte d'identité correspondant à un compte CYOU; elle est personnalisée et personnalisable au compte. - Elle donne accès ou non à certains espaces d’exposition (contrôle d’accès : portique) – pour information, sera développé ultérieurement. - Elle est délivrée systématiquement à chaque visiteur CYOU ou simple visiteur qui doit la restituer à l'issue de la visite. 6 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation - Elle est utilisée dans les différentes expositions d'un même lieu. (Trans-expo). - Elle ne correspond à aucun profil ; elle peut être pré-profilée en amont par l'animateur (pour un mode groupe par exemple). - Délivrée à un visiteur individuel, elle est associée à un compte CYOU/anonyme. Elle est dissociée de la visite à la fin de la journée (processus côté serveur). A titre informatif, Cap Sciences a choisi des cartes personnalisées, qui coutent 1,70€/pièces. D’autres modèles existent avec de variation de prix. 1.5 MOBILIER ACCUEIL Accueil numérique : L’accueil numérique est un espace dédié à la l’identification du visiteur et de l’association de ce dernier avec la carte. Cet espace doit pouvoir accueillir un nombre de personnes importantes et gérer les flux correctement. Présentoir des badges : Permettre la délivrance des badges de manière individuelle près de l’accueil numérique afin de garder un système indépendant de la billetterie. Module de restitution : Permettre au visiteur de restituer son badge de manière rapide. Attention ce mobilier doit être visible auprès des public afin d’éviter les pertes importantes des badges. 7 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation 2 ARCHITECTURE 2.1 8 de 45 PLAN ARCHITECTURE RESEAU Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation 2.2 2- SCHEMA DE L'INFORMATION 2.2.1 CAS 1 : ACCUEIL NUMERIQUE / EXPOSITION IN SITU 1-Le visiteur badge à l’aide d’une carte RFID a. Le lecteur RFID de la tablette lit l’ID de la puce 2- La couche native réceptionne l’ID du badge RFID venant du lecteur 2Bis – À partir du moment où un visiteur a badgé, la couche native est en permanence à l’écoute du websocket Navinum. a. Réceptions des notifications 3- Appels API a. La couche native envoie l’ID de la puce RFID à Navinum (API) b. L’API renvoie les informations nécessaires à l’application i. Eléments de profiles ii. Scores, résultats 4- Fonctionnement de l’API a. Requêtes SQL à la BDD Navinum b. Formatage des résultats 5- API JS : communication entre l’intéractif et Navinum (via l’application native) a. La couche native renvoie automatiquement les informations nécessaires à l’interactif (HTML5) i. Eléments de profiles ii. Scores, résultats b. L’intéractif (HTML5) utilise l’API JS i. Création/Modification de profiles ii. Envoie de log_visites 1. Résultats 2. Scores iii. XP (typologie) iv. Gain de médailles 9 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation 2.2.2 CAS 2 : MOBILE 1-‐ Le visiteur lance l’application a. Il est amené à s’authentifier 2-‐ La couche native permet (ou pas) d’utiliser le matériel propre au device mobile a. APN 2Bis – À partir du moment où le visiteur est authentifié, la couche native est en permanence à l’écoute du websocket Navinum. b. Réceptions des notifications 3-‐ Appels API a. La couche native envoie les identifiants d’authentification à Navinum (API) b. L’API renvoie les informations nécessaires à l’application i. Authentification : true/false ii. Eléments de profiles iii. Scores, résultats 4-‐ Fonctionnement de l’API a. Requêtes SQL à la BDD Navinum b. Formatage des résultats 5-‐ API JS : communication entre l’intéractif et Navinum (via l’application native) a. La couche native renvoie automatiquement les informations nécessaires à l’interactif (HTML5) i. Eléments de profiles ii. Scores, résultats b. L’intéractif (HTML5) utilise l’API JS i. Modification de profiles 10 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation ii. 1. Résultats 2. Scores iii. iv. Envoie de log_visites XP (typologie) Gain de médailles 2.2.3 CAS 3 : INTERNET 1-‐ Le visiteur accède au site internet de Cap Sciences a. Il est amené à s’authentifier 2-‐ Le plugin CMS permet (ou pas) d’utiliser le matériel propre aux périphériques de l’utilisateur a. Webcam b. Micro c. APN 2Bis – À partir du moment où le visiteur est authentifié, le plugin CMS est en permanence à l’écoute du websocket Navinum. d. Réceptions des notifications 3-‐ Appels API a. Le plugin CMS envoie les identifiants d’authentification à Navinum (API) b. L’API renvoie les informations nécessaires à l’application i. Authentification : true/false ii. Eléments de profiles iii. Scores, résultats 4-‐ Fonctionnement de l’API a. Requêtes SQL à la BDD Navinum b. Formatage des résultats 11 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation 5-‐ API JS : communication entre l’intéractif et Navinum (via le plugin CMS) a. Le plugin CMS renvoie automatiquement les informations nécessaires à l’interactif (HTML5) i. Eléments de profiles ii. Scores, résultats b. L’intéractif (HTML5) utilise l’API JS du plugin CMS i. Modification de profiles ii. Envoie de log_visites 1. Résultats 2. Scores iii. XP (typologie) iv. Gain de médailles 12 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation 3 INSTALLATION 3.1 OS Nous préconisons un OS Linux Debian (voir ubuntu) pour installer Navinum. 3.2 INSTALLATION DES PAQUETS La première étape est de mettre à jour les sources des paquets, et le serveur. apt-get update apt-get upgrade Puis installer les paquets suivant : apache2 mysql-server php5-cli php5-curl php5-gd php5-mcrypt php5-memcache php5-mysql memcached subversion pv ntp curl libapache2-mod-php5 apt-get install apache2 mysql-server phpmyadmin php5-cli php5-curl php5-gd php5-mcrypt php5-memcache php5-mysql memcached subversion pv ntp curl libapache2-mod-php5 php5-dev make php5-curl php5-suhosin redis-server libeventdev openssh unison Tout au long de l’installation, confirmer et indiquer les mots de passes souhaités. 3.3 CONFIGURER LE SYSTEME 3.3.1 HOST Editer le fichier hosts (/etc/hosts pour Linux) : vi /etc/hosts Et ajouter : XX.XX.XX.XX websocket.yourdomain.net navinum2.yourdomain.net api2.yourdomain.net YY.YY.YY.YY navinum-sync.yourdomain.net /!\ XX est remplacé par l’ip du serveur local /!\ YY est remplacé par l’ip du serveur général 3.3.2 LES SOURCES DU PROJET Pour installer les sources de CYou, nous vous proposons 2 solutions : à distance via un dépot svn, ou en local via une archive de type tgz. 2 types de source : 13 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation ○ tgz tar -xzvf /root/navinum.tgz /srv 3.3.3 APACHE /!\ Dans cette partie, remplacer yourdomain par votre nom de domaine. ● Activer le mod Headers cd /etc/apache2/mods-available a2enmod headers ● Ajouter le fichier navinum2.yourdomain.net dans /etc/apache2/sites-available vi /etc/apache2/sites-available/navinum2.yourdomain.net ● Coller la configuration suivante : <VirtualHost *:80> ServerName navinum2.yourdomain.net DocumentRoot "/srv/navinum2/web" DirectoryIndex index.php Header set Access-Control-Allow-Origin * Header set Access-Control-Allow-Methods 'PUT, GET, POST, DELETE, OPTIONS' Header set Access-Control-Allow-Headers "Content-Type, X-Custom-Header" <Directory "/srv/navinum2/web"> AllowOverride All Allow from All </Directory> Alias /sf /srv/navinum2/lib/vendor/symfony/data/web/sf <Directory "/srv/navinum2/lib/vendor/symfony/data/web/sf"> AllowOverride All Allow from All </Directory> Alias /sfFormExtraPlugin /srv/navinum2/plugins/sfFormExtraPlugin/web <Directory "/srv/navinum2/plugins/sfFormExtraPlugin/web"> AllowOverride All Allow from All </Directory> Alias /sfJqueryReloadedPlugin /srv/navinum2/plugins/sfJqueryReloadedPlugin/web <Directory "/srv/navinum2/plugins/sfJqueryReloadedPlugin/web"> AllowOverride All Allow from All </Directory> </VirtualHost> ● Ajouter le fichier api2.yourdomain.net dans /etc/apache2/sites-available vi /etc/apache2/sites-available/api2.yourdomain.net 14 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation ● Coller la configuration suivante : <VirtualHost *:80> ServerName api2.yourdomain.net DocumentRoot "/srv/navinum2/web/api" <Directory "/srv/navinum2/web/api"> AllowOverride All Allow from All </Directory> </VirtualHost> ● Rendre disponible la configuration à apache cd /etc/apache2/sites-available a2ensite navinum2.yourdomain.net a2ensite api2.yourdomain.net 3.3.4 ● PHP editer les php.ini ● Remplacer la valeur du memory_limit du fihcier CLI par 2048M vi /etc/php5/cli/php.ini memory_limit = 2048M ● Remplacer les valeurs dans le fichier php.ini comme ci dessous vi /etc/php5/apache2/php.ini short_open_tag = Off memory_limit = 512M max_execution_time = 60 3.3.5 REDEMARRER APACHE /etc/init.d/apache2 restart 15 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation 3.3.6 MYSQL Changer la configuration de mysql ● pour la synchronisation, il est nécessaire de changer le paramètre max_allowed_packet par la valeur 128M vi /etc/mysql/my.cnf max_allowed_packet = 128M ● Créer une base de données nommée navinum_cs (utf8_general_ci pour l'interclassement) mysql -hlocalhost -p CREATE DATABASE `navinum_cs` CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE DATABASE `navinum_cs_test` CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE USER 'navinum'@'localhost' IDENTIFIED BY 'navinum'; GRANT USAGE ON * . * TO 'navinum'@'localhost' IDENTIFIED BY 'navinum' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ; GRANT ALL PRIVILEGES ON `navinum_cs` . * TO 'navinum'@'localhost'; GRANT ALL PRIVILEGES ON `navinum_cs_test` . * TO 'navinum'@'localhost'; /!\ Mettre le user et le mot de passe souhaité 3.4 CONFIGURER LE PROJET 3.4.1 ACCES A LA BDD ● Aller dans le projet cd /srv/navinum2 ● Copier le fichier config/databases.yml.dist par config/databases.yml cp config/databases.yml.dist config/databases.yml ● Copier le fichier config/app.yml.dist par config/app.yml cp config/app.yml-dist config/app.yml ● Éditer le fichier et mettre les identifiants de connexion à la BDD vi config/databases.yml 3.4.2 ● PROTEGER L'API AVEC UN LOGIN/MOT DE PASSE renommer web/api/htaccess web/api/.htaccess mv web/api/htaccess web/api/.htaccess 16 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation ● Editer le fichier, et changer le path AuthUserFile? par /srv/navinum2/web/api/.htpasswd ● puis dans le répertoire web/api cd web/api ● taper la commande suivante htpasswd -c .htpasswd servervip-api => mettre un mot de passe /!\ Ce mot de passe servira à l’utilisation authentifié de l'api 3.4.3 LES DROITS SUR LE REPERTOIRE Sur les répertoires sync et backups dans /srv/navinum2 chmod 777 -R sync chmod 777 -R backups 3.4.4 ● LES CRON Création d'un fichier pour un ensemble de taches vi /etc/cron.d/navinum2 ● insérer le contenu suivant : ####################### iRESET RFID ################### 0 0 * * * root /srv/navinum2/symfony servervip:reset-navinum ####################### SYNCHRO ################### */15 * * * * root /srv/navinum2/symfony mysql:dump && /srv/navinum2/symfony servervip:sync && /srv/navinum2/symfony servervip:syncCheck 17 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation 3.5 5- INITIALISATION DU PROJET 3.5.1 VARIABLES ENVIRONNEMENT ● copier le fichier app.yml.dist par app.yml dans apps/backend/config et apps/sync/config et apps/api/config cp apps/api/config/app.yml.dist apps/api/config/app.yml cp apps/backend/config/app.yml.dist apps/backend/config/app.yml cp apps/sync/config/app.yml.dist apps/sync/config/app.yml ● vérifier les identifiants .htaccess et .htpassword de l'api dans le fichier app.yml dans apps/api/config vi apps/api/config/app.yml => Vérifier les paramètres pour les envois de mail => Vérifier les paramètres pour l'envoi des sms prod: service_sms: allowed: true username: capsciences password: BVSbLbOKLDDGLN api: 3400609 message: resetPassword: 'Nouveau password %s' pseudoRetrieval: 'Vos pseudos %s' dev: service_sms: allowed: false ● editer le fichier app.yml dans apps/backend/config vi apps/backend/config/app.yml => Vérifier que le type est intranet ● editer le fichier app.yml dans apps/sync/config vi apps/sync/config/app.yml ● ● 18 de 45 dans all -> sync : ○ Nommer le name par le nom de la machine : ex : araignee-srv ○ Vérifier que le type est intranet ○ vérifier que le internet_url est la bonne adresse ○ vérifier que database est le bon nom de la base de données dans test -> sync : ○ Nommer le name par le nom de la machine : ex : araignee-srv-test ○ Vérifier que le type est intranet Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation ○ ○ 3.5.2 vérifier que le internet_url est la bonne adresse ET QUE LE FICHIER PHP est sync_test.php vérifier que database est le bon nom de la base de données AVEC _TEST EXECUTION DES TACHES cd /srv/navinum2 php symfony plugin:publish-assets php symfony project:permissions ## env prod intranet ou internet php symfony doctrine:build --all --no-confirmation php symfony doctrine:data-load data/fixtures/base-internet.yml ./symfony cc 3.5.3 CREATION DES REPERTOIRES VISITEUR ET INTERACTIF ./symfony servervip:create-user-media chmod -R 777 web/interactif 3.6 ● TESTER LE BON FONCTIONNEMENT DU PROJET Aller dans un navigateur web et taper l'adresse ci-dessous http://user:[email protected]/api.php/visiteur?guid=abcd /!\ Remplacer le user et mdp par les identifiants choisis dans le paragraphe “Protéger l'api avec un login/mot de passe” ● vérifier que le retour (json) est bien [] 19 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation 3.7 API JS 3.7.1 INSTALLATION ● aller dans le répertoire web/api/ cd web/api ● installer les sources de l'api js svn co https://projects.clever-age.net/capsciences/servervip/svn/api-js api-js ● mettre à jour les données de tests cd /srv/navinum2 php symfony doctrine:build --all --env=test php symfony doctrine:data-load data/fixtures/test/fixtures.yml --env=test php symfony cc 3.7.2 TESTS FONCTIONNELS Les tests fonctionnels de l'api js sont maintenant disponibles sur le serveur via le host de l'api et testables dans un navigateur web chrome ou firefox avec le plugin firebug api2.yourdomain.net/api-js/test/test.html /!\ Remplacer l’url par votre url et votre domaine Ce répertoire est sécurisé par le htaccess, nécessite donc login et mot de passe. Attention les fixtures doivent être relancées (remise à jour) pour faire un nouveau test 20 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation 3.8 WEBSERVICES 3.8.1 CONFIGURATION DU SERVEUR POUR LES NOTIFICATIONS WEBSOCKETS Installer la librairie lua ("Lua is a powerful, fast, light-weight, embeddable scripting language.") apt-get install gcc patch make diff libreadline-dev libncurses5-dev php-pear ● créer un fichier dans /root/script.sh vi /root/script.sh ● copier le contenu suivant #!/bin/sh mkdir /tmp/luaCompile cd /tmp/luaCompile rm -Rf ./* wget http://www.lua.org/ftp/lua-5.1.5.tar.gz tar -xzf lua-5.1.5.tar.gz cd lua-5.1.5 patch -p1 << "EOF" diff -rupN test//src/Makefile lua-5.1.5//src/Makefile --- test//src/Makefile 2012-02-13 21:41:22.000000000 +0100 +++ lua-5.1.5//src/Makefile 2012-11-01 08:39:24.440378217 +0100 @@ -8,7 +8,7 @@ PLAT= none CC= gcc -CFLAGS= -O2 -Wall $(MYCFLAGS) +CFLAGS= -O2 -Wall -fPIC $(MYCFLAGS) AR= ar rcu RANLIB= ranlib RM= rm -f EOF make linux make install rm /usr/lib/liblua.a rm /usr/include/lua/include rm /usr/include/lua ln -s /usr/local/lib/liblua.a /usr/lib/liblua.a ln -s /usr/local/include /usr/include/lua ln -s /usr/include/lua /usr/include/lua/include 21 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation ● mettre les droits d'exécution et exécuter chmod +x /root/script.sh /root/script.sh ● Installation lua pecl install lua ● modifier le fichier config/app.yml et saisir l'addresse du serveur websocket note : => l'addresse doit commencer par tcp, => l'addresse doit finir par le port 8084 => pas de / à la fin servervip2: notif_uri: tcp://websocket.yourdomain.net:8084 ● Créer un fichier lua.ini dans /etc/php5/conf.d vi /etc/php5/conf.d/lua.ini ● coller le contenu ci-dessous extension=lua.so ● redemarrer apache /etc/init.d/apache2 restart Verification de l’installation LUA ● Créé un fichier info.php dans /srv/navinum2/web et y saisir ceci: <?php phpinfo() ?> ● ● Puis aller à cette addresse via un navigateur http://navinum2.yourdomain.net/info.php Vérifier qu'il y a bien les lignes ce-dessous ● retirer le fichier info.php pour éviter la faille de sécurité rm web/info.php 22 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation 3.8.2 INSTALLATION WEBSERVICES Les paquets ● Lancer l’installation des différents paquets apt-get install git pkg-config php5-dev php-pear make php5-curl php5-suhosin ● Installer redis-server apt-get install redis-server ● créer le lien symbolique /srv cd /home ln -s srv /srv Configuration Apache ● Ajouter le fichier websocket.yourdomain.net dans /etc/apache2/sites-available vi /etc/apache2/sites-available/websocket.yourdomain.net /!\ Remplacer l’url par votre url et votre domaine ● Coller la configuration suivante : <VirtualHost *:80> ServerName websocket.yourdomain.net ServerAlias sso.cap-sciences.net DocumentRoot "/srv/websocket/web/web" DirectoryIndex index.php <Directory "/srv/websocket/web/web"> AllowOverride All Allow from All </Directory> </VirtualHost> /!\ Remplacer l’url par votre url et votre domaine ● Activer le fichier apache cd /etc/apache2/site-available a2ensite websocket.yourdomain.net ● Recharger la configuration apache /etc/init.d/apache2 reload 23 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation installation d'une bdd mysql ● Créer une base de données nommée navinum_sf2_cs (utf8_general_ci pour l'interclassement) mysql -hlocalhost -p CREATE DATABASE `navinum_sf2_cs` CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE DATABASE `navinum_sf2_cs_test` CHARACTER SET utf8 COLLATE utf8_general_ci; GRANT USAGE ON * . * TO 'navinum'@'localhost' IDENTIFIED BY 'navinum' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ; GRANT ALL PRIVILEGES ON `navinum_sf2_cs` . * TO 'navinum'@'localhost'; GRANT ALL PRIVILEGES ON `navinum_sf2_cs_test` . * TO 'navinum'@'localhost'; Installation de libevent apt-get install libevent-dev pecl install libevent-0.0.5 echo "extension=libevent.so" > /etc/php5/cli/conf.d/libevent.ini Installation de ZeroMq echo "deb http://backports.debian.org/debian-backports squeeze-backports main" >> /etc/apt/sources.list apt-get update && apt-get install libzmq-dev pear channel-discover pear.zero.mq pecl install pear.zero.mq/zmq-beta echo "extension=zmq.so" > /etc/php5/cli/conf.d/zmq.ini echo "extension=zmq.so" > /etc/php5/apache2/conf.d/zmq.ini Installation de la plateforme Les sources sont en Symfony2 Nous placerons ici les sources sf2 dans /srv/websocket/web ● récupérer les sources cd /srv/websocket/web git clone https://projects.clever-age.net/capsciences/servervip.git . ● copier le fichier app/config/parameters.yml.dist en app/config/parameters.yml cp app/config/parameters.yml.dist app/config/parameters.yml ● ● éditer le fichier app/config/parameters.yml changer les paramètres suivants (si nécessaire) : servervip1_url: http://user:[email protected]/api.php/ /!\ Remplacer l’url par votre url et votre domaine /!\ Remplacer le user et mdp par ceux choisis précédemment Initialisation de la bdd 24 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation ● changer la config du parameters.yml comme ci-dessous parameters: database_driver: pdo_mysql database_host: 127.0.0.1 database_port: ~ database_name: navinum_sf2_cs database_user: navinum database_password: navinum ● créer le fichier /etc/init.d/servervip2-daemon avec le contenu suivant #!/bin/bash ### BEGIN INIT INFO # Provides: servervip2-daemon # Required-Start: $all # Required-Stop: $all # Default-Start: 2345 # Default-Stop: 016 # Short-Description: starts the servervip2-daemon daemon # Description: starts servervip2-daemon using start-stop-daemon ### END INIT INFO PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/srv/websocket/web/app/console PID=/var/run/servervip2-daemon.pid NAME="servervip2-daemon" DESC="Servervip2 Daemon" DAEMON_OPTS="servervip2:daemon --daemon" test -x $DAEMON || exit 0 set -e case "$1" in start) echo -n "Starting $DESC: " start-stop-daemon --start --quiet --pidfile $PID \ --exec $DAEMON -- $DAEMON_OPTS echo "$NAME." ;; stop) echo -n "Stopping $DESC: " start-stop-daemon --stop --signal INT --pidfile $PID echo "$NAME." rm $PID ;; restart) echo -n "Restarting $DESC: " start-stop-daemon --stop --quiet --pidfile $PID rm $PID 25 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation sleep 1 start-stop-daemon --start --quiet --pidfile \ $PID --exec $DAEMON -- $DAEMON_OPTS echo "$NAME." ;; *) N=/etc/init.d/$NAME echo "Usage: $N {start|stop|restart}" >&2 exit 1 ;; esac exit 0 ● mettre les droits exécutable chmod +x /etc/init.d/servervip2-daemon chmod +x /srv/websocket/web/app/console ● Executer la commande : update-rc.d servervip2-daemon defaults ● vérifier le fichier /etc/php5/cli/conf.d/suhosin.ini, la ligne ci dessous doit être décommentée, et avoir la valeur phar suhosin.executor.include.whitelist = phar ● installer la lib sf2 cd /srv/websocket/web curl -sS https://getcomposer.org/installer | php php composer.phar install => Un répertoire vendor doit être visible ● Gestion des problèmes d’installation ● un erreur de ce type peut survenir : file could not be downloaded (HTTP/1.0 503 Service Unavailable) => relancer la commande php composer.phar install ● ou encore : Could not scan for classes inside => supprimer le contenu dans vendor rm -rf vendor/* ● vider le cache # nettoyage du cache prod php app/console cache:clear --env=prod # nettoyage du cache dev php app/console cache:clear 26 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation ● mettre les droits suffisants sur les répertoires suivants chmod -R 777 /srv/websocket/web/app/cache chmod -R 777 /srv/websocket/web/app/logs ● vérifier que le mod_rewrite apache est activé a2enmod rewrite ● redémarrer apache : /etc/init.d/apache2 restart ● Insérer les tables dans la bdd php app/console doctrine:schema:update --force ● Démarrer le service : /etc/init.d/servervip2-daemon start Vérifier le bon fonctionnement ● le moniteur : http://websocket.yourdomain.net/websockets/monitor login : admin mdp : capsciences /!\ Remplacer l’url par votre url et votre domaine En haut à droite de l’écran, il doit être écrit : WS:Connected Une ligne en surbrillance doit également apparaitre, avec votre IP. Cela veut dire que vous êtes repéré par le service websocket. Communiquer avec CYOU Le serveur CYOU doit pouvoir communiquer avec le serveur websocket, il est nécessaire d'ajouter des paramètres sur CYOU ● aller dans le répertoire CYOU cd /srv/navinum2/ 27 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation ● éditer le fichier app.yml vi config/app.yml ● ajouter ou modifier les valeurs suivantes : servervip2: notif_uri: tcp://127.0.0.1:8084 Paramétrage insitu avec une tablette ● l'uri websocket sur l'appli insitu : ws://websocket.yourdomain.net:8083 ● Lorsque l'appli est connectée, une ligne dans le monitor doit apparaître avec l'adresse mac de la tablette ○ ○ copier l'adresse mac aller dans le backoffice de vip ■ http://navinum2.yourdomain.net/backend.php ■ menu flotte : une flotte doit être déclarée ■ dans le menu périphérique : ajouter un périphérique et coller d'adresse mac Ajouter un cron Cette tache permet de supprimer du moniteur les périphériques qui ne sont plus connectés au websocket de manière automatique et instantannée ● éditer le fichier de cron navinum vi /etc/cron.d/navinum2 28 de 45 ● insérer le contenu suivant : • * * * * root php /srv/web/servervip2/app/console servervip2:websocket:keepalive --env=prod > /dev/null Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation 3.8.3 SYNCHRONISATION DES FICHIERS L'installation de unison est requis. Unison permet une synchro bidirectionnelle. L'installation se fera sur le serveur intranet.http://doc.ubuntu-fr.org/unison Prérequis ● ● avoir un client ssh sur le serveur intranet créer une clé publique ssh sur le serveur ssh en ligne ○ il est préférable de créer un utilisateur dédié ○ documentation sur la création d'une clé publique installer unison apt-get install unison paramètrage ● créer un fichier dans le répertoire de l'utilisateur nano ~/.unison/default.prf ● ajouter et modifier les lignes suivantes # Répertoire distant root = ssh://navinum-sync.yourdomain.net/srv/navinum2/web # Répertoire local root = /srv/navinum2/web #puis les sous-répertoires path=visiteur path=interactif path=medaille path=exposition Note : nous avons à synchroniser 4 répertoires ● visiteur ● interactif ● medaille ● exposition Cron Commande à exécuter ou à ajouter dans le cron ##########UNISON SYNCHRO DOSSIER INTERACTIF ET VISITEUR ############### 1 * * * * root unison -force=newer -times=true -auto=true -batch=true 29 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation 4 EXPLOITATION 4.1 BACK OFFICE Le back-office est l’espace permettant de configurer l’ensemble des expositions reliés à Navinum et visualiser les activités des visiteurs. 4.1.1 FONCTIONS DU BACK OFFICE Accéder aux écrans de gestion des informations requiert un identifiant associé à des droits d'organisateur ou médiateur. Ces comptes spéciaux sont créés par l'administrateur lors du déploiement d'un serveur Navinum. Il est composé de sept rubriques permettant le paramétrage et la visualisation des données par vues. Vip : Expositions, parcours, interactifs. Afin de créer une exposition connectée à Navinum, l’organisateur doit créer des interactifs qui seront intégrés à un ou plusieurs parcours qui seront eux mêmes rattachés à une exposition. Pour chacune des actions, des vues sont exposés afin d’avoir un tableau de bord récapitulatif et permettre une gestion simple et rapide. Les actions possibles pour chaque sous rubriques sont : - Tri de la liste sur les champs affichés. - Création d'un nouvel enregistrement. - Création d'une copie d'une Exposition (même Parcours que...). - Édition d'un enregistrement. - Suppression d'un enregistrement (avertissement des impacts de la suppression). Chaque nouvel enregistrement (interactifs, parcours, expositions) comporte un nombre de champs à renseigner dont certains obligatoires. Le système de paramétrage d’un parcours et d’une exposition s’effectue en cascade. L'export des vues au format CSV est prévu et paramétrable afin de faciliter l’exploitation pour les organisateurs. 30 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation Visiteur : Visiteurs, besoins visiteurs Suivre les processus d’enregistrement des visiteurs ainsi que l’ensemble des données renseignées lors de leur inscription/modification de compte. Les actions possibles pour chaque sous rubriques sont : - Tri de la liste sur les champs affichés. - Création d'un nouvel enregistrement. - Édition d'un enregistrement. - Suppression d'un enregistrement (avertissement des impacts de la suppression). Cette rubrique permet également de définir les besoins visiteurs pour les multimédia. Par exemple, si un multimédia à besoin de la date de naissance du visiteur pour effectuer un traitement sur cette donnée, ce paramètre sera demandé au visiteur avant de pouvoir utiliser/manipuler le multimédia. L'export des vues au format CSV est prévu et paramétrable afin de faciliter l’exploitation pour les organisateurs. Gratification : XP, Typologie, Type de médaille, Médaille, Médaille visiteurs Paramétrer les systèmes de gratification pour les visiteurs. Cette rubrique permet de définir les règles de gamifications. Les actions possibles pour chaque sous rubriques sont : - Tri de la liste sur les champs affichés. - Création d'un nouvel enregistrement. - Édition d'un enregistrement. - Suppression d'un enregistrement (avertissement des impacts de la suppression). RFID : RFID, Groupe RFID, Groupe Visiteur RFID Gérer la flotte des badges ainsi que leurs paramétrages (rendre actif, remise à zéro, type de badges (admin, visiteur, animateur). Les actions possibles pour chaque sous rubriques sont : - Tri de la liste sur les champs affichés. - Création d'un nouvel enregistrement. - Édition d'un enregistrement. - Suppression d'un enregistrement (avertissement des impacts de la suppression). L'import en masse des GUID des badges au format CSV est prévu. 31 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation Flotte et périphérique Gérer la flotte de périphériques. Cette rubrique permet de visualiser rapidement les tablettes disponible pour une exposition ainsi que l’interactif embarqué sur cette dernière. Des informations réseaux sont également disponible afin de pouvoir prendre rapidement la main à distance (cf $software IHM et $paramétrage insitu avec une tablette). Les actions possibles pour chaque sous rubriques sont : - Tri de la liste sur les champs affichés. - Création d'un nouvel enregistrement. - Édition d'un enregistrement. - Suppression d'un enregistrement (avertissement des impacts de la suppression). Paramètres : Contexte, Organisateur, Csp, Evenements, Langue, Utilisateurs, Préférences Médias, Log synchro, template mail, règles de notifications Ce sont l’ensemble des données nécessaires au paramétrage d’une exposition raccordée à Navinum. Celà comprend les besoins de paramétrages des rubriques précédentes. Les actions possibles pour chaque sous rubriques sont : - Tri de la liste sur les champs affichés. - Création d'un nouvel enregistrement. - Édition d'un enregistrement. - Suppression d'un enregistrement (avertissement des impacts de la suppression). Vues visites, log-visites Ce sont l’ensemble des données enregistrées par Navinum liée à l’activité des visiteurs. Aucunes actions n’est possibles, seul un mode de consultation est disponible. 32 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation 4.2 CREATION D’UN MULTIMEDIA La création d’un multimédia raccordé à Navinum intègre des prérequis afin de communiquer avec la base de données. Pour ce faire, un ensemble d’API est fournie pour améliorer la communication entre les instances. Un multimédia doit au minimum réceptionner les données transmises en Json par les API, nécessaire à l’attributions des données visiteurs en base. Le multimédia doit pouvoir envoyer selon un formatage précis les données générées par le visiteur. Pour visualiser l’ensemble des APIs disponibles, veuillez vous référer au document “API”. 4.3 REGLES NOTIFICATION Les règles de notification, sont un peu comme des déclencheurs d’évènements systèmes, en fonction de critères paramétrables (cf $Paramètres : règles de notifications). Elles sont à l’écoute des différentes interactions avec CYOU. Voici les méthodes existantes à votre disposition : 4.3.1 GETENTITY Récupère un objet suivant un type (Model en BDD ) et son identifiant. Arguments : ● type -> string -> Model de donnée ● guid -> string -> identifiant de l'objet recherché Retour : ● Tableau associatif de l'objet demandé. 4.3.2 SENDNOTIFICATION Envoi une notification. Arguments : ● model : détermine le model associé à cette notification. ● dest : indique le(s) destinataire(s) de la notification au serveur. Ce champs n'est pas retransmis au client. Il peut s'agir d'un tableau de destinataire ou d'une string pour un seul destinataire. La syntaxe de chaque destinataire est de la forme <scope>:<id>. Voici la liste des destinataires possibles : ● conn : ● visiteur : ● visite : ● exposition : ● parcours : ● flotte : ● peripherique : 33 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation ● interactif : Remarque: Lorsque le visiteur est renseigné, la notification sera enregistrée en bdd pour l'historique ● type : il s'agit du type de notification. Le format à respecter est <namespace>:<type>[:soustype]. Les namespaces "core" et "general" sont pris en charge par la librairie standard. Les autres namespaces sont libres (éventuellement un namespace par applicatif?). ● options : données de la notification. Les champs sont spécifiés par type de notification. Structure d'une notification Exemple : { "dest": "conn:1358167709", "type": "notif:general", "options": { "message": "Coucou depuis l'interface de monitoring" } } Les Types de notification core:reset ● ● Action : réinitialisation du périphérique options : - general:message ● ● Action : affichage d'un message de service (Toast? Alert?) options : ○ message : contenu du message a afficher (support html?) general:notif ● ● 4.3.3 Action : affichage d'un message de service (Toast? Alert?) options : ○ title : titre de la notif ○ message : contenu du message a afficher ○ [image] : optionnelle image ○ [link] : optionnel lien CREATEVISITEURMEDAILLE Créé une médaille Arguments: ● visiteur_id : guid du visiteur ● medaille_id : guid de la médaille 34 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation 4.3.4 SENDMAIL Envoi d'un email Arguments: ● dest : destinataire de l'email ● subject : sujet de l'email ● message : corps de l'email 4.3.5 DATE Format la date d'aujourd'hui suivant un pattern. Arguments: ● format : le format de la date souhaitée Retourne: ● Date formatée -> string 4.3.6 VARDUMP debug method : affiche un debug Arguments: ● data : string 4.3.7 ISBESTSCOREINTERACTIF Est ce que le score du logVisite est le score le plus haut de l'interactif . Arguments: ● entity : tableau de l'enregistrement actuel Retourne: ● boolean : true ou false 4.3.8 ISVISITEURBESTSCOREINTERACTIF Est ce que le score du logVisite est le score le plus haut du visiteur pour un interactif . Arguments: ● entity : tableau de l'enregistrement actuel Retourne: ● boolean : true ou false 4.3.9 NBLOGVISITEEXPOSITION Nombre de visites sur une exposition Arguments: ● exposition_id : identifiant de l'exposition Retourne: le nombre de visites 4.3.10 GETTOTALSCORE Récupère le nombre XP total 35 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation Retourne : ● le nombre xp total 4.3.11 GETTOTALSCOREBYTYPOLOGIEANDVISITEUR Récupère le nombre total de xp sur une typologie et un visiteur Argument : ● typologie_id : identifiant de la typologie ● visiteur_id : identifiant du visiteur Retourne : ● Le nombre xp du visiteur pour cette typologie. 4.4 PREPARATION DE NAVINUM PROFIL L’accueil du CCSTI, ou les animateurs de cette structure, peuvent pré-configurer les badges pour accueillir un groupe de personnes : il faut donc configurer le badge RFID en mode “Groupe”. Pour ce faire, deux solutions : Une authentification avec des identifiants pré-configurés en mode groupe. On adapte simplement son profil à l’accueil numérique en fonction des caractéristiques pertinentes des membres du groupe (âge, langue, handicap …). Des badges de type “groupe” (puisqu’un module de gestion de badge doit être créé). 4.5 CYOU SUR LE WEB : SSO Cyou intègre une interface unique d’authentification : le SSO. Cela simplifie l’interfaçage de différents outils et permet à l’utilisateur d’avoir une seule et unique authentification. Le serveur sso est un bundle symfony2 oauth2 qui gère l'authentification et le single sign on. /!\ Par mesure de sécurité, chaque domaine a des identifiants différents pour se connecter au SSO. Les identifiants key/secret saisis plus bas dans cette documentation ne sont valables que pour le domaine http://drupalcapsciences.local Cette documentation est basée sur l’utilisation d’un CMS Drupal V7. 36 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation 4.6 CONFIGURER DRUPAL POUR SE CONNECTER AU SSO 4.6.1 INSTALLATION DU PLUGIN DRUPAL Pour installer le plugin drupal, nous utiliserons la commande drush ● installer les plugins oauth oauth2 et OAuth Connector avec drush qui gérera les dépendances qui vont avec (Connector, Http Client, Chaos tools) drush drush drush drush 4.6.2 dl oauth oauth2 oauthconnector dl http_client en oauthconnector en oauth_common_providerui PARAMETRAGE DU PLUGIN DANS LE BO ● ● aller dans le menu structure > OAuth Connector Vérifier que tous les champs existent (onglet Fields) ○ Ajouter les champs ci dessous s'ils n'existent pas dans la liste ● ● Ajouter un provider (onglet "add provider") Puis saisir les infos ci-dessous Etape 1 : général ● Title capsciences ● base Url : http://sso.cap-sciences.net ● ● OAuth Consumer Key : OAuth Consumer Secret Ces 2 clés vous sont fournis par l'hébergeur du serveur oAuth. cf: Communiquer les urls pour obtenir les clés d'authentification Etape 2 : option oAuth2 Une fois que vous avez les clés d'authentification, vous pouvez les saisir comme ci-dessous : 37 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation Ensuite : ● Dérouler l'option OAuth Consumer Advanced Settings ● Cocher oAuth2 ● Signature method Plain Text ● Authorization endpoint /oauth/v2/auth ● 38 de 45 Access token endpoint Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation /oauth/v2/token Etape 3 : section Mapping User ID ● User ID : Resource : http://sso.yourdomain.net/sso/whoami ● guid User ID : Field : ● User ID : Field to match on user profile Does not match 39 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation Etape 4 : EMAIL ● Email : Resources http://sso.yourdomain.net/sso/whoami ● Email : Field : email ● Email : Field to match on user profile E-mail address 40 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation Etape 5 : Name ● Name : Resources http://sso.yourdomain.net/sso/whoami ● Name : Field : pseudo_son ● Name : Field to match on user profile Username 41 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation Etape 6 : Avatar Ne rien changer/saisir. 4.6.3 ● ● 4.6.4 CONFIGURER LES DROITS aller dans la gestion des permissions : people > onglets permissions dans la section connecter, cocher tous les utilisateurs pour "Connect with capsciences" OBTENIR SES CLES D'AUTHENTIFICATION (EXEMPLE DRUPAL) L'écran ci-dessous est affiché lorsque vous avez enregistré un nouveau OAuth Connector provider ou via le menu > Structure > OAuth Connector 42 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation Pour obtenir vos identifiants (clé/secret), vous devez communiquer : ● votre host url ● le callback url (colonne 3) Une fois que vous avez vos identifiants, vous pouvez éditer le provider et les ajouter. 4.6.5 ● ● 43 de 45 FONCTIONNEMENT aller sur le drupal Taper l'url http://[drupalstudio]/connect/oauthconnector_capsciences Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation 4.7 44 de 45 AJOUT D'UN CLIENT SSO DANS LE BACKOFFICE SERVEUR ● aller à l'url http://sso.yourdomain.net/admin/sso/auth ● cliquer sur add ○ saisir le nom ○ saisir l'url concaténé à l'url callback que vous aura fourni le client. Ceci sera l'url de retour qui sera interprété par drupal Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx Inmediats / CYOU / Installation 5 MAINTENANCE 5.1 CORRECTIVE La maintenance exécutée après détection d'une panne et destinée à remettre le système dans un état dans lequel il peut accomplir une fonction requise 5.2 REMONTE ET TRAITEMENTS DES ERREURS Afin de garantir une traçabilité des différentes anomalies pouvant être perçues sur le système mis en production nous disposons d’un outil de ticketing (Redmine). Cela permet entre autre de pouvoir faire remonter l’information de manière ciblé et rapide tout en ayant une vision statistique des bugs récurrents au système ou à une fonctionnalité. 45 de 45 Version 002 CS_inmediats_CYOU_doc_techinque_2013_09_05_002.docx