# Sympa

## Présentation

Sympa est un gestionnaire de listes de diffusion.

Pour configurer le SSO avec Sympa, utiliser l'authentification magique : une URL spéciale SSO est protégée par LL::NG, Sympa affichera un bouton pour les utilisateurs souhaitant utiliser cette fonctionnalité.

Depuis la version 1.9 of LLNG, la fonctionnalité de connexion automatique a été supprimée car elle ne fonctionnait qu'avec la version 5 de Sympa, elle-même dépréciée

## Configuration

### Configuration Sympa

Éditer le fichier “auth.conf” de Sympa, par exemple :

    vi /etc/sympa/auth.conf

et le remplir :

    generic_sso
            service_name                   Centralized auth service
            service_id                          lemonldapng
            email_http_header            HTTP_MAIL
            netid_http_header             HTTP_AUTH_USER
            internal_email_by_netid    1
            logout_url                          http://sympa.example.com/wws/logout

Il est également possible de désactiver l'authentification interne de Sympa pour ne garder que celle de LemonLDAP::NG en supprimant le paragraphe user_table

Noter que si on utilise FastCGI, il faut redémarrer Apache pour activer les changements.

On peut aussi utiliser <portal>?logout=1 comme URL de déconnexion pour supprimer la session LemonLDAP::NG lorsque la déconnexion est demandée.

### Hôte virtuel Sympa

Configurer l'hôte virtuel Sympa comme n'importe quel autre hôte virtuel protégé mais ne protéger que l'authentification magique.

La fin de l'URL est construite à partir du `service_id` defini dans la configuration Apache de Sympa.

- Pour Apache:

    <VirtualHost *:80>
           ServerName sympa.example.com

           <Location /wws/sso_login/lemonldapng>
           PerlHeaderParserHandler Lemonldap::NG::Handler
           </Location>

           ...

    </VirtualHost>

- Pour Nginx:

    server {
      listen 80;
      server_name sympa.example.com;
      root /path/to/application;
      # Requête interne d'authentification
      location = /lmauth {
        internal;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/llng-fastcgi-server/llng-fastcgi.sock;
        # Ignorer les données postées
        fastcgi_pass_request_body  off;
        fastcgi_param CONTENT_LENGTH "";
        # Conserver le nom d'hôte original
        fastcgi_param HOST $http_host;
        # Conserver la requête originale (le serveur LLNG va recevoir /llauth)
        fastcgi_param X_ORIGINAL_URI  $request_uri;
      }

      # Requêtes clients
      location /wws/sso_login/lemonldapng {
        auth_request /lmauth;
        auth_request_set $lmremote_user $upstream_http_lm_remote_user;
        auth_request_set $lmlocation $upstream_http_location;
        error_page 401 $lmlocation;
        try_files $uri $uri/ =404;

        ...

        include /etc/lemonldap-ng/nginx-lua-headers.conf;
      }
      location / {
        try_files $uri $uri/ =404;
      }
    }

### Hôte virtuel Sympa dans le manager

Aller dans le manager et créer un nouvel hôte virtuel pour Sympa.

Configurer les règles d'accès et definir les en-têtes suivants :

- Auth-User
- Mail