Prochaine révision
|
Révision précédente
|
tuto:ipasserelle:mail:restriction_users_webmail [01/12/2009 16:55] dani créée |
tuto:ipasserelle:mail:restriction_users_webmail [18/09/2012 16:02] (Version actuelle) dani |
| ====== Restreindre l'accès au webmail (horde) ====== |
| |
Il est possible de limiter l'accès au WebMail à une liste d'utilisateurs. | 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 fonctione, nous allons comprarer le login en cours à une regexp (en fonction de la liste authorisé), puis en laisser l'authentification se poursuivre s'il y'a un match. | 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. |
Inversement, 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 cet exemple, nous n'autorisons que les utilisateurs **user1, user2** et **user3** |
| |
| Dans un premier temps, nous allons créer la fonction preauthenticate |
| |
<code> | <code> |
mkdir -p /etc/e-smith/templates-custom/home/httpd/html/horde/config/hooks.php | 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-begin-php \ |
ln -s /etc/e-smith/templates-default/template-end-php /etc/e-smith/templates-custom/home/httpd/html/horde/config/hooks.php/template-end | /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 | cat <<"EOF" >/etc/e-smith/templates-custom/home/httpd/html/horde/config/hooks.php/100PreAuthHook |
if (!function_exists('_horde_hook_preauthenticate')) { | if (!function_exists('_horde_hook_preauthenticate')) \{ |
function _horde_hook_preauthenticate($userID, $credential, $realm) | function _horde_hook_preauthenticate($userID, $credential, $realm) |
\{ | \{ |
EOF | EOF |
</code> | </code> |
| |
| Maintenant, il reste à activer ce hook: |
| <code> |
| 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 |
| </code> |
| |
| Puis appliquer les changements: |
| <code> |
| expand-template /home/httpd/html/horde/config/conf.php |
| expand-template /home/httpd/html/horde/config/hooks.php |
| </code> |
| |
| FIXME: Il faudrait faire évoluer ces templates pour tirer la listes des utilisateurs autorisé depuis une clef de la DB. |
| |
| {{tag>mail webmail horde}} |