= Mise en place et Utilisation de auf-django-users : Mon expérience = == Mon infrastructure == {{{ serveur-sl ----------+-------[Rx Salle accès] (nfs, msyql-server, firewall) | | cache-sl ----------+ (auf-django, apache, mysql-client) }}} == Adaptation de la BD mysql == Utilisant déjà mysql pour l'authentification [1], il suffit d'adapter la BD "authnss" pour l'utilisation de auf-django-users {{{ // Ajout de la colonne source : Les utilisateurs locaux auront LOCAL comme source // L'appli ne gèrera que les comptes locaux mysql> ALTER TABLE users CHANGE COLUMN id_noyau source varchar(15) DEFAULT 'LOCAL' NOT NULL; mysql> UPDATE users SET source = 'LOCAL' WHERE source = -1; mysql> UPDATE users SET source = 'AUF' WHERE source = -2; mysql> UPDATE users SET source = 'AUTRE' WHERE source <> 'AUF' AND source <> 'LOCAL'; // Ajout d'une date de création mysql> ALTER TABLE users ADD COLUMN creation datetime DEFAULT "1970/01/01" NOT NULL ; // Ajout d'une date de modification mysql> ALTER TABLE users ADD COLUMN modification datetime DEFAULT "1970/01/01"; // Préparation à la suppression de la clé primaire uid mysql> ALTER TABLE users MODIFY uid int(11) NOT NULL UNIQUE; // On remplit les champs de création et de modification à partir de maintenant pour tous les comptes (un point de départ) mysql> UPDATE users SET creation = now() , modification = now() WHERE uid <> 'quelquechose'; // gid est un entier int10 mysql> ALTER TABLE users MODIFY COLUMN gid int(10) NOT NULL DEFAULT 10000; // gid à 10000 pour tout le monde : un groupe users sera créé par la suite avec gid 10000 mysql> UPDATE USERS SET gid = 10000 WHERE gid <> 10000 ; // Création du groupe users gid 10000 mysql> INSERT INTO groups VALUES ('users','x','10000'); // Changement du champ rowid en id : on utilise plutôt id dans auf-django-users mysql> ALTER TABLE grouplist CHANGE rowid id int(10) auto_increment ; // Changement de clé primaire : username devient la clé mysql> ALTER TABLE users DROP PRIMARY KEY, ADD PRIMARY KEY(username); // On augmente la taille de username dans grouplist mysql> ALTER TABLE grouplist MODIFY username varchar(128) NOT NULL; }}} Création de l'utilisateur qui accèdera à la base de données {{{ mysql> GRANT ALL ON authnss.* TO auf-django@cache-sl IDENTIFIED BY "le-mot-de-passe"; }}} == Sur le Firewall == Autoriser la connexion mysql sur serveur-sl : {{{ # mysql iptables -A INPUT -i $IFDMZ -p tcp --dport 3306 -j ACCEPT iptables -A INPUT -p tcp --dport 3306 -j REJECT }}} == Coté Serveur Web == === Installation et Configuration === ==== Installation des paquets ==== Vérifier que vous avez dans /etc/apt/sources.list, le dépôt AUF pour votre debian : {{{ deb http://apt.auf.org lenny auf }}} On installe les paquets qu'il faut : {{{ $ sudo aptitude install auf-django-users libapache2-mod-wsgi }}} ==== Accès à la base de données ==== Renseigner dans le fichier suivant les paramètres de connexion : {{{ $ sudo vi /etc/auf-django-users/conf.py }}} {{{ DATABASE_ENGINE = 'mysql' DATABASE_NAME = 'authnss' DATABASE_USER = 'auf-django' DATABASE_PASSWORD = 'le-mot-de-passe' DATABASE_HOST = 'serveur-sl' }}} ==== Fin de l'installation ==== Pour terminer l'installation : {{{ $ sudo auf-django-users-manage.py syncdb }}} Répondre aux questions. Pour finir, ajouter dans un des virtualhost de votre serveur apache la ligne suivante : {{{ $ sudo vi /etc/apache2/sites-available/default Include /etc/auf-django-users/apache.conf }}} Redemarer apache2 avec : {{{ $ sudo apache2ctl graceful }}} == Ce qui marche pas ou pas encore! == * Avec '''admincomptes''' il y avait une synchro automatique avec la table '''messagerie''' pour l'authentification des utilisateurs de la messagerie @sl.refer.sn, insertion des nouveaux utilisateurs dans la liste de diffusion mailman '''abonnes''' * Erreur lors de l'accès à : '''Log > Suivis de compte''' {{{ Erreur du serveur (500) Une erreur importante est survenue. Merci de la signaler au responsable technique, en précisant les circonstances (ce que vous avez fait pour arriver ici) }}} Mode debug : [[attachment:TemplateSyntaxError_at_admin_log_log_1265033500140.png]] == Documentation existante sur le Wiki == * [1] http://wiki.auf.org/wikiteki/AuthentificationCentralis%C3%A9e/NssMysql * http://wiki.auf.org/wikiteki/AuthentificationCentralis%C3%A9e/AufDjangoUsers * http://wiki.auf.org/wikiteki/ZAO/InstallDjangoUsers