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 : TemplateSyntaxError_at_admin_log_log_1265033500140.png