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!

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

Documentation existante sur le Wiki

StefanoAmekoudi/Note/AufDjangoUsers (dernière édition le 2010-02-01 14:17:14 par StefanoAmekoudi)