====== 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}}