AWOR - Fichier Lisez-moi de l'administrateur Table des Matières 1 Compatibilit� 2 S�curit� 3 Installation 3.1 D�paquetage des pages PHP 3.2 Param�tres de configuration 3.3 Initialisation de la base 3.4 Configuration par d�faut des comptes 4 Maintenance 4.1 Visualisation des objets et des fichiers 4.2 Nettoyage de la base 5 Authentification d�di�e - Personnalisation 1 Compatibilit� Cette application peut-�tre utilis�e sur un serveur fonctionnant avec Apache, MySQL(>=4) et PHP (>=4). PHP L'application ne n�cessite pas de configuration de PHP particuli�re. Elle fonctionne quelle que soit la valeur du param�tre de configuration register_globals, utilise les sessions via les fonctions introduites en PHP4. L'application fonctionne quelque soit la verbosit� des affichages d'erreur et de warning PHP, car nous avons travaill� � �liminer tous les messages "E_NOTICE" PHP qui surviennent par exemple lors d'une comparaison avec une variable non-initialis�e. Les scripts PHP n'acc�dent pas en �criture au syst�me de fichier, sauf pour l'upload de fichiers. Le dossier "fichiers" doit �tre accessible en �criture par les scripts PHP sans quoi la fonctionnalit� d'�change de fichier serait inutilisable. MySQL Les scripts PHP ne modifient pas structurellement la base de donn�e MySQL, il suffit donc d'un compte permettant les instructions SELECT, INSERT, UPDATE, DELETE sur les tables de l'application. Pour indiquer � l'application quel compte MySQL utiliser, veuillez vous reporter � la section [sub:Initialisation-de-la-bd]. 2 S�curit� Cette application a �t� d�velopp�e en gardant toujours � l'esprit les probl�mes de s�curit�s. Nous ne pouvons �videmment pas la garantir failles ni bugs, mais nous sommes fix� des r�gles de programmation pour �viter les failles les plus courantes. Toutes les donn�es issues de l'utilisateur lors des traitements des pages web sont trait�es pour �viter des probl�mes d'insertion de code dans les requetes SQL. L'authentification des utilisateurs est syst�matique, v�rifi�e � chaque page et repose sur le syst�me des sessions PHP. En revanche, il faut noter que le formulaire d'authentification n'est pas prot�g� contre l'usurpation de mots de passe car les contraintes donn�es dans le cahier des charges ne le permettent pas, d� moins, il n'est pas possible d'utiliser un cryptage efficace (assym�trique) sans modifier le syst�me d'authentification d�l�gu�e et sans utiliser une configuration de serveur Web sp�cifique. Consid�rez, pour r�soudre ce probl�me, l'emploi sur serveur web s�curis� (HTTPS) et l'utilisation d'une liaison entre le serveur web et le serveur d'authentification au travers d'un r�seau de confiance. 3 Installation 3.1 D�paquetage des pages PHP L'application est livr�e dans une archive de type tarball compress�e qui contient toute l'arborescence et les fichiers PHP n�cessaires. Il suffit de d�compresser cette archive en conservant l'arborescence dans un dossier publi� par votre serveur Web. Les fichiers de configurations sont pr�sent et contiennent des valeurs d'exemple que vous pourrez adapter � votre situation. 3.2 <sub:Configuration>Param�tres de configuration Cette application comporte deux fichiers de configuration qui sont dans le dossier "include". Les fichiers existent dans la version distribu�e et ont pour but de servir de mod�le. connect.inc.php : ce fichier contient les coordonn�es du serveur MySQL, de l'utilisateur SQL et de la base que l'application utilisera. config.inc.php : ce fichier contient tout le reste de la configuration de l'application. Le fichier est un script PHP qui initialise un tableau multi-dimentionnel. Ce choix � �t� fait par commodit�, et pour permette de bien hi�rarchiser les information, en revanche, la syntaxe est fourbe... N'oubliez pas de virgule ! Toutes les constantes sont d�crites ci-dessous. $adminMail : adresse e-mail de l'administrateur. Affich�e � l'utilisateur lorsque qu'une erreur interne � l'application s'est produite. $automatedMail : adresse e-mail de r�ponse des courriels envoy�s automatiquement par l'application. AUTH : Param�tres d'authentification POP : Param�tres pour les serveurs mail POP SERVERS : Chaque �l�ment de ce tableau � pour clef le nom de domaine du fournisseur de service de courriel ( partie suivant le @ dans une adresse e-mail) � pour valeur un tableau associatif de la forme suivante subdomain : adresse complete du serveur offrant le service POP port : num�ro de port TCP utilis� pour se connecter au service POP username_is_full_mail : Bool�en (true ou false) indicant si le nom d'utilisateur � utiliser pour l'authentification est l'adresse e-mail compl�te. C'est utile pour les serveurs POP g�rant des adresses email sur plusieurs domaines (comme wanadoo / orange au moment o� j'�cris ce document) bypass_if_local : Bool�en indiquant si l'authentification doit �tre outrepass�e si la connexion s'effectue depuis le serveur lui-m�me. CSS : Param�tres des styles de pages CHOOSER_LIST : Ce tableau associatif contient la liste des styles CSS � utiliser. Les clefs sont les libell�s des th�mes � afficher et les valeurs sont les noms des fichiers CSS correspondants, sans chemin, ni extension. MAIL : TEMPLATES : Ce tableau contient des tableaux associatifs dont les clefs seront utilis�es dans les passages de param�tres HTML, et contiennent des sous-tableaux de la forme suivante : caption : Intitul� qui sera affich� � l'utilisateur tpl_file : Nom du fichier (avec l'extension PHP) contenant le mod�le. SUPERUSERS : Ce tableau contient la liste des login des super-utilisateurs (ceux qui ont le droit de supprimer des r�unions) UPLOAD : Param�tres concernant l'attachement de fichiers aux r�unions accepted_files : Tableau des extensions qui sont autoris�es. 3.3 <sub:Initialisation-de-la-bd>Initialisation de la base Tous les fichiers n�cessaires sont rang�s dans le dossier "install". Vous utiliserez principalement le fichier "RAZBase.php". Appel� au travers du serveur web, il vous permettra automatiquement de mettre en place la structure de la base de donn�es, et optionnellement, d'ins�rer un jeu d'essai pour tester l'application sur votre serveur. Si vous ne souhaitez pas utiliser de compte SQL ayant le droit d'alt�rer la structure des tables de votre base avec ce script php, vous pouvez ex�cuter le script "base.sql" avec votre client SQL favori. Le jeu d'essai se trouve dans le fichier "jeu_essai.sql". Vous devriez supprimer ce r�pertoire d�s que l'installation sera termin�e car il peut poser des probl�mes de s�curit� car le fichier "RAZBase.php" pourrait �tre lanc� par n'importe qui, et les fichiers SQL contienent des informations sensibles. 3.4 Configuration par d�faut des comptes Dans le fichier de configuration mod�le, un super-utilisateur est configur� : inglebert@iut-blagnac.fr et le jeu d'essai propos� au paragraphe pr�c�dent permet de cr�er des utilisateurs, et en particulier inglebert@iut-blagnac.fr. Par d�faut, vous pourrez donc vous connecter en tant qu'administrateur avec ce compte. Le jeu d'essai met ce compte avec comme mode d'authentification "bypass", ce qui signifie qu'aucun mot de passe n'est n�cessaire. Pour utiliser un vrai syst�me d'authentification, connectez-vous avec ce compte et allez dans la page "Mon Profil" pour choisir une autre mode d'authentification. 4 Maintenance 4.1 Visualisation des objets et des fichiers Une page d'administration est pr�vue � cet effet, et elle n'est accessible que par un "super-utilisateur", c'est � dire un utilisateur consign� dans le fichier de configuration principal en tant que tel, conf�re [sub:Configuration]. 4.2 Nettoyage de la base � partir de la page d'administration d�crite dans le paragraphe pr�c�dent, vous pouvez aussi purger les fichiers attach�s et les objets de la base de donn�es devenus obsol�tes. L'aide contextuelle de cette page vous expliquera comment faire. Il est vivement conseill� de faire une sauvegarde de la base de donn�es et des fichiers joints aux r�unions avant d'utiliser cet outil car l'erreur de manipulation ou de programmation est toujours possible... 5 Authentification d�di�e - Personnalisation AWOR utilise un syst�me d'authentification d�di�e de sorte qu'aucun mot de passe ne soit stock�, et que l'utilisateur n'ait pas besoin d'en retenir un nouveau. Le code d'authentification � �t� �crit de mani�re � �tre mal�able et est extensible. Le coeur du syst�me d'authentification se trouve dans le fichier "auth_dialog.php" . Vous y trouverez une section commen�ant par le commentaire ci-dessous. /*************************************************** ** Ajouter d'autres mode d'authentification ici ! ** ***************************************************/ Comme l'indique ce commentaire, vous pourrez ajouter � cet endroit une portion de code pour utiliser un autre service d'authentification. La syntaxe est la suivante : case '<nom_auth>': /* Eventuellement du code pr�l�minaire */ $auth_is_ok=<fonction_ou_variable_authentification>; if ( ! $auth_is_ok ) { // Si l'authentificaiton � �chou�e $errmsg=<fonction_ou_chaine_explicant_l_erreur>; } break; Il vous suffit de remplacer les �l�ments entre chevrons dans le code ci-dessus et de le coller dans "auth_dialog.inc.php" pour pouvoir utiliser un nouveau mode d'authentification. Reste � donner � l'utilisateur la capacit� de l'utiliser. Vous devrez encore, d'une part, ajouter dans la base de donn�es le <nom_auth> � l'�num�ration du champ "methodeAuth" de la table "Personne" , et d'autre part proposer � l'utilisateur d'utiliser ce mode d'authentification en modifiant la page "profil.php".