====== Restreindre l'accès au webmail (horde) ====== Il est possible de limiter l'accès au Webmail à une liste d'utilisateurs. Pour cela, nous utilisons les fonctions "hooks" du framework Horde. Plus précisément, la fonction preauthenticate. Dans cette fonction, nous allons comparer le login en cours à une regexp (en fonction de la liste autorisée), puis laisser l'authentification se poursuivre s'il y'a un match. Il serait possible de faire l'inverse, c-a-d d'interdire l'accès seulement à une liste d'utilisateurs précise. Dans cet exemple, nous n'autorisons que les utilisateurs **user1, user2** et **user3** Dans un premier temps, nous allons créer la fonction preauthenticate mkdir -p /etc/e-smith/templates-custom/home/httpd/html/horde/config/hooks.php ln -s /etc/e-smith/templates-default/template-begin-php \ /etc/e-smith/templates-custom/home/httpd/html/horde/config/hooks.php/template-begin ln -s /etc/e-smith/templates-default/template-end-php \ /etc/e-smith/templates-custom/home/httpd/html/horde/config/hooks.php/template-end cat <<"EOF" >/etc/e-smith/templates-custom/home/httpd/html/horde/config/hooks.php/100PreAuthHook if (!function_exists('_horde_hook_preauthenticate')) \{ function _horde_hook_preauthenticate($userID, $credential, $realm) \{ $ret = false; if (preg_match('/^(user1|user2|user3)@{"$DomainName";}$/',"$userID"))\{ $ret = true; \} return $ret; \} \} EOF Maintenant, il reste à activer ce hook: mkdir -p /etc/e-smith/templates-custom/home/httpd/html/horde/config/conf.php/ sed -e "s/\['preauthenticate'\] = false/\['preauthenticate'\] = true/" \ /etc/e-smith/templates/home/httpd/html/horde/config/conf.php/320Hooks > \ /etc/e-smith/templates-custom/home/httpd/html/horde/config/conf.php/320Hooks Puis appliquer les changements: expand-template /home/httpd/html/horde/config/conf.php expand-template /home/httpd/html/horde/config/hooks.php FIXME: Il faudrait faire évoluer ces templates pour tirer la listes des utilisateurs autorisé depuis une clef de la DB. {{tag>mail webmail horde}}