= Mutualisation des comptes refer = * Objectif : un abonné au CNF de xyz avec un login abc doit pouvoir se logguer dans n'importe quel autre CNF d'afrique de l'ouest avec le login abc@xyz et le même mot de passe == Listes des CNF où c'est actuellement fonctionnel == ... == Questions à résoudre == * Création automatique du homedir : géré via pam_exec (cf. [[Etude/PaquetAufDesktop]]) : '''OK''' * Diffusion des infos d'authentification : généraliser le bricolage de Bamako, Badaladougou-Ensup * Adhésion au principe de la part des responsables de CNF : Ok * Interfaçage "guia" * intégrer les comptes @auf.org comme un cas particulier d'un système plus général == Système de diffusion des comptes == Pour le moment, via admincomptes : à insérer dans le système de synchro passwd/mysql * chaque modification de compte == une entrée dans une table "à diffuser" locale, avec id incrémenté * via cron : * copie de l'entrée à diffuser vers une table "centrale" (mysql sur openvpn) vers un site central : id "central" incrementé, puis suppresion locale aprés copie confirmée : '''ok''', cf. [[http://git.sn.auf.org/?p=auf-synchro-auth/.git;a=blob;f=pwd2synchro;hb=HEAD|pwd2synchro]] * actions * '+' : ajout ou modif' d'un compte * '-' : destruction d'un compte * 'X' : demande de destruction de tous les comptes associé à ce site * importation des données de la base de donnée centrale, avec stockage de l'id du dernier enregistrement correctement transferé : '''ok''', [[http://git.sn.auf.org/?p=auf-synchro-auth/.git;a=blob;f=synchroniser-nss;hb=HEAD|synchroniser-nss]] * voir la possibilité de faire une demande à un site distant de renvoyer les infos pour un compte en particulier * l'allocation des uid se fait sur chaque site, mais > 20000 pour éviter les collisions avec les uid "passwd" * le choix du homedir se fait localement, dans la conf, une variable homedir_format du genre /home/EXTERNES/:DOMAIN:-:LOGIN: * reste à faire : un serveur openvpn dédié entre les divers sites et la base mysql centrale == installation == * aptitude install auf-synchro-auth sur le serveur gérant les comptes == nettoyage == * eviter d'avoir des info non pertinentes s'accumuler dans le spool central : * les informations masquées par des infos plus réçentes {{{ select duh.id from (select max(id) as mid ,username from spool_synchro group by username) as gnu, spool_synchro as duh where duh.username = gnu.username and duh.id